Мой веб-сайт до вчерашнего дня работал нормально со средней нагрузкой ниже 1. Внезапно вчера он стал плохо себя вести. Я получал среднюю нагрузку до 50.
Я ничего не менял ни на сервере, ни на веб-сайте, и количество пользователей, использующих веб-сайт, осталось таким же, как и в предыдущие дни. Вот скриншот верхней команды:
Я даже не знаю, с чего начать, чтобы увидеть, что идет не так. Виртуальная память процессов php кажется мне очень большой, но, опять же, странно, что в предыдущие дни все было в порядке. Или, возможно, они не были, и я совершенно не знал об этом.
В чем может быть причина проблемы и как мне ее устранить?
Скринкарт, кажется, показывает несколько php
процессов, что предполагает, что вы запускаете php под apache2 как cgi-script (а не модуль php-script) или что у вас есть автономные процессы, которые выполняются как командная строка php или интерпретатор php.
Связанный CPU mysqld предполагает, что все они делают что-то, связанное с MySQL (или это может быть совпадением)
То, что эти php не запущены от имени пользователя apache, предполагает, что вам нужно будет предоставить дополнительную информацию о том, что это за процессы и почему они могут внезапно использовать больше ресурсов.
если вы хотите получить дополнительную информацию о процессе php, я использую что-то вроде этого в качестве однострочного файла, чтобы выгрузить некоторую информацию о pid ...
сначала выберите номер pid сверху, например 8371 из вашего вывода, в этом примере я просто показываю некоторые значения из сна 10000, которые я сделал в качестве теста ...
# pid=17837; { cat /proc/${pid}/{cmdline,environ} && ls -l /proc/${pid}/{cwd,exe}; } | tr '\0' '\n';
sleep
10000
HOSTNAME=workstations01.config
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=123.123.123.123 55069 22
SSH_TTY=/dev/pts/2
USER=userXXX
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
SSH_AUTH_SOCK=/tmp/ssh-lGNBN31178/agent.31178
MAIL=/var/spool/mail/userXXX
PATH=/usr/kerberos/bin:/opt/admin/bin:/usr/local/bin:/bin:/usr/bin:/opt/mx/bin
INPUTRC=/etc/inputrc
PWD=/home/userXXX
LANG=en_US.UTF-8
SHLVL=1
HOME=/home/userXXX
LOGNAME=userXXX
SSH_CONNECTION=123.123.123.123 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/sleep
lrwxrwxrwx 1 userXXX users 0 May 29 13:11 /proc/17837/cwd -> /home/userXXX
lrwxrwxrwx 1 userXXX users 0 May 29 13:12 /proc/17837/exe -> /bin/sleep
(очевидно, есть множество способов узнать, что это за вызов php. Это был просто быстрый пример из моей головы)