首页 > 其他 > 详细

服务器问题 排查思路

时间:2020-03-31 19:05:11      阅读:90      评论:0      收藏:0      [点我收藏+]

服务器问题 排查思路

一.尽可能搞清楚问题的前因后果

1.故障是什么时候发现的?   
2.故障的表现是什么?无响应?报错?
3.最后一次对整个平台进行更新的内容是什么(代码、服务器等)

二.当前有谁在,做过什么操作

1.  w/who   
2. last
3. history

三.现在运行的进程有什么

1. pstree -a              //以树状图显示进程间的关系
2. ps -aux
3. netstat  -n -o -a |grep 443 |wc -l     查看各端口连接数 
   netstat  -n -o -a |grep 80 |wc -l
4.netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}‘     查看http的进程数

四.监听的网络服务

1.  netstat -nalp     
2.netstat -ntlp
3.netstat -nulp
  -n或--numeric 直接使用IP地址,而不通过域名服务器。
  -a或--all 显示所有连线中的Socket。
  -l或--listening 显示监控中的服务器的Socket。
  -p或--programs 显示正在使用Socket的程序识别码和程序名称。
  -t或--tcp 显示TCP传输协议的连线状况。
  -u或--udp 显示UDP传输协议的连线状况。

五. 内存 CPU 磁盘空间
1.内存
(1) free -m

技术分享图片

第一行 :    内存总数   已使用内存数   空闲内存数  废弃内存数   缓存内存数     缓存内存数
第二行:    
- buffers/cache:  已使用内存数 (指的第一行中的used – buffers – cached)
+ buffers/cache:  空闲内存数(指的第一行中的free + buffers + cached)       
第三行: 指交换分区
Linux的Swap类似于Windows的虚拟内存,就是把一部分硬盘空间虚拟成内存使用,用来解决内存容量不足的问题。如果有使用到Swap,说明服务器该升级配置了。

?

2.CPU
(1)uptime

技术分享图片

系统时间  系统运行时间  已登录用户的数量  系统的平均负载量:  过去一分钟  五分钟 十五分钟
 注:有一种说法,当load avarage <3 系统良好,大于5 则有严重的性能问题

(2)top

技术分享图片

第一行同uptime

第二行为进程的信息
总进程数  正在运行的进程数   睡眠进程数    停止进程数   僵尸进程数

第三行为CPU信息   
us: 用户空间占用CPU百分比       
sy  内核空间占用CPU百分比
ni  用户进程空间内改变过优先级的进程占用CPU百分比
id  空闲CPU百分比           //比较重要
wa  等待输入输出的CPU时间百分比       

第四、五行为内存信息 

Mem  :  8169876  k  total  ,  7686472  k  used  ,  483404  k  free  ,  35272  k  buffers
物理内存总量       使用的物理内存总量    空闲内存总量         用作内核缓存的内存量

Swap  :  4096532  k  total  ,  160  k  used  ,  4096372  k  free  ,  2477532  k  cached
交换分区总量        使用的交换区总量       空闲交换区总量      缓冲的交换区总量


3.磁盘空间
 (1) df   -h       显示目前在Linux系统上的文件系统的磁盘使用情况统计

技术分享图片

文件系统的名称   总内存   使用中的内存   可使用的内存    使用的内存占总内存的百分比  挂载点

 (2) du  -sh   *     查看当前文件夹下所有目录大小

技术分享图片

六.io性能

1.iotop         

技术分享图片

? 读取速度 写入速度

2. dstat --top-mem --top-io --top-cpu           查看当前占用内存、io、CPU最高的进程信息

技术分享图片

一、解决500错误:
1、500错误指的是服务器内部错误,也就是服务器遇到意外情况,而无法履行请求。
2、500错误一般有几种情况:
(1)web脚本错误,如php语法错误,lua语法错误等。
(2)访问量大的时候,由于系统资源限制,而不能打开过多的文件
3、一般分析思路:
(1)查看nginx error log ,查看php error log
(2)如果是too many open files,修改nginx的worker_rlimit_nofile参数,使用ulimit查看系统打开文件限制,修改/etc/security/limits.conf
(3)如果是脚本的问题,则需要修复脚本错误,并优化代码
(4)各种优化都做好,还是出现too many open files,那就要考虑做负载均衡,把流量分散到不同服务器上去了

二、解决502,504错误
1、使用nginx代理,而后端服务器发生故障;或者php-cgi进程数不够用;php执行时间长,或者是php-cgi进程死掉;已经fastCGI使用情况等都会导致502、504。
2、502 是指请求的php-fpm已经执行,但是由于某种原因而没有执行完毕,最终导致php-fpm进程终止。
一般来说,与php-fpm.conf的设置有关,也与php的执行程序性能有关,网站的访问量大,而php-cgi的进程数偏少。针对这种情况的502错误,只需增加php-cgi的进程数。
具体就是修改/usr/local/php/etc/php-fpm.conf文件,将其中的max_children值适当增加。
这个数据要依据你的VPS或独立服务器的配置进行设置。一般一个php-cgi进程占20M内存,你可以自己计算下,适量增多。
/etc/init.d/php-fpm restart 然后重启一下.
3、504 表示超时,也就是客户端所发出的请求没有到达网关,请求没有到可以执行的php-fpm。与nginx.conf的配置也有关系。

服务器问题 排查思路

原文:https://www.cnblogs.com/gongjingyun123--/p/12606574.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!