2015-05-12 5 views
1

Я выделил сервер с одним четырехъядерным процессором с тактовой частотой 3,1 ГГц и 32 ГБ оперативной памяти. Он работает как веб-сервер и настроен на: Apache 2.4 + MPM работник + Mod_fcgidВысокая загрузка процессора на основе php-процессов

Когда я запускаю команду сверху, я вижу высокую загрузку процессора при помощи PHP процессов сайта. Ниже приведен снимок

Tasks: 193 total, 1 running, 112 sleeping, 1 stopped, 79 zombie 
Cpu(s): 84.0%us, 1.4%sy, 0.0%ni, 12.3%id, 2.3%wa, 0.0%hi, 0.0%si, 0.0%st 
Mem: 33554432k total, 26637508k used, 6916924k free,  0k buffers 
Swap:  0k total,  0k used,  0k free, 10471152k cached 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND                            
8415 mysql  20 0 12.5g 4.1g 6348 S 115.1 12.8 5107:00 mysqld                             
18687 domainus 20 0 303m 110m 44m S 64.5 0.3 1:05.51 php                              
18728 domainus 20 0 311m 118m 46m S 42.7 0.4 1:00.57 php                              
18732 domainus 20 0 333m 140m 45m S 40.3 0.4 1:19.61 php                              
17371 domainus 20 0 306m 114m 46m S 32.5 0.3 0:57.16 php                              
18726 domainus 20 0 278m 87m 47m S 24.8 0.3 1:48.62 php                              
14765 domainus 20 0 324m 133m 47m S 17.7 0.4 4:00.94 php  

Я хочу быть уверен, что моя конфигурация Apache является правильным, и проблема с кодом PHP, любые предложения о том, как развернуть этот вопрос?

ответ

1

Мое предложение состояло в том, чтобы запустить PHP из командной строки и посмотреть, что произойдет. Если возможно, отключите Apache заранее. Также попробуйте запустить тот же сайт/PHP на другом сервере. Если у вас нет другого сервера, вы можете использовать поле Vagrant. Можно легко создать поле с PHP и Apache, используя Puphpet.

Если во время выполнения этих тестов не возникает проблем, попробуйте отключить PHP в Apache и запросить некоторые простые HTML-страницы.

+0

Maarten, у меня есть сайт wordpress, любая помощь в том, как работать с CLI для вызова любой конкретной страницы? – maqsimum

+0

Как о модульном тестировании Wordpress? (Https://make.wordpress.org/core/handbook/automated-testing/)? –

1

Я думаю, что узким местом здесь является ваш MySQL, поскольку его потребляющая большая часть процессора и php, скорее всего, делают эти запросы. Проблема может быть связана с плохим кодом php.

Правильный способ развернуть проблему, поэтому используйте php-профайлер и посмотрите, какая функция занимает время, а затем имеет дело с соответствующим образом. Как и взаимодействие с db, требуется время, а затем пытайтесь кэшировать запросы, пакетные запросы, чтобы избежать проблем с параллелизмом.

Смежные вопросы