• 服务器故障处理总结(2019-5-5)


    记:接口报错的排错以及解决过程
     
    前端页面正常渲染,接口出现错误返回,接口采用thinkphp5,前后端分离。
     
    非专业运维工程师,这里记录一下此次异常的(紧急)处理过程,供今后进一步学习借鉴。
     
    1.首先查看nginx报错日志以及php报错日志,项目代码未改动,大致定位到php-fpm配置出现问题,
     
    日记记录报错信息如下:
     
    upstream timed out (110: Connection timed out) while reading response header from upstream, client:
    106.14.xxxx.xx, server: api.xxx.cn, request: "POST /v1/Relationproduct/index HTTP/1.1", upstream:
    "fastcgi://127.0.0.1:9000"
    【upstream 超时,也就是说接口响应超时】
     
    2.查看内存使用情况:free -m
     
    可用内存 100M左右
     
    3.查看内存占用情况:
     
    ps auxw|head -1;ps auxw|sort -rn -k4|head -4
     
    mysql占用:30%-40%
     
    php-fpm: 单个线程占用0.3%
     
    当前php-fpm 使用进程数:7
     
    4.尝试重启php-fpm,查看进程数回复到5,程序恢复正常,跑一段时间后,php-fpm进程数增加
     
    到7问题再次出现。
     
     
    5.猜测为php-fpm配置可用进程数过少,但考虑可用内存,于是改变最大可用进程数为 10(原5)
     
     
    原 php-fpm.conf :
     
    pm.max_children = 5
    pm.start_servers = 1
    pm.min_spare_servers = 2
    pm.max_spare_servers = 3
    request_terminate_timeout = 100
     
    第一次修改后:
     
    pm.max_children = 10
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 8
    request_terminate_timeout = 100
     
    修改配置后重启,项目稳定一段时间后,php再次出现问题
     
     
    由于这个项目接口只部署了一台服务器,当前故障时段为流量高峰,未解决问题,第二次修改后,考虑增加服务器内存,后续再做优化。
    pm.max_children = 40
    pm.start_servers = 20
    pm.min_spare_servers = 20
    pm.max_spare_servers = 30
     
     
    重启阿里云实例,并重启nginx以及php,配置生效,项目恢复正常。
     
     
     
     
     
     
  • 相关阅读:
    微软ADFS成本评估
    身份访问管理(IAM)与多因素认证(MFA)有怎样的交集?
    宁盾堡垒机双因素认证方案
    无线wifi网络企业微信认证解决方案
    《暴走IT》第5话:“裸泳”的办公软件
    微软AD域如何实现用户自助修改/重置密码?
    Windows操作系统双因素身份认证解决方案
    如何用企业微信、飞书等扫码登录 Office 365
    无线网络真的安全吗?
    远程办公身份安全加固方案
  • 原文地址:https://www.cnblogs.com/yokooo/p/12373150.html
Copyright © 2020-2023  润新知