您的位置:首页 > 运维架构 > Nginx

Nginx+PHP-FPM时快时慢问题的解决

2016-05-26 17:19 441 查看
原因:一个测试环境,nginx+php-fpm对外提供服务,测试人员访问的时候出现时快时慢的情况,慢时超过了正常网页的等待打开时间范围。重启nginx php-fpm后恢复,访问几次后又会慢查找思路:1,系统负载,磁盘IO
top,查看负载,负载小于1 排除。
vmstat 查看磁盘io 测试环境 io较小,排除。2,是否有php慢查询程序打开php-fpm中php慢查询日志request_slowlog_timeout = 5slowlog = var/log/slow.logreload 访问之后无慢查询日志,判断无执行时间比较慢的php程序检查该配置文件pm = staticpm.max_children = 300pm.start_servers = 15pm.min_spare_servers = 8pm.max_spare_servers = 48request_terminate_timeout = 200排除是pm.max_children 设置过小引起的问题。3,怀疑mysql有慢查询网站时快时慢 重启之后打开统一页面较快,排除mysql有慢查询。此时陷入迷茫尴尬之中。查看nginx配置文件worker_rlimit_nofile 65535 偶然发现多么熟悉的数字,此处定义了限制打开的文件数量,就联想到ulimit 参数ulimit -n 果然 没有进行优化,显示默认的1024echo '* - nofile 65535' >> /etc/security/limits.conf然后执行下ulimit -HSn 65535也可以把ulimit -SHn 65535命令加入到/etc/rc.local,然后每次重启生效文件描述符文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于Unix、Linux这样的操作系统。习惯上,标准输入(standard input)的文件描述符是 0,标准输出(standard output)是 1,标准错误(standard error)是 2。尽管这种习惯并非Unix内核的特性,但是因为一些 shell 和很多应用程序都使用这种习惯,因此,如果内核不遵循这种习惯的话,很多应用程序将不能使用。调整完之后访问时快时慢的问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx php-fpm