2014-05-15 1 views
0

Я установил FastCGI для запуска моего PHP-сайта, и я обнаружил, что когда я создаю большой файл с использованием сайта, работает только один процесс php-cgi, а его использование в ЦП составляет 100%. Но общее использование ЦП составляет всего 25%.Как использовать весь процессор для FastCGI (PHP быстрый CGI-процесс использует 100% -ный процессор, но общее использование процессора составляет всего 25%)

Адрес: Вы находитесь на странице "top -u user".

top - 13:50:35 up 3:58, 3 users, load average: 0.07, 0.20, 0.32 
Tasks: 116 total, 1 running, 115 sleeping, 0 stopped, 0 zombie 
Cpu(s): 25.0%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st 
Mem: 35126760k total, 1090160k used, 34036600k free, 60644k buffers 
Swap:  0k total,  0k used,  0k free, 289816k cached 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND                
7570 user 20 0 232m 13m 10m S 100.0 0.3 0:00.03 php-cgi                
7571 user 20 0 234m 16m 10m S 0.0 0.0 0:00.22 php-cgi                
7572 user 20 0 304m 86m 10m S 0.0 0.3 1:37.49 php-cgi                
7573 user 20 0 234m 15m 9228 S 0.0 0.0 0:00.16 php-cgi                
7574 user 20 0 232m 13m 9528 S 0.0 0.0 0:00.40 php-cgi                
7594 user 20 0 232m 13m 10m S 0.0 0.0 0:00.02 php-cgi                
7595 user 20 0 234m 14m 9492 S 0.0 0.0 0:00.09 php-cgi                
7596 user 20 0 232m 13m 9184 S 0.0 0.0 0:00.06 php-cgi                
7597 user 20 0 234m 15m 9500 S 0.0 0.0 0:00.03 php-cgi                
7598 user 20 0 232m 10m 7116 S 0.0 0.0 0:00.02 php-cgi                
7599 user 20 0 232m 13m 10m S 0.0 0.0 0:00.02 php-cgi                
7601 user 20 0 326m 33m 11m S 0.0 0.1 1:58.60 php-cgi                
7602 user 20 0 234m 14m 8988 S 0.0 0.0 0:00.14 php-cgi                
7603 user 20 0 234m 12m 6800 S 0.0 0.0 0:00.15 php-cgi                
7604 user 20 0 308m 13m 9848 S 0.0 0.0 0:00.13 php-cgi 

Сервер АМС экземпляр m2.x2large и он получил 4 VCPU (4 ядра может быть). И теперь FastCGI, похоже, использует только одно ядро.

Я понятия не имею, как настроить FastCGI, чтобы он использовал все 4 vCPU.

Мои текущие настройки: FastCGI + suEXEC + PHP 5.5.11 + apache2.

Вот Teh FastCGI конфигурации в апача:

FcgidIPCDir /usr/local/apache2/logs/mod_fcgid 
FcgidProcessTableFile /usr/local/apache2/logs/mod_fcgid/fcgid_shm 
FcgidIOTimeout 7200 
FcgidMaxRequestLen 2097152 
FcgidMaxProcesses 100 
FcgidMaxProcessesPerClass 100 
FcgidMaxRequestsPerProcess 5000 
FcgidMaxRequestInMem 20971520 
FcgidZombieScanInterval 5 
FcgidIdleScanInterval 120 
FcgidProcessLifeTime 3600 

Вот настройки /cgi-bin/php.fcgi:

#!/bin/bash 
# Shell Script To Run PHP5 using mod_fastcgi under Apache 2.x 
### Set PATH ### 
PHP_CGI=/usr/bin/php-cgi 
PHP_FCGI_CHILDREN=4 
PHP_FCGI_MAX_REQUESTS=5000 
### no editing below ### 
export PHP_FCGI_CHILDREN 
export PHP_FCGI_MAX_REQUESTS 
exec $PHP_CGI 

Пожалуйста, помогите мне в этом.

спасибо, что заблаговременно!

+0

В этом случае диск-запись может быть ограничивающим фактором. – Marek

+0

Привет Марек, ты знаешь, как улучшить это? Могу ли я использовать больше ОЗУ или увеличить время выполнения, чтобы оптимизировать это? – Charles

ответ

0

Этот процесс использует 100% одного сердечника, что составляет 25% от общей вычислительной мощности (4 ядра). Невозможно использовать один поток для более одного ядра, но похоже, что FastCGI может быть настроен на использование нескольких потоков. Обратитесь к this question за более подробной информацией.

Обратите внимание, что 1 запрос может привести только к 1 потоку, поэтому, если он обрабатывает один запрос, похоже, что этот запрос не обрабатывается несколькими потоками.