zoukankan      html  css  js  c++  java
  • 服务器故障处理总结(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,配置生效,项目恢复正常。
     
     
     
     
     
     
  • 相关阅读:
    挑战程序设计竞赛 2.1 最基础的“穷竭搜索”
    HDU 5145 NPY and girls(莫队算法+乘法逆元)
    BZOJ 4300 绝世好题(位运算)
    HDU 5724 Chess(博弈论)
    BZOJ 1177 [Apio2009]Oil(递推)
    Codeforces 706D Vasiliy's Multiset(可持久化字典树)
    HDU 3374 String Problem (KMP+最小最大表示)
    POJ 2758 Checking the Text(Hash+二分答案)
    HDU 5782 Cycle(KMP+Hash)
    POJ 3450 Corporate Identity(KMP)
  • 原文地址:https://www.cnblogs.com/yokooo/p/12373150.html
Copyright © 2011-2022 走看看