问题描述:昨天中午时候公司微信群里面有人发 反馈 说app不能登录了;我心中咯噔一下,不知道出现什么问题了;此时我脑海中出现了以下几种可能:
1.磁盘已满,可能会导致502
2.CUP超频可能会导致502
3.内存跑满了也可能会导致502;
鉴于以上原因;我立马打开电脑(昨天是2017-04-23 周日 ,在家休息呢,没上班),心中有一万头羊驼奔腾而过;我家里的笔记本刚刚在周六时刚刚重装了系统,xshell还没安装,无法连接 服务器;赶紧下载xshell 安装 ,我擦,安装失败,重新下载又安装了一遍;终于可以了,安装完成立马登录服务器(服务器是centos7.2);
1.执行 df -h 查看磁盘是否已满,返现还有60%的空余,排除这个问题;
2.执行top 查看参数内存,cup使用率,进程 都没问题;
3.我的服务器是搭建的 lnmp;大概是这里出问题了;
分析如下
mysql是用的阿里云的rds (刚刚查看过 iops 0%,cpu 1%;连接数是0;说明数据库没有问题;至少不是数据库引起的);我下意识的想到是不能解析php 还是不能访问 静态网页;于是又写了一个简答的html访问了一下;静态页面没问题;
那目标就锁定了 肯定是 php出问题了,由于最近没有修改过php的任何配置问题;肯定不是配置的问题;那么只剩下 php-fpm 这个解析php文件的 进程了;重新打开 top 发现 没有 php-fpm进程;于是进入 /etc/init.d/php-fpm restart;
这个命令执行完毕后,立马没问题了;
问题已经解决了,先通知大群里面,可以正常访问了 ,不会影响 线上使用了;也想领导汇报了;
这个时候需要注意的是,问什么 php-fpm进程没有了呢,难道是真的没有了?还是别的原因?经过百度,找到了根本原因是 php-fpm进程数有问题;发现原来php-fpm进程数设置的最大数只有40;并且还是动态的;
我虽然发现问了,但是也不能100%的确定;今天到公司 先查看解决办法;于是将 php-fpm进程数设置为200;我的服务器内存是8G的,这个200个进程应该没问题;想打算今天晚上凌晨3点左右时候在重启php-fpm;
万万没想到的是,心里刚刚盘算完这个事情;又尼玛出现了502;难道这是天意;立马修改php-fpm进程数;然后重启php-fpm;至此应该没有什么问题了;具体情况需要观察一段时间
未完 待续 。。。。。。