LAMP服务器优化----PHP优化

设置apache以fastcgi方式运行

在此之前PHP(5.6)都是以Apache的模块mod_php运行的。只能有一个PHP进程一个线程。以fastcgi方式运行可以设置多线程提高并发量。
先来看看以mod_php方式的并发如何:
用ab发送2000个并发10万个请求
这里写图片描述
每秒处理3千多,大量请求延迟超过800ms。
现在这种方式开启PHP-FPM看是否有改善

配置PHP_FPM

cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
编辑php-fpm.conf
pid=run/php-fpm.pid
在Ubuntu16.04中nobody默认的用户组是nogroup
将php-fpm.conf里面的 group=nobody 改为 group=nogroup
修改httpd.conf
将所有的php请求都通过fastcgi处理
注释掉的是旧的
注释掉的是旧的
开启mod_proxy.so 跟 mod_proxy_fcgi.so
这里写图片描述
注释掉 php5_module

这里写图片描述

重启Apache。
必须要先 stop 再 start。

service apache2 stop
service apache2 start

启动php-fpm

/usr/local/php5/sbin/pph-fpm

查看phpinfo与之前相比
少了Apache2handler
多了cgi-fcgi
这里写图片描述

此时同样已2000的并发,10万个请求试试性能

这里写图片描述

性能似乎变得更低了?
再看TIME_WATE
这里写图片描述

请求的等待数又飙升了。
Apache的日志出现大量的链接错误

vi /usr/local/apache/logs/test.tt-error_log

这里写图片描述
修改php-fpm.conf;

这里写图片描述
设置启动的PHP-FPM进程数
一般PHP-fpm进程占用内存随着时间会慢慢增大,一般20-30M,所以进程数就用2000M/30M = 67

重启php-fpm;

kill -INT `cat /usr/local/php5/var/run/php-fpm.pid`
/usr/local/php5/sbin/php-fpm

再次测试2000个并发,10W个请求
这里写图片描述
每秒处理能力达到了2K多了。
继续优化
打开PHPopcache加速器

vi /usr/local/php5/etc/php.ini

修改如下配置

这里写图片描述

重启PHP-FPM;
可以看到phpinfo中

这里写图片描述
再次2000的并发,10W个请求
这里写图片描述
此时已经达到了3K多

上一篇我们的并发已经达到510个并发,25500个请求。
此时能够达到520个并发,26000个请求。

最后我们切换php为Apache的mod_php方式,查看并发的对比。

同样的配置,运行方式的不同
用ab发送2000个并发10W个请求
这里写图片描述

每秒的请求达到了4K多。
说明在以Apache mod_php方式运行的承载能力较强。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值