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

Есть ли способ заставить один процесс переставлять большую часть / всю свою память на диск (НЕ КОРНЕВОЙ)

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

У меня была теория, что на самом деле может быть быстрее запустить брендирование процесса и выполнить всю инициализацию, которую мы обычно должны сделать для этого, чем ждать, пока процесс загрузит свою память с диска.

Чтобы проверить эту теорию, я хочу заставить процесс переключаться на диск, и я хочу посмотреть, сколько времени потребуется, чтобы ответить после того, как он был заменен, и сравнить это с запуском нового процесса, есть ли способ принудительно заставить процесс производить обмен без изменения настроек подкачки или нехватки памяти?

У меня нет root-прав на этих ящиках, поэтому в основном мне нужен простой способ сделать / намекнуть ядру, чтобы сделать это.

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

В Linux у контрольных групп может быть ограничение памяти, за пределами которого процессы в этой группе выгружают страницу. Сервис systemd может установить такое ограничение с помощью MemoryLimit директиву, см. справочную страницу или Руководство по управлению ресурсами RHEL. Помните, что модули systemd могут быть для каждого пользователя, права root не требуются.

Не тратьте много времени, пытаясь смоделировать состояние нехватки памяти, вряд ли оно будет работать как рабочая нагрузка в производственной среде. Если вы можете изменить приложение на ленивый запуск или загрузку процессов, сделайте это сначала в режиме тестирования, а затем в производственной среде. И измерьте результаты.

Предполагая, что это Linux, вы можете установить для переменной swappiness значение MAX. По сути, это говорит системе управления памятью, что нужно выгрузить все возможное, что в данный момент не используется. Это значение указывает, сколько (и как часто) ваше ядро ​​Linux будет копировать содержимое ОЗУ для обмена.

Для постоянной установки:

 1.  Edit `/etc/sysconfig.conf`

 2.  add the following line to the file
      `vm.swappiness=100`

 3.  Reboot

Или временно установить до следующей перезагрузки:

 1. Enter the command
    `sudo sysctl vm.swappiness=100`

Это позволит вам проверить свои предположения относительно вашего набора должностей.