Назад | Перейти на главную страницу

Как предотвратить переход на СВОП?

У нас есть важное приложение, которое использует значительную часть нашей оперативной памяти. В большинстве случаев приложение остается в ОЗУ, однако в некоторых ситуациях (например, когда некоторые другие приложения и демоны начинают использовать больше ОЗУ) оно переходит в режим SWAP, что означает, что наше приложение начинает очень медленно реагировать.

Есть ли какие-нибудь способы предотвратить переход нашего приложения в SWAP?

Спасибо, парни!

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

Посмотри Вот. Отображая значение от 0 до 100 до /proc/sys/vm/swappiness, вы можете контролировать скорость обмена (0 - не очень, а 100 - очень активно).

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

Своппинг не всегда - это приложение или необходимость в ошибке ОЗУ, если вы используете значение по умолчанию для большинства дистрибутивов, и ваше приложение имеет много неактивных страниц, когда ваша система начинает загружать файлы, кеш будет расти и сохранять «файлы» в памяти в качестве кеша, чтобы попытаться избежать большего количества операций ввода-вывода, но это не всегда означает, что система подходит для ваших нужд, например, резервное копирование файловой системы, которое происходит ночью и увеличивает очень большой кеш ненужных данных, заменяя ваше важное приложение на диск.

Если вы запретите подкачку вашего приложения, оно, скорее всего, будет реагировать медленнее. Операционная система только заменяет ваше приложение, потому что у него нет выбора. Если вы воспрепятствуете этому, общая нагрузка ввода-вывода в системе увеличится, так как другим процессам придется больше и больше менять местами, потому что вы загружаете всю физическую память. Это также замедлит ваш ввод-вывод и приведет к катастрофе.

Если машине не хватает физической памяти для своей рабочей нагрузки, она будет работать медленно. Решение - больше физической памяти или меньше рабочей нагрузки. Грубая настройка, как вы предлагаете, сделает все хуже.