Есть проблема, которая сводит меня с ума. После того, как я попытался исправить проблему использования ЦП на моем VPS, загрузка ЦП выросла с 60% до 150%, и я понятия не имею, что вызывает проблему. Пожалуйста, помогите мне.
Я установил копию mediawiki на Linode 1024. Wiki работает на Niginx + PHP-fpm + MySql. У вики не так много трафика, всего около 4000 запросов в день, в основном от ботов Google и Bing. Раньше он использовал около 60% (из 400% на Linode) процессора. Я думал, что это немного завышено, поэтому два дня назад я пытался исправить проблему (не зная, что меня ждало). Я ничего не сделал, но добавил новую пустую строку в файл конфигурации вики, который изменил бы время изменения файла конфигурации, и тогда все кешированные файлы страниц были бы признаны недействительными. Я делал это раньше, и это приводило к высокой загрузке ЦП, но обычно требуется всего несколько часов, чтобы вернуть все в норму. Не в этот раз, моя загрузка ЦП была около 150% более двух дней.
Это php-fpm, использующий большинство успокоителей процессора. Использование 100% трех ядер - не редкость. Я этого раньше не видел. На Linode есть и другие сайты, но это должна быть вики. Потому что, если я отключу вики, загрузка ЦП скоро упадет примерно до 40%.
В тот день я также продублировал php-fpm.conf и открыл его, но не изменил.
Понятия не имею, что я сделал не так. Прошу помощи, чтобы не сойти с ума !!! Это php-fpm. Есть ли способ узнать, что он делает? Я имею в виду, какие сценарии связаны и какие коды функций работают?
верхняя:
top - 06:34:33 up 10 days, 4:23, 2 users, load average: 1.10, 1.24, 1.37
Tasks: 76 total, 4 running, 72 sleeping, 0 stopped, 0 zombie
Cpu(s): 61.1%us, 3.1%sy, 0.0%ni, 32.8%id, 2.9%wa, 0.0%hi, 0.0%si, 0.1%st
Mem: 1028684k total, 945192k used, 83492k free, 89580k buffers
Swap: 524284k total, 18084k used, 506200k free, 530380k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
26721 www-data 20 0 208m 54m 34m R 99 5.4 0:09.07 /opt/php5/sbin/php-fpm --fpm-config /opt/php5/etc/php-fpm.conf
26592 www-data 20 0 207m 45m 26m R 91 4.5 0:12.77 /opt/php5/sbin/php-fpm --fpm-config /opt/php5/etc/php-fpm.conf
26706 www-data 20 0 196m 43m 34m S 47 4.3 0:15.19 /opt/php5/sbin/php-fpm --fpm-config /opt/php5/etc/php-fpm.conf
26583 www-data 20 0 197m 45m 35m S 33 4.5 0:19.08 /opt/php5/sbin/php-fpm --fpm-config /opt/php5/etc/php-fpm.conf
26787 www-data 20 0 206m 36m 18m R 25 3.7 0:00.41 /opt/php5/sbin/php-fpm --fpm-config /opt/php5/etc/php-fpm.conf
26661 www-data 20 0 207m 46m 26m S 13 4.6 0:19.87 /opt/php5/sbin/php-fpm --fpm-config /opt/php5/etc/php-fpm.conf
1971 mysql 20 0 155m 57m 3952 S 8 5.7 383:57.81 /usr/sbin/mysqld
242 root 20 0 0 0 0 S 1 0.0 0:51.36 [kworker/3:1]
5711 root 20 0 139m 95m 580 S 1 9.5 0:41.30 /usr/local/bin/memcached -d -u root -m 128 -p 11211
19463 root 20 0 190m 3984 1284 S 1 0.4 0:02.66 /opt/php5/sbin/php-fpm --fpm-config /opt/php5/etc/php-fpm.conf
29100 www-data 20 0 10928 5540 820 S 1 0.5 4:49.05 nginx: worker process
vmstat 30
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 16912 81456 90784 554172 0 0 4 6 3 2 11 1 87 1
0 0 16912 78036 91000 555356 0 0 38 34 1397 375 12 1 87 0
4 0 16912 31776 91528 557508 0 0 78 42 3197 487 45 1 52 1
1 0 16912 83356 91768 558576 0 0 35 56 2608 449 32 1 67 1
1 0 16912 81548 92040 559720 0 0 41 31 1243 432 8 1 91 1
2 0 16912 53056 92332 562744 0 0 105 33 2013 581 17 1 81 1
2 0 16912 73236 92552 564844 0 0 68 36 1968 615 16 1 82 1
0 0 16912 91612 92904 566676 0 0 69 35 1845 692 13 1 85 1
1 0 16912 71248 93180 568428 0 0 58 33 1952 604 15 1 82 1
1 0 16868 55952 93516 572660 1 0 144 42 1801 637 12 1 86 1
2 0 16868 48324 94416 577844 0 0 189 66 2058 702 17 1 80 2
1 0 16928 58644 94592 578184 0 2 160 49 2578 723 25 1 70 3
5 0 16928 22600 94980 580568 0 0 89 32 1496 361 13 0 85 1
0 0 16988 49256 94500 576396 0 2 41 37 1601 426 14 1 85 0
5 0 18084 24336 86032 502748 0 37 83 68 2989 562 42 1 56 0
1 0 18084 123604 86376 506996 0 0 118 41 2201 573 22 1 76 1
2 0 18084 126984 86752 508876 0 0 64 53 1620 490 13 1 85 1
2 0 18084 103104 87148 510768 0 0 71 37 2757 602 33 1 64 1
Вы можете начать с уменьшения количества запросов Google и Bing ... Вы настроили robots.txt? Исключите ScriptPath из сканирования, чтобы индексировались только канонические URL-адреса страниц, но не URL-адреса с параметрами для api.php или index.php. Также при необходимости установите задержку сканирования.
Многие сайты MediaWiki замедляются поисковыми системами из-за небольших ошибок конфигурации.
Попробуйте использовать strace -p 26721
чтобы увидеть, что происходит в процессе. Чтобы узнать, какой дескриптор файла используется lsof -p 26721
.
ЦП расходуется в% пользовательском состоянии, попробуйте найти дополнительную информацию о PID, потребляющих большую часть ресурса в верхнем выводе. Как уже говорилось, запустите на нем strace -ffttTo /tmp/strace.out -p, чтобы узнать, где он застрял или сколько времени требуется для последовательных системных вызовов. Если есть задержка, вы можете определить ее оттуда.
Также жизнеспособными вариантами являются lsof, fuser.