Исчерпывание области подкачки на веб-серверах, что сделать?

У меня была та точная вещь, подошедшая приблизительно один год назад... Я сделал вкусное обновление на поле CentOS, работая на Оборудовании Dell, и оно установило ядро, которое не загрузится. Поле ничего еще не имело загруженным на нем (иначе, я буду более осторожным). Потраченный на большое количество времени, бездельничая с ним и кажется, что существует некоторая несовместимость между более новыми ядрами CentOS/Linux и что поле Dell. Будьте очень осторожны со своими обновлениями. Я все еще рекомендую обновить, поскольку это - правильный поступок, но быть готовым восстановиться с поврежденной системы!

8
задан 6 October 2019 в 09:55
3 ответа

У Вас заканчивается подкачка, потому что Вы используете всю свою RAM и затем некоторых. У Вас есть серьезная проблема, которую необходимо исправить прямо сейчас.

У Вас есть два варианта: проигнорируйте причину и просто добавьте больше RAM или будьте нацелены на проблему того, что на самом деле жует на Вашей памяти.

Добавление RAM является довольно дешевым и довольно легким, если это - Ваш сервер, но это - временное приспособление и если это - VPS или арендованный сервер, это не настолько дешево. Давайте делать попытку решения корневой проблемы вместо этого. Что впитывает так много памяти? Вот несколько подсказок:

  • Выключите InnoDB (если Вам не нужен он) в MySQL
  • Apache удара (и MySQL) с палкой конфигурации +5
  • Рассмотрите меньший httpd как язык чероки, lighttpd или nginx (они действительно быстры и не едят почти RAM). Основная оборотная сторона - Вы, не может использовать .htaccess файлы, но Вы можете твердый код в их функциональности.
  • Вы используете кэш Кода операции для PHP? Попытайтесь выключить его или переключиться на другого, более эффективного.

С точки зрения просто возвращения объектов подкачки в реальную RAM можно сделать это:

swapoff -a && swapon -a

Но не пробуйте затем, когда у Вас есть меньше свободной памяти, чем у Вас есть вещи в подкачке. Это разрушит Ваш сервер.

8
ответ дан 2 December 2019 в 22:58
  • 1
    Спасибо за конфигурацию в качестве примера я натолкнулся вниз, редкие / экономят апачские процессы, и это по-видимому помогло! –  mmattax 6 February 2010 в 17:17

Поскольку номер с переодеванием делает:

"MaxRequestsPerChild 4096" к чему-то как: 700 поможет. Чем дольше апачский процесс живет, тем более резидентная память он собирается для потребления из-за mod_php и т.п.. Кроме того, включите проверку активности и поместите агрессивные настройки тайм-аута для нее:

KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 5

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

Для оптимальной памяти и запросов в секунду:

Переезжайте от mod_php и используйте fastcgi или другой сервер приложений, вместо этого. Процессы Apache используют незначительный объем памяти, когда php страницы подаются fastcgi. Не говоря уже о fastcgi может сохранить persisten соединения с Вашим dbase сервером среди других вещей.

2
ответ дан 2 December 2019 в 22:58

как насчет того, чтобы сместить обслуживание статического содержания к лучше подходящему серверу?

1
ответ дан 2 December 2019 в 22:58
  • 1
    Спасибо, но я ищу кратковременное исправление этой ошибки для получения стабильных серверов. –  mmattax 6 February 2010 в 17:16

Теги

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