Ajustando um servidor LAMP

1

Estou tentando carregar o teste de um aplicativo LAMP que minha equipe desenvolveu e implantou no AWS Ubuntu 14.04 usando jmeter. Estamos usando o AWS CDN para fornecer arquivos estáticos, o mysql e o apache estão no mesmo host.

Quando há apenas um usuário fazendo coisas, o tempo de resposta é normal, entre 2 e 5 segundos, dependendo da página.

Meu objetivo é fazer com que ele responda com o mesmo tempo a 100 usuários conectados fazendo coisas ao mesmo tempo.

Eu usei uma instância AWS T2.MEDIUM ( 2 vCPU + 4GB RAM ) e comecei com mod_php e prefork módulo, mas eu não estava satisfeito em tudo. o servidor foi ridiculamente lento. O tempo de resposta foi + 20s com CPU alta e uso de RAM .

Eu tentei com o php-fpm e o módulo de evento depois de alguns recursos do SO. O uso de RAM é melhor agora, mas a CPU usada pelo processo php-fpm é muito alta. (Eu tentei com static / ondemand / dynamic sem resultado)

Aqui está minha configuração usando configuração dinâmica com módulo de evento para atender 100 usuários simultâneos na instância aws t2.medium ( 2 vCPU + 4GB RAM ) - O uso da CPU PHP-FPM é muito alto:

top - 17:21:41 up  1:58,  1 user,  load average: 5.52, 3.83, 1.86
Tasks: 128 total,   6 running, 122 sleeping,   0 stopped,   0 zombie
%Cpu(s): 97.0 us,  2.7 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.2 si,  0.2 st
KiB Mem:   4046848 total,  2170544 used,  1876304 free,   104788 buffers
KiB Swap:        0 total,        0 used,        0 free.  1107856 cached Mem
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
14285 www-data  20   0  603996 192688  25096 R  52.3  4.8   2:19.28 php5-fpm   
14300 www-data  20   0  814276 402980  29224 R  36.6 10.0   2:25.77 php5-fpm   
14318 www-data  20   0  448444  40480  25800 R  34.3  1.0   2:03.65 php5-fpm   
14384 www-data  20   0  455808  48472  25860 R  34.3  1.2   2:06.95 php5-fpm   
15022 www-data  20   0  447488  38748  24644 R  31.6  1.0   1:25.14 php5-fpm   
16309 perf      20   0  321248  39296   9632 S   5.0  1.0   0:00.15 php5       
 1106 mysql     20   0 1129640 148232   7548 S   1.7  3.7   0:38.17 mysqld

/etc/php5/fpm/php-fpm.conf

[global]
pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
include=/etc/php5/fpm/pool.d/*.conf

/etc/php5/fpm/pool.d/www.conf

[www]

pm.status_path = /status

user = www-data
group = www-data

listen = /var/run/php5-fpm.sock

listen.owner = www-data
listen.group = www-data

pm = dynamic 
pm.max_children = 100
pm.start_servers = 5
pm.min_spare_servers = 4
pm.max_spare_servers = 6
pm.max_requests =0 

rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes

chdir = /

/etc/apache2/mods-enabled/mpm_event.conf

 <IfModule mpm_event_module>
            ServerLimit              10
            StartServers              5
            MinSpareThreads           5
            MaxSpareThreads          15
            ThreadLimit              50
            ThreadsPerChild          10
            MaxRequestWorkers       100
            MaxConnectionsPerChild    0
    </IfModule>

Eu sinto que estou tão perto, mas não consigo. Vou atualizar minha pergunta com qualquer arquivo, log ou saída que você pedir. POR FAVOR, isso é muito crítico e eu ficaria muito grato a você. Muito obrigado

==================================== ATUALIZAÇÃO: 1

Olhando para o log de erros do php, posso ver toneladas de erros fatais do PHP:

call to a member function xxxxx() on a non-object

O erro fatal do PHP pode causar alta CPU? (Pode ser escrito por vários processos consome ciclos mais cpu)

    
por another geek 05.12.2016 / 18:35

0 respostas