2013-09-16 3 views
0

У нас есть 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, которые могут повлиять на производительность

+0

Ваше оборудование отличное, но все же вам нужно выяснить, где узкое место. Действительно ли использование памяти? или диск ввода/вывода? – Raptor

ответ

0

Первый случай, когда потребление памяти имеет значение, - это приложение с интенсивным использованием процессора, которое управляет большим количеством данных. Обычный ПК может выполнять инструкцию менее чем за половину наносекунды (0,5 нс). Второй случай, когда (некоторое) потребление памяти имеет значение, - это при холодном запуске приложения. Операционная система пытается уменьшить это путем кэширования данных с диска в основной памяти. Именно по этой причине приложение запускается быстрее при запуске во второй раз, во время так называемого «теплого» запуска (данные были кэшированы в более быстрой памяти).

+0

В нашем случае приложение, конечно, интенсивно работает с процессором, так как каждый родительский поток/клиент порожден, имеет число потоков Threapool, вызываемых для выполнения подзадач, что делает среднее использование ЦП между 50-60%, что достаточно хорошо для типа сервера, который у нас есть. Теперь есть ли какие-либо настройки сервера, которые могут помочь нам с чистой производительностью или мне все еще нужно исследовать затяжные узкие места, что может вызвать много дискового ввода-вывода –

Смежные вопросы