[Linux] 排查问题指令top/ps/netstat

本文介绍了在Linux环境下通过netstat查看端口对应进程,以及如何使用top和ps检查CPU占用高的进程。还提及了如何通过gprof进行性能分析,解决程序中的性能瓶颈问题,如compute函数耗时和调用关系分析。
摘要由CSDN通过智能技术生成

在Linux下查看某个端口运行的指令

1. 首先通过netstat来查看端口对应的进程号

比如抓取端口53这个DNS服务的进程

netstat -tulnp | grep '53'

可以看到53这个端口号对应的pid是720

2. 通过ps指令来对进程号执行的命令查询

ps aux | grep 720

可以看到pid为720这个进程对应的执行命令为 /lib/systemd/systemd-resolved

所以得出:53端口号所执行的命令为/lib/systemd/systemd-resolved

在Linux下如何排除CPU占用过高的进程

通过top指令查看cpu的占用情况

结束进程的指令 kill -SIGTERM <PID> (进程间通信之一 信号)

如果是自己写的程序cpu占用特别高,进行优化

通过性能分析工具进行分析,如gprof

进行代码审查:无限循环(栈),频繁内存操作

并行操作;减少I/O操作;死锁问题;内存管理(线程池)

实际使用gprof进行排查自己程序的问题

1. 编译程序进行性能分析,加上-pg开启性能分析

gcc -pg -o example example.c

2. 运行程序,会生成对应的gmon.out分析数据文件

./example

3. 使用gprof进行性能分析

生成一个名为 analysis.txt 的文本文件,其中包含了性能分析报告

gprof example gmon.out > analysis.txt

对 analysis.txt文件进行分析

flat profile 和 call graph两个部分

flat profile是每个函数所消耗的时间

可以看出compute函数占用大部分时间

call graph是函数之间的调用关系及时间开销

如果cpu100%进行排查

Linux下通过三个指令可以帮助查找问题top, ps, netstat

简单介绍,top是看cpu和内存使用情况,ps看当前进程,netstat看端口监听情况

top指令

内存,cpu使用率高的进程,用来监控系统资源和排查资源瓶颈

P:按 CPU 使用率排序;M:按内存使用量排序

ps指令

查看进程的运行情况,和进程的PID,运行时间和占用的虚拟内存

netstat命令

用来查看网络连接情况,端口占用情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值