0

У меня есть уникальная ситуация по отношению к памяти, потребляемой нашим продуктом (встроенная .NET-Web) и аппаратно-оперативной памятью.Необходимые показатели: максимальное выделение памяти Windows-Server-2012 для .NET-программы

Клиент, для которого продукт находится в эксплуатации, имеет следующую конфигурацию в среде ПРОДУКЦИЯ.

Оборудование:

  • [а] Dual Xeon X5570 2,93 ГГц Quad Core CPU с 3,33 TURBO, 6.4GT/с QPI И 8MB CACHE [B] 144GB RAM - ПАМЯТЬ [C] 8x 600GB 10K 2,5" SAS HDD [d] SMART ARRAY P410i RAID CONTROLLER с батареей и 256 Мбайт КЭШ [е] 4x ГИГАБИТНЫЕ ETHERNET [е] DUAL 460W ПИТАНИЯ

Программное обеспечение (все в одном окне):

  • [а] Windows Server 2012 - 64bit [б] .NET Framework 4.5 [с] SQL Server

2012 Enterprise Server Edition

Теперь только из-за 144GB-RAM и высокой volúmen-HDD, наш клиент ожидает, что приложение должно работать «супер-быстро» и, таким образом, работать лучше.

Клиент - полностью не ИТ-организация. Он уже объяснил им, независимо от того, насколько высока скорость RAM/HDD, Windows-OS в конечном итоге имеет ограничения на то, сколько памяти она может выделить для программы (через .NET-framework и SQL-Engine), чтобы данная .NET-программа «выполнит» в хорошо соприкасающейся, плоской, несегментированной области памяти.

Они НЕ МОГУТ ДАВИТЬ этот аргумент. Таким образом, у меня есть googled, чтобы увидеть, есть ли какая-либо техническая статья, блог или любая такая вещь, которая объясняет в этих строках, но без особого успеха. В основном то, что должно быть передано через некоторую ссылку на веб-статью: независимо от того, сколько бы вы ни производили, вы улучшаете свое оборудование, объем памяти, выделяемой исполняющей программе, регулируется и ограничен OS.

Есть ли какой-либо анализ MSDN или анализ профайлера Red-Gate, который дает некоторые номера, чтобы предложить максимальную память, которая распределяется Windows-64bit-Server-2012 для выполнения данной .NET-программы (или даже SQL -2012 - выполнение процедуры хранения).

Например - Эта ссылка http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory говорит следующее для 32-разрядной ОС. «Каждый процесс в многозадачной ОС работает в своей изолированной песочнице. Это песочница - это виртуальное адресное пространство, которое в 32-битном режиме всегда является блоком памяти объемом 4 ГБ».

Я ищу что-то похожее, как ссылка на блог/msdn, для 64-разрядной ОС Windows-SERVER-2012 и ЕСЛИ эта статья больше говорит о перспективе .NET-Framework-CLR, быть «заклепыванием» ... !!!

ответ

0

У меня были подобные проблемы, объясняющие заказчику, почему его база данных не работает в 2 раза быстрее, когда мы добавили вторичный процессор и еще 2x RAM.

Аргумент, который закрыл дискуссию: я не замедляюсь сейчас, когда еще 2 пользователя подключаются и работают в системе.

Я также знаю, что, например, встроенное ПО работает быстрее, чем версия sql ...в какой-то момент. Но где больше пользователей работает в системе (30-50 +). SQL по сравнению с собственными Navision выигрывает, не замедляя работу.

Также проверьте настройки памяти SQL Server. Я пытаюсь назначить себе фиксированный объем памяти для SQL, например, 10 ГБ, всего 14 ГБ. Независимо от того, сколько вы назначаете через некоторое время, если нужно есть все :) Покажите им в диспетчере задач, что он его использует :)

и если что-то работает медленнее на SQL - попробуйте проверить запросы и выполнить некоторую оптимизацию базы данных. Может быть, более хорошо спланированные индексы сделают эту работу?