Итак, у меня есть виртуальная машина Google Cloud, на которой работает магазин woocommerce. Он работает нормально, но теперь я столкнулся с этой проблемой во второй раз. ВМ Использование процессора внезапно идет более 99% на длительный период времени. В это время сайт практически отключен.
Когда я останавливаю виртуальную машину, а затем перезапускаю ее, она возвращается к нормальному использованию ЦП. <1% большую часть времени и 1-10% некоторые периоды времени.
Также, когда я использую sudo kill
с идентификаторами процесса .php-fpm.bin
он решает проблему на несколько часов, но затем запускает .php-fpm.bin
снова под другим PID.
Также, когда я использую killall
на .php-fpm.bin сайт полностью отключается.
Это большая проблема что очень скоро может стать очень плохим, и я новичок в серверах.
Любая помощь с первопричиной этого будет очень-очень ценится!
--РЕДАКТИРОВАТЬ--
Вот мое использование ЦП, показанное с помощью 'top
'по SSH:
Что-то необычное происходит с .php-fpm.binКто-нибудь знает, кем я могу быть?
Это видно, когда я печатаю ps aux
в SSH:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
daemon 10048 99.9 0.9 286860 71564 ? R 13:13 83:15 php-fpm: pool wordpress
Если вам нужна другая статистика мониторинга, сообщите мне, что вам нужно знать, и я поищу ее для вас.
Предостережение: я тоже не сервер / системный администратор, но в начале этого года мне пришлось заняться этим.
Я столкнулся с подобными проблемами производительности при запуске процессов node.js. Возможно, есть параллели с тем, что вы видите. В моем случае, на основе изменений, с которыми я экспериментировал, похоже, что это связано с достижением максимального количества страниц.
Это внесенные мной изменения конфигурации, которые помогли решить проблемы:
В /etc/security/limits.d/custom.conf
root soft nofile 1000000
root hard nofile 1000000
* soft nofile 1000000
* hard nofile 1000000
В /etc/sysctl.d/99-sysctl.conf
fs.file-max = 1000000
fs.nr_open = 1000000
net.nf_conntrack_max = 1048576
Чтобы обновить запущенные процессы:
sudo sysctl -w fs.file-max=1000000
sudo sysctl -w fs.nr_open=1000000
sudo sysctl -w net.nf_conntrack_max=1048576
Как root:
ulimit -n 1000000
Ваш пробег может варьироваться в зависимости от того, что управляет вашими процессами.
Вот некоторая документация с дальнейшими настройками sysctl, некоторые из которых я планирую изучить и реализовать: https://easyengine.io/tutorials/linux/sysctl-conf/
@luissimo На этом сервере нет места подкачки (см. верхние заголовки), поэтому он не может выгружать процессы. Выделите диск (вероятно, минимум 200 ГБ). У вас 8 ГБ памяти. Поэтому используйте fdisk для разделения диска на две части, скажем, 1-й раздел размером 16 ГБ в качестве области подкачки, 2-й раздел для остальных. Посмотрим, поможет ли это.