基于轻量级服务器的网站突然无法访问(Nginx挂了)的排查过程

ProLightsfx 2024-11-2 303 11/2

一、发现问题和确认问题

吃完晚饭后随手刷了下https://www.prolightsfxjh.com/,发现打不开了网页了。

登上服务器 ps ux | grep nginx,果然进程不见了。systemctl -l --full | grep nginx显示failed。

 

二、临时修复方案

那就先把服务器跑起来再去查原因,systemctl start nginx.service。

 

三、排查根本原因

然后看了Nginx的error.log基于轻量级服务器的网站突然无法访问(Nginx挂了)的排查过程

果然是啥信息也没有。那么很可能是oom了。

vi /var/log/messages

搜"oom", 发现确实有相关日志,

基于轻量级服务器的网站突然无法访问(Nginx挂了)的排查过程

基于轻量级服务器的网站突然无法访问(Nginx挂了)的排查过程

源头是那个时候突然一大波爬虫流量过来,然后php-fpm pool自动扩容了很多子进程,导致php-fpm pool 占用的内存太多了,最终oom。

所以需要进一步降低php-fpm pool 的配置的。

 

四、修复问题

这里也没法直接计算一个最优解,所以采用二分法慢慢调配置(先调低子进程上限,如果内存利用率低再调高。之后如果内存利用率过于高,再继续调低上限),最终达到一个最好的效果。

find -name . "php-fpm.conf"

vi php-fpm.conf

listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.status_path = /phpfpm_74_status
pm.max_children = 40
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 30

systemctl reload php-fpm-74.service

 

五、监控之后类似问题的出现

这里可以通过腾讯云可观测平台来配置各种监控。

之前只配置了指标监控,漏了配置异常事件监控了,翻了下果然有内存oom检查,那就安排上。

基于轻量级服务器的网站突然无法访问(Nginx挂了)的排查过程

 

本博所有文章均为博主原创,未经许可不得转载。

https://www.prolightsfxjh.com/article/nginx_crash/

 

Thank you!

                                                                                                                                             ------from ProLightsfx

- THE END -

ProLightsfx

11月12日12:05

最后修改:2024年11月12日
0

本博所有文章均为博主原创,未经许可不得转载

共有 0 条评论