Ошибки страницы при 128 ГБ ОЗУ

Я запускаю приложение с тяжелым ЦП и памятью для 3D-реконструкции (www.3dsurvey.si, если необходимо) на сервере AMD opteron (4 ЦП, 12 ядер каждый, 128 ГБ ОЗУ) ). Я заметил, что ЦП не используется должным образом из-за (как я считаю) ошибок страниц. При обработке мы получаем более 100 тыс. Ошибок страниц в секунду, в то время как память используется только около 50%. Средняя загрузка процессора составляет около 10% -20%. Я также попытался отключить файл подкачки (что не рекомендуется) без каких-либо улучшений и с той же частотой ошибок страницы. Программное обеспечение обычно использует все процессоры на обычном ПК.

Чтобы сделать вопрос применимым к другим

  • Почему мы получаем ошибки страниц при большом количестве доступной оперативной памяти?
  • Как уменьшить количество ошибок страниц?
3
задан 12 August 2016 в 16:50
1 ответ

Ошибки страницы можно разделить на основные и второстепенные ошибки

Основные ошибки страниц возникают, когда ваша программа или ее данные были выгружены на диск, и теперь их необходимо загрузить с диска . Эти сбои помечены как «серьезные», потому что переключение с диска на диск происходит очень медленно по сравнению со скоростью процессора. Поскольку у вас много свободной оперативной памяти (около 50%), а полное отключение подкачки не привело к восстановлению производительности,Я думаю, ваша проблема не связана с серьезными неисправностями.

Незначительные сбои страниц возникают, когда ЦП пытается получить доступ к адресу виртуальной памяти, который не находится в его небольшом быстром TLB-кеше, и в результате ему приходится искать более крупную (и более медленную) таблицу сопоставления, хранящуюся в известном адресе DRAM. . При спорадическом запуске программы и / или при доступе к большому объему памяти ожидается большое количество мелких ошибок страниц. Эта проблема может усугубляться топологией NUMA с несколькими сокетами (та же, что используется вашим Opteron) при использовании с программами, не поддерживающими NUMA.

Если ваша программа не поддерживает NUMA, незначительные ошибки страниц может быть источником ваших проблем с производительностью. Чтобы иметь приблизительное представление, так ли это, попробуйте запустить программу на машине с одним сокетом (или отключите все сокеты, кроме одного на вашем сервере) и проверьте, не превышает ли загрузка ЦП, чем ожидалось.

В любом случае, только разработчик программного обеспечения (или кто-то, имеющий большой опыт работы с вашей конкретной программой) может полностью ответить на ваш вопрос.

7
ответ дан 3 December 2019 в 05:11

Теги

Похожие вопросы