IT运维

Linux如何排查思路问题?

2020-07-22 14:56:23 | 来源:中培企业IT培训网

熟悉运维的人员,可能经常会遇到系统的监控的报警。通过这些警报,我们们就会分析出系统的故障以及问题的根源,然后进行及时处理。那么Linux如何排查思路问题的?其实分析问题是需要赢经验的,这也是提升运维工程师能力进步的方法之一。所以如果运维工程师拥有自己特有的分析方法,就可以快速处理问题。

  分析问题的方法论

我们常用5W2H方法提出性能分析的问题

1.What-什么现象表现

2.When-什么时间出现

3.Why-为什么发生问题

4.Where-哪个组件性能发生问题

5.How much-消耗多少资源

6.How to do-如何解决问题

  常见系统资源问题分析

针对目前服务器提供的应用服务,通常需要关注内核CPU调度器功能和性能。

主要是分析线程状态,线程的时间用在什么地方。线程状态的分类一般分为:

on-CPU:执行中,分为用户态时间user和系统态时间sys。

off-CPU:等待,等待CPU、I/O、锁、换页等等,其状态可以细分为可执行、匿名换页、睡眠、锁、空闲等状态。

如果大量时间在on-CPU上,对CPU剖析能够迅速定位问题原因。

如果大量时间处于off-CPU状态,定位问题就会变得复杂费时。

  举例说明

查看系统cpu使用情况:

top

查看所有cpu核信息:

mpstat -P ALL 1

查看cpu使用情况及平均负载:

vmstat 1

某个进程cpu的统计信息:

pidstat -u 1 -p pid

跟踪进程内部函数级cpu使用情况:

perf top -p pid -e cpu-clock

  MEM

内存是为提高效率,实际分析问题的时候,内存出现问题可能不只是影响性能,而是影响服务或者引起其他的问题。

对于内存的一些概念需要清楚:

主存

缓存

虚拟内存

地址空间

OOM

LINUX内核级SLUB分配器

举例说明

查看系统内存使用情况:

free -m

虚拟内存统计信息:

vmstat 1

查看系统内存情况:

top

获取内存1s采集周期统计信息:

pidstat -p pid -r 1

查看进程的内存映像信息:

pmap -d pid

检测程序内存问题:

valgrind --tool=memcheck --leak-check=full --log-file=./log.txt ./程序名

DISK I/O

在SSD未成为主流之前,磁盘基本都是机械设备,通常是计算机最慢的子系统,也是容易出现性能瓶颈的设备,因为访问磁盘要涉及到机械操作,访问硬盘和访问内存之间的速度差别是以数量级来计算的。

同样对磁盘的一些概念需要理解:

  文件系统

VFS

文件系统缓存

页缓存page cache

缓冲区高速缓存buffer cache

目录缓存

inode

举例说明

查看系统io信息:

iotop

统计io详细信息:

iostat -d -x -k 1 10

查看进程级io的信息:

pidstat -d 1 -p pid

查看系统io请求:

perf record -e block:block_rq_issue -ag

perf report

NETWORK

网络监测是Linux子系统里面最复杂的,有太多太多的原因会引起系统问题,常见的如:延迟、阻塞、冲突、丢包等。而且连接服务器的路由器、交换机、无线设备都可能影响网络,所以很难判断是因为Linux系统网络问题还是其它设备的问题。

  举例说明

显示网络统计信息:

netstat -s

显示当前UDP连接状况:

netstat -nu

显示UDP端口号的使用情况:

netstat -apu

显示TCP连接:

ss -t -a

显示sockets摘要信息:

ss -s

显示所有udp sockets:

ss -u -a

显示tcp,etcp状态:

sar -n TCP,ETCP 1

查看网络IO:

sar -n DEV 1

抓包(包为单位输出):

tcpdump -i eth1 host 192.168.1.1 and port 80

抓包(流为单位显示数据内容):

tcpflow -cp host 192.168.1.1

以上就是关于Linux如何排查思路问题的全部内容,想了解更多关于Linux的信息,请继续关注中培教育。

标签: Linux IT运维

预约领优惠