调整 LAMP 服务器

调整 LAMP 服务器

我正在尝试负载测试LAMP 应用程序我的团队使用 jmeter 开发并部署在 AWS ubuntu 14.04 上。我们正在使用AWS CDN提供静态文件,mysql阿帕奇位于同一主机上。

当只有一个用户执行操作时,响应时间是正常的,根据页面不同,在 2 到 5 秒之间。

我的目标是让它在同一时间做出反应100连接的用户同时做某事。

我用了一个AWS T2.MEDIUM实例 (2 个 vCPU + 4GB RAM)并开始mod_php预分叉模块,但我一点也不满意。服务器速度慢得离谱。响应时间+20秒高 CPURAM 使用情况

我尝试过php-fpm事件模块在查阅了一些 SO 资源之后。内存现在使用起来更好了,但是中央处理器由使用php-fpm进程太高。(我尝试了静态/按需/动态,但没有结果)

这是我的配置,使用动态配置和事件模块来提供服务100 个并发用户AWS T2.Medium实例 (2 个 vCPU + 4GB RAM) -PHP-FPMCPU 使用率非常高:

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>

我感觉我已经很接近了,但我做不到。我会用你要求的任何文件、日志或输出来更新我的问题。拜托,这非常关键,我会非常感激你的。非常感谢

==================================== 更新:1

查看 php 错误日志,我可以看到大量 PHP 致命错误:

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

PHP 致命错误会导致 CPU 使用率过高吗?(可能被多个进程写入会消耗更多的 CPU 周期)

相关内容