linux nginx php-fpm 优化

于Nginx对高并发的优良性能,故配了个Nginx+php-fpm来跑在线代理程序,是按照张宴文章配的,刚配置好时运行正常,但运行一段时间 后,网站打开很慢,打开网站后,在输入框输入要访问的网站,也慢得不行。在网站打开慢时,在SSH终端上输入命令也慢,怀疑是机房网速问题,但在ssh上 输入  
w3m www.example.com 
这个打开也慢,基本可以排除机房的网速问题。 
当打开网站慢时,把服务器重启后,就会快起来,后来发现,用
/usr/local/webserver/php/sbin/php-fpm restart 
把fastcgi重启下也会快起来,最把它加入计划任务,每小时重启下,基本保证网站不会慢,但终究不是办法。
查看了nginx.log和php-fpm.log,根据里面的错误,找了以上转载的几篇文章,总算是把问题解决了,主要修改了两个地方 
问题:
发现/usr/local/webserver/php/etc/php-fpm.conf文件里定义的打开文件描述符的限制数量是
<value name="rlimit_files">51200</value> 
但用 命令ulimit -n查看,发现只有1024 
我已在/etc/rc.local里添加了 
ulimit -SHn 51200 

竟然没生效:
解决:
vi  /etc/security/limits.conf
文件最后加上
*        soft    nofile  51200
*        hard    nofile  51200
2、
问题:
用命令
netstat -np | grep 127.0.0.1:9000 |wc -l
发现只有100多
解决:
根据服务器内存情况,可以把PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以
服务器上内存为8G,我把PHP FastCGI子进程数调整到300
vi /usr/local/webserver/php/etc/php-fpm.conf
将max_children修改为300
<value name="max_children">300</value>
重启服务器,这样,网站打开速度快,而且稳定了。

When you running a highload website with PHP-FPM via FastCGI, the following tips may be useful to you : ) ' 
如果您高负载网站使用PHP-FPM管理FastCGI,这些技巧也许对您有用:)  
1. Compile PHP’s modules as less as possible, the simple the best (fast); 
1.尽量少安装PHP模块,最简单是最好(快)的  
2. Increas PHP FastCGI child number to 100 and even more. Sometime, 200 is OK! ( On 4GB memory server); 
2.把您的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可 
注:我的1g测试机,开64个是最好的,建议使用压力测试获取最佳值  
3. Using SOCKET PHP FastCGI, and put into /dev/shm on Linux; 
3.使用socket连接FastCGI,linux操作系统可以放在 /dev/shm中  
注:在php-fpm.cnf 里设置<value name="listen_address">/tmp/nginx.socket</value>就可以通过socket连接 FastCGI了,/dev/shm是内存文件系统,放在内存中肯定会快了  (这一步待确认 
4. Increase Linux “max open files”, using the following command (must be root): 
# echo ‘ulimit -HSn 65536′ >> /etc/profile 
# echo ‘ulimit -HSn 65536 >> /etc/rc.local 
# source /etc/profile 

4.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号) 
echo 'ulimit -HSn 65536' >> /etc/profile 
echo 'ulimit -HSn 65536' >> /etc/rc.local  
source /etc/profile  

注:我是修改/etc/rc.local,加入ulimit -SHn 51200的 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化平台,它可以帮助您轻松地部署和管理应用程序。在Docker中,您可以运行多个容器,每个容器负责一个特定的任务。在您提到的情况下,您想要在Docker中运行PHP-FPMNginx容器,并将它们的日志转发到Docker日志。 首先,您需要安装Docker和Docker Compose来管理和运行容器。Docker Compose是一个用于定义和运行多个Docker容器的工具。您可以在Linux系统上安装这些工具,以便开始使用Docker。 接下来,您需要创建一个Docker Compose文件,该文件定义了PHP-FPMNginx容器的配置和连接方式。在该文件中,您可以指定容器的映像、端口映射、卷挂载以及其他相关配置。您可以根据您的需求自定义这些配置。 在Docker Compose文件中,您可以指定容器的日志驱动程序为Docker日志。这样,PHP-FPMNginx容器的所有日志都将被转发到Docker日志。您可以在Docker Compose文件中设置"logging"选项来配置日志驱动程序。 在安装和配置完成后,您可以使用Docker Compose命令来启动和管理PHP-FPMNginx容器。通过运行`docker-compose up`命令,Docker将根据您的配置文件创建和启动容器。您可以使用`docker-compose logs`命令来查看容器的日志。 总结一下,要在Docker中运行PHP-FPMNginx容器,并将其日志转发到Docker日志,您需要完成以下步骤: 1. 安装Docker和Docker Compose。 2. 创建一个Docker Compose文件,定义PHP-FPMNginx容器的配置。 3. 在Docker Compose文件中设置日志驱动程序为Docker日志。 4. 使用Docker Compose命令启动和管理容器。 5. 使用`docker-compose logs`命令查看容器的日志。 希望这个回答能够帮助到您。如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值