Мы запускаем magento на VPS, что столкнулось с проблемой Numproc. По словам нашего хостинг-провайдера, наш сервер превышает предел numproc "400", и использование памяти также велико. Из-за нехватки памяти на нашем веб-сайте возникают проблемы с распределением памяти. Мы используем обработчики nginx и php-fpm. Они также изменили MPM с рабочего на событие.
Теперь мой вопрос в том, как мы можем контролировать нашу память. Есть ли способ, с помощью которого до достижения лимита «400» или памяти «90%» наши службы автоматически перезапускаются, таким образом освобождая ресурс, занятый неиспользуемыми процессами. Перезапуск службы (apache, mysql или nginx) может помочь нам собрать ресурсы. Любая настройка в файле конфигурации, которая может помочь нам лучше распределять ресурсы.
Кстати, использование памяти в состоянии сервера (на WHM) всегда ниже 40%. Разве это не подозрительно.
Я надеюсь, что смогу здесь изложить свою точку зрения. Пожалуйста, помогите нам оптимизировать ресурсы для лучшего использования.
С уважением
Как человек, работающий в хостинговой компании, я видел эту конкретную проблему с нашими контейнерами OpenVZ. Некоторые хостинг-провайдеры будут использовать OpenVZ из-за возможности перепродавать узлы, создавая то, что мы называем «эффектом плохого соседа».
По сути, контейнеры будут совместно использовать все ресурсы на узле. Да, вам выделен определенный объем памяти, numprocs, дисковое пространство и т. Д. Однако, если другие контейнеры превышают свои ограничения в любой из категорий ресурсов, ресурсы вашего VPS могут быть сжаты (например, дисковое пространство может внезапно сжиматься или возникать нехватка памяти ).
Ваша хостинговая компания, скорее всего, изучает счетчики отказов для numproc и памяти. Если вы превысите предел numproc несколько раз, счетчики отказов начнут расти. Если ваш сайт magento превышает предел в 400 numproc, есть несколько решений.
Перезапуск служб до того, как достигнут лимит ресурсов, не является жизнеспособным решением. Я уверен, что ваша цель - поддерживать работу вашего сайта с оптимальным временем безотказной работы. Если нет возможности оптимизировать ваш сайт для использования меньшего количества ресурсов, я бы попросил вашу хостинговую компанию проверить трафик (если вы являетесь управляемым клиентом), чтобы убедиться, что он законный. Иногда трафик может быть злонамеренным и пытаться использовать грубую силу, увеличивая количество процессов.
Что касается использования памяти, я бы посмотрел на ваш файл php.ini для параметра memory_limit = 64 МБ. Я бы рекомендовал установить ограничение не выше 96 МБ (в идеале - 64 МБ), если на сервере установлено 4 ГБ ОЗУ или меньше. Иногда люди устанавливают его на 256 МБ или выше на сервере с 2 ГБ памяти и задаются вопросом, почему память все время исчерпывается. Я не знаком с вашим сайтом Magento, поэтому не уверен, какой должна быть идеальная настройка php.ini. Похоже, что для описываемой вами среды VPS ограничение не должно превышать 96 МБ.
Судя по всему, вы регулярно превышаете лимит numproc, что, скорее всего, является причиной большого трафика или неоптимизированного кода на сайте. Я НАСТОЯТЕЛЬНО предлагаю перейти на аппаратную виртуализированную среду (посмотрите, предлагают ли они виртуализацию KVM или XEN). Аппаратная виртуализация устранит эффект «плохого соседа» и предоставит ВЫДЕЛЕННЫЕ ресурсы. 400 numproc - это примерно самый высокий предел, который наша компания предлагает для серверов VPS на узле OpenVZ.
Если переход на аппаратную виртуализированную среду не подходит для вашей хостинговой компании, попробуйте изучить выделенные серверы начального уровня.