Я запускаю приложение с тяжелым ЦП и памятью для 3D-реконструкции (www.3dsurvey.si, если необходимо) на сервере AMD opteron (4 ЦП, 12 ядер каждый, 128 ГБ ОЗУ) ). Я заметил, что ЦП не используется должным образом из-за (как я считаю) ошибок страниц. При обработке мы получаем более 100 тыс. Ошибок страниц в секунду, в то время как память используется только около 50%. Средняя загрузка процессора составляет около 10% -20%. Я также попытался отключить файл подкачки (что не рекомендуется) без каких-либо улучшений и с той же частотой ошибок страницы. Программное обеспечение обычно использует все процессоры на обычном ПК.
Чтобы сделать вопрос применимым к другим
Ошибки страницы можно разделить на основные и второстепенные ошибки
Основные ошибки страниц возникают, когда ваша программа или ее данные были выгружены на диск, и теперь их необходимо загрузить с диска . Эти сбои помечены как «серьезные», потому что переключение с диска на диск происходит очень медленно по сравнению со скоростью процессора. Поскольку у вас много свободной оперативной памяти (около 50%), а полное отключение подкачки не привело к восстановлению производительности,Я думаю, ваша проблема не связана с серьезными неисправностями.
Незначительные сбои страниц возникают, когда ЦП пытается получить доступ к адресу виртуальной памяти, который не находится в его небольшом быстром TLB-кеше, и в результате ему приходится искать более крупную (и более медленную) таблицу сопоставления, хранящуюся в известном адресе DRAM. . При спорадическом запуске программы и / или при доступе к большому объему памяти ожидается большое количество мелких ошибок страниц. Эта проблема может усугубляться топологией NUMA с несколькими сокетами (та же, что используется вашим Opteron) при использовании с программами, не поддерживающими NUMA.
Если ваша программа не поддерживает NUMA, незначительные ошибки страниц может быть источником ваших проблем с производительностью. Чтобы иметь приблизительное представление, так ли это, попробуйте запустить программу на машине с одним сокетом (или отключите все сокеты, кроме одного на вашем сервере) и проверьте, не превышает ли загрузка ЦП, чем ожидалось.
В любом случае, только разработчик программного обеспечения (или кто-то, имеющий большой опыт работы с вашей конкретной программой) может полностью ответить на ваш вопрос.