原因:最近晚上大概8点到12点左右,服务器不可用,到阿里云控制台观察,cup和内存利用率不高,但是 ECS同时连接数(Count),比白天高出2倍,导致服务不可用,就连短信都发送不了,在这种情况下必须要重启服务,把 ECS同时连接数降下去才行,老是这样也不行,每晚不能老是盯着服务器,暴力重启吧,着实让人头疼。
排查过程如下:
1.首先登陆到服务器,使用 ulimit -a 发现 open files 数没问题,最大是65535,我们系统并发数才1000多就不能用了,这不科学
2.我使着手动修改参数 ulimit -HSn 65535 ,感觉还是不行
3.我找到服务的进程,21302 ,使用 cat /proc/30356/limits 命令 发现 当前服务 open files 没有继承系统的open files ,当前的最大值才1024,这肯定不够用,现在大概是找到问题所在了
4.最后修改服务的配置参数,加上如下配置
[Service]
Type=simple
LimitNOFILE=65535
LimitNPROC=65535
5.重启服务,查看该进程的 open files
问题终于解决了!