Та же программа, которая использует «mmap», ведет себя по-разному на разных машинах
Я запускаю приложение, которое использует огромный файл с отображением памяти на двух разных компьютерах (CentOS 7).
Я обнаружил, что производительность одной и той же программы существенно отличается, когда она работает на двух разных машинах.
- Просмотр разделяемых сегментов, созданных shmget
- Hugepages in linux - как убедиться, что процесс java начнет использовать огромные страницы
- используйте `/ run / shm` (ранее` / dev / shm`) как временную директорию
- IPC: уведомление об отключенной общей памяти
- В системной памяти ... в частности, разница между `tmpfs,` `shm,` и `hugepages ...`
Причина заключалась в том, что на одном компьютере используется чрезмерное количество операций ввода-вывода на диске, так как большинство страниц заменяются на диски.
Когда я запускаю top
команду, размер области общей памяти составляет около нескольких мегабайт на медленной машине. На более быстрой машине размер области общей памяти составляет около 6 ГБ, а это значит, что большая часть данных кэшируется на кеш-странице ОС.
Я проверил, что достаточно (более 16 ГБ) свободного пространства памяти, достаточного для кэширования всего файла с отображением памяти.
Может ли кто-нибудь дать мне представление по этому вопросу?