互联网服务Linux

大家在linux系统运维时排查问题时,一般的分析思路有哪些呢?

大家在排查问题时一般的分析思路有哪些呢?讲解案例前可以先聊聊常见的分析思路和小技巧!

参与33

4同行回答

zhanxuechaozhanxuechao咨询专家数字研究院
1.整体情况top/htop/atop 命令查看进程/线程、CPU、内存使用情况,CPU使用情 况;dstat 2 查看CPU、磁盘IO、网络IO、换页、中断、切换,系统I/O状态;vmstat 2 查看内存使用情况,内存状态;iostat -d -x 2 查看所有磁盘的IO情况,系统I/O状态;iotop 查看IO靠前的进程,系统的I/O状态;per...显示全部

1.整体情况

  • top/htop/atop 命令查看进程/线程、CPU、内存使用情况,CPU使用情 况;
  • dstat 2 查看CPU、磁盘IO、网络IO、换页、中断、切换,系统I/O状态;
  • vmstat 2 查看内存使用情况,内存状态;
  • iostat -d -x 2 查看所有磁盘的IO情况,系统I/O状态;
  • iotop 查看IO靠前的进程,系统的I/O状态;
  • perf top 查看占用CPU最多的函数,CPU使用情况;
  • perf record -ag -- sleep 15 perf report 查看CPU事件占比,调用 栈,CPU使用情况;
  • sar -n DEV 2 查看网卡的吞吐,网卡状态;
  • /usr/share/bcc/tools/filetop -C 查看每个文件的读写情况,系统 的I/O状态; /usr/share/bcc/tools/opensnoop 显示正在被打开的文件,系统的I/O状 态;
  • mpstat -P ALL 1 单核CPU是否被打爆;
  • ps aux --sort=-%cpu 按CPU使用率排序,找出CPU消耗最多进程;
  • ps -eo pid,comm,rss | awk '{m=$3/1e6;s["*"]+=m;s[$2]+=m} END{for (n in s) printf"%10.3f GB %s\n",s[n],n}' | sort -nr | head -20 统 计前20内存占用;
  • awk 'NF>3{s[""]+=s[$1]=$3$4/1e6} END{for (n in s) printf"%10.1f MB %s\n",s[n],n}' /proc/slabinfo | sort -nr | head -20 统计内核 前20slab的占用;

2.进程分析,进程占用的资源

  • pidstat 2 -p 进程号,查看可疑进程CPU使用率变化情况;
  • pidstat -w -p 进程号 ,查看可疑进程的上下文切换情况;
  • pidstat -d -p 进程号 ,查看可疑进程的IO情况;
  • lsof -p 进程号,查看进程打开的文件;
  • strace -f -T -tt -p 进程号,显示进程发起的系统调用;

3.协议栈分析,连接/协议栈状态

  • ethtool -S 查看网卡硬件情况;
  • cat /proc/net/softnet_stat/ifconfig eth1 查看网卡驱动情况;
  • netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n 查看连接 状态分布;
  • ss -ntp 或者 netstat -ntp 查看连接队列;
  • netstat -s 查看协议栈情况;

4.方法论

  • RED方法:监控服务的请求数(Rate)、错误数(Errors)、响应时间(Duration)。Weave Cloud在监 控微服务性能时提出的思路。
  • USE方法:监控系统资源的使用率(Utilization)、饱和度(Saturation)、错误数(Errors)

附件:

附件图标Linux性能问题分析流程与性能优化思路.pdf (2.8 MB)

收起
IT咨询服务 · 2023-02-24
浏览1234
zhaoxiaoyong081zhaoxiaoyong081资深工程师平安科技
1、观察现象:首先需要了解问题的现象和表现形式,比如服务器出现宕机、应用程序出现异常等,需要通过观察现象了解问题的大体情况。2、收集信息:收集系统和应用程序的相关信息,比如系统日志、应用程序日志、进程信息、网络连接情况等。可以通过各种命令(比如top、ps、netstat等)和...显示全部

1、观察现象:首先需要了解问题的现象和表现形式,比如服务器出现宕机、应用程序出现异常等,需要通过观察现象了解问题的大体情况。

2、收集信息:收集系统和应用程序的相关信息,比如系统日志、应用程序日志、进程信息、网络连接情况等。可以通过各种命令(比如top、ps、netstat等)和工具(比如syslog、dmesg、tcpdump等)来获取相关信息。

3、确定问题范围:根据收集的信息,确定问题的范围,比如是操作系统问题、应用程序问题、网络问题等,缩小问题的范围可以更快地定位问题。

4、分析问题原因:根据收集到的信息和确定的问题范围,分析问题的原因,可能是系统配置问题、软件漏洞、硬件故障等。

5、解决问题:找到问题的原因后,可以采取相应的措施来解决问题,比如修改配置、更新软件、修复硬件等。

6、预防问题:在解决问题的同时,也要思考如何预防类似问题的发生,比如增强系统的安全性、优化系统性能等。

主机层面的问题,可以使用工具排查:

CPU 相关问题,可以使用 top、vmstat、pidstat、ps 等工具排查;

内存相关问题,可以使用 free、top、ps、vmstat、cachestat、sar 等工具排查;

IO 相关问题,可以使用 lsof、iostat、pidstat、sar、iotop、df、du 等工具排查;

网络相关问题,可以使用 ifconfig、ip、nslookup、dig、ping、tcpdump、iptables 等工具排查。

分析问题的套路。

第一,分析问题一定是需要依据的,靠猜是猜不出来的,需要提前做好基础监控的建设。监控的话,需要在基础运维层、应用层、业务层等多个层次进行。定位问题的时候,我们同样需要参照多个监控层的指标表现综合分析。

第二,定位问题要先对原因进行大致分类,是CPU 相关问题还是内存相关问题、仅仅是接口的问题还是整个应用的问题,然后再去进一步细化探索,一定是从大到小来思考问题;在追查问题遇到瓶颈的时候,我们可以先退出细节,再从大的方面捋一下涉及的点,再重新来看问题。

第三,分析问题很多时候靠的是经验,很难找到完整的方法论。遇到重大问题的时候,往往也需要根据直觉来第一时间找到最有可能的点,这里甚至有运气成分。建议你在平时解决问题的时候多思考、多总结,提炼出更多自己分析问题的套路和拿手工具。

最后,值得一提的是,定位到问题原因后,我们要做好记录和复盘。每一次故障和问题都是宝贵的资源,复盘不仅仅是记录问题,更重要的是改进。复盘时,我们需要做到以下四点:记录完整的时间线、处理措施、上报流程等信息;分析问题的根本原因;给出短、中、长期改进方案,包括但不限于代码改动、流程,并记录跟踪每一个方案进行闭环;定期组织团队回顾过去的故障。

收起
保险 · 2023-03-03
浏览1020
匿名用户匿名用户
在Linux系统运维中,排查问题的分析思路通常如下:确认问题表现:先明确问题的具体表现,如何出现的,何时出现的等等。这有助于缩小问题排查范围。查看系统日志:系统日志记录了系统运行中的各种信息,包括错误、警告等,可以帮助找到问题的原因。检查系统资源:查看系统资源使用情况,如内...显示全部

在Linux系统运维中,排查问题的分析思路通常如下:

  1. 确认问题表现:先明确问题的具体表现,如何出现的,何时出现的等等。这有助于缩小问题排查范围。
  2. 查看系统日志:系统日志记录了系统运行中的各种信息,包括错误、警告等,可以帮助找到问题的原因。
  3. 检查系统资源:查看系统资源使用情况,如内存、CPU、磁盘等,是否达到了系统的限制或者出现了异常。
  4. 检查配置文件:检查系统配置文件,是否有错误或者不合理的设置。
  5. 进行测试和验证:进行一系列测试和验证,包括网络连接、服务运行情况等等。
  6. 查找相关文档和资料:查找相关的文档和资料,了解相关的技术和解决方案,寻找其他可能的解决方案。
  7. 进行复盘:在问题得到解决后,进行复盘总结,记录下问题的原因和解决方法,为以后的排查问题提供参考。

以上是一般的排查思路,具体的操作还需要根据实际情况来确定。

by chatgpt

收起
IT其它 · 2023-02-24
浏览1145
匿名用户匿名用户
1、收集系统信息:首先要收集系统的基本信息,包括系统版本、硬件配置、系统日志等,以便于后续的分析。2、分析系统日志:通过分析系统日志,可以找出系统出现问题的原因,从而找出解决问题的方法。3、检查系统资源:检查系统的CPU、内存、磁盘空间等资源,以确定是否存在资源不足的情况...显示全部

1、收集系统信息:首先要收集系统的基本信息,包括系统版本、硬件配置、系统日志等,以便于后续的分析。

2、分析系统日志:通过分析系统日志,可以找出系统出现问题的原因,从而找出解决问题的方法。

3、检查系统资源:检查系统的CPU、内存、磁盘空间等资源,以确定是否存在资源不足的情况。

4、检查系统进程:检查系统进程,以确定是否存在异常的进程,以及进程是否正常运行。

5、检查系统服务:检查系统服务,以确定是否存在异常的服务,以及服务是否正常运行。

6、检查系统配置:检查系统配置,以确定是否存在配置错误,以及配置是否正确。

7、检查系统网络:检查系统网络,以确定是否存在网络问题,以及网络是否正常运行。

8、检查系统安全:检查系统安全,以确定是否存在安全漏洞,以及系统是否安全。

收起
事业单位 · 2023-02-24
浏览1232

ChatGPT 回答

在排查问题时,一般的分析思路可以概括为以下几个步骤:

  1. 确认问题现象:首先要明确问题的具体表现,包括出现的错误信息、故障现象等,这有助于缩小排查范围。
  2. 收集信息:收集相关的日志、配置文件、系统状态等信息,以便更好地理解问题的背景和原因。
  3. 分析信息:对收集到的信息进行分析,找出可能的问题原因,可以使用一些工具如grep、awk、sed等。
  4. 验证假设:根据分析结果,提出可能的问题原因,并进行验证,以确定问题的根本原因。
  5. 解决问题:根据验证结果,采取相应的措施解决问题。

在实际操作中,还有一些小技巧可以帮助我们更快地排查问题,例如:

  1. 使用命令行工具:命令行工具可以快速获取系统状态、日志信息等,例如top、ps、netstat等。
  2. 使用日志分析工具:日志分析工具可以帮助我们更好地理解问题的背景和原因,例如ELK、Graylog等。
  3. 使用监控工具:监控工具可以实时监控系统状态、服务运行情况等,例如Zabbix、Nagios等。
  4. 使用版本控制工具:版本控制工具可以帮助我们快速回滚或恢复系统状态,例如Git、SVN等。

例如,当我们遇到Linux服务器上的网络连接问题时,可以按照以上思路进行排查。首先确认问题现象,例如无法连接某个服务或者网络延迟较高等;然后收集相关信息,例如网络拓扑图、路由表、网络接口状态等;接着分析信息,例如使用ping、traceroute等命令检查网络连通性;验证假设,例如检查防火墙规则、网络配置等;最后解决问题,例如修改防火墙规则、重新配置网络接口等。

提问者

风起云涌100
系统工程师成方金信
擅长领域: 服务器Linux数据库

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-02-23
  • 关注会员:6 人
  • 问题浏览:3261
  • 最近回答:2023-03-03
  • X社区推广