У нас есть 64-разрядное приложение .Net (VS 2012), работающее на Windows Server 2012, которое загружает большое количество данных в памяти для работы с ним в течение следующих 24 - 48 часов. В соответствии с нашим дизайном мы предпочитаем загружать данные заранее, подключаясь к источнику данных. Объем памяти в сети до 7-8 ГБ, потому что мы реплицируем данные для 4 независимых потоков, которые представляют собой параллельные клиенты, так что это как 2 ГБ данных на клиента.Влияние объема памяти на производительность
Аппаратные средства, которые мы используем, имея 128 ГБ оперативной памяти, 4 процессора (24 ядра) процессор
мне было интересно, что делает объем памяти будет иметь влияние на чистую производительность процесса, как скорость выполнение, использование процессора и т. д.
Даже если у нас есть такая хорошая оперативная память, а сетевое использование никогда не превышает 60%, все равно будет происходить обмен страниц процесса на HD, что замедляет работу, когда он непрерывно используется в течение 48 часов , Есть ли какие-то настройки сервера или API-интерфейс .Net C#, что поможет нам позаботиться о проблемах с производительностью, связанных с памятью. Мы можем прямо сказать системе, что нашему процессу требуется много памяти.
Также позвольте добавить, что каждый параллельный клиент создает несколько потоков Threadpool. для выполнения подзадачи, теперь среднее использование процессора процессом составляет от 50 до 60%, для хорошей конфигурации, которую мы имеем, означает ли это, что нам нужно предпринять шаги для определения узких мест Disk IO, которые могут повлиять на производительность
Ваше оборудование отличное, но все же вам нужно выяснить, где узкое место. Действительно ли использование памяти? или диск ввода/вывода? – Raptor