笔记:常用命令,调试,网络监测,端口监测
2023-06-13 09:17:23 时间
前言
前几个月换了一个新工作,Windows端完全转入了Linux服务器端,语言也彻底变成了C,偶尔夹杂着C++。对于我来说,之前的Vxworks,Qt,VS之类的IDE之下的调试定位也完全都没用了,最近一直在做提测项目,对问题定位,查找问题也有了一定的了解。 在这简单说一下,最近的定位调试命令。
端口分析命令
lsof -i:PortID //查看端口使用情况,被那个进程占用,占用协议,是否有等待,来判断端口是否阻塞,等等
lsof -p PID //查看PID进程进行的一些操作,查看是否有违规的,死锁,等等其他违法操作。也可以用来查看是否有句柄泄露等问题,看句柄数量即可。
CPU占用率过高,进程死循环或者死锁问题
top //不复述了,可以查看虚拟内存,实际使用内存,CPU占用率,内存占用率等,如果看到CPU单核占用率接近100%,也可以很明确断定是程序异常死循环问题导致。
top -H -p PID //查看某一个进程下的所有子线程,查看每个子线程的这个属性,如果有某一个或者多个子线程CPU占用率过高,着重分析
pstack pid >> pid.txt //将pid栈重定向到pid.txt,拿到txt后分析,死锁原因
如果进程过多,可以考虑写一个简单脚本来操作。
pmap -p <pid> //查看运行中动态链接库
死锁问题定位
在运行进程为多线程情况下,定位死锁问题。
gdb -p pid //挂载Gdb调试
attach -p //依附于某一个进程
thread apply all bt //查看所有线程栈信息
thread id //转到某一个线程
f id //查看线程某一步骤的详细信息
p lock //打印锁信息 owner 即可看到锁被哪一个进程占用,定位死锁信息
网络问题查看
iftop -p //查看当前服务器下所有网络端口流量情况
iftop -p eht_name //查看指定网口网络流量情况
iperf3 -s -i 1 -d //客户端
iperf3 -c service.ip -i -1 -t 20 -d //服务端 网络流量交互情况,延时1S,20个包
其他命令
ps -ef
ps -T -p pid
ps -ef |grep
tail -f "file_name" |grep
df -h
df -H
ll --full-time //显示全部时间
grep -r "str" find-path //查询文件内容分
相关文章
- A_A010_01 常用串口调试助手安装使用
- 玩转 Chrome DevTools,定制自己的调试工具
- 在当前浏览器中调试自动化脚本
- 谷歌浏览器F12调试页面F5刷新报“未连接到互联网”
- xcode通过网络进行真机调试
- 【微信小程序】微信开发者工具调试PC端小程序报错wx.getUserProfile is not a function解决方案
- 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
- 调试深入探索MySQL JDBC源码调试之旅(mysqljdbc源码)
- Linux调试:捕获并排除异常(linux捕获异常)
- 技术探索Linux系统内核的调试精髓(linux系统内核的调试)
- 深入Linux网络调试利器:洞悉网络秘密(linux网络调试)
- 使用Linux WANEM测试和调试网络性能(linuxwanem)
- 提高效率!MySQL调试触发器技巧分享(mysql调试触发器)
- Linux网络调试助手:解决网络问题神器(linux网络调试助手)
- MySQL调试技巧解读Debug信息(mysql 中debug)
- 调试MySQL时遇到的困难CMD执行连接失败(cmd 连不上mysql)