- ps 查看进程
这个应该是最常用的了,可以查询当前系统中的进程状态、CPU/MEM使用状态,有几个不常用的参数需要注意下就是etime(程序运行时间),stime(启动时间),nlwp - kill 杀掉进程
比较常用的信号量是9和3,kill -9是强制结束进程,这个要慎用,可能会导致数据丢失。kill -3 这个一般对java程序来说很有用,执行之后可以在user.dir目录下生成thread dump文件来,可用于分析进程状态,用作性能瓶颈排查。 - strace 追踪进程
用它来启动程序可在输出那个进程所调用的api及操作的文件,非常适合排查程序启动失败的原因。当然也可用于追踪正在运行中的程序,非常强大。 - lsof 查看文件句柄
可用于查看某个进程正在使用哪些文件,也可以配合grep查看某个文件正在被谁使用着。还有个比较方便的功能就是查看进程开启了哪些端口,或者哪些端口被谁调用着。默认输出的端口和连接的主机信息被解析成了名称,可通过-P -n来直接显示ip和端口号。显示端口的对UDP支持的不好 - netstat 查看网络连接状态
netstat -anp 可查系统中的网络连接状态以及对应的进程 - ifconfig 查看网卡信息
这个很少注意,但挺重要就是查看是否有丢包的现象,配合脚本可查看丢包的严重情况。 - tcpdump 抓包工具
非常好用的抓包工具,比较常用的就是抓某个端口的包 tcpdump -i 网卡名 port 端口号 -s 0 -A - iostat 查看系统IO信息
可实时查看系统分区层面的io信息,简单看系统的IO是否已经饱和的命令为iostat -mx 2 100,查看%util ,还可配合hdparm -t看 - iotop 查看进程IO
用python写的非常不错的实时查看进程IO的工具。 - wget 查看网页连通及下载文件
可用于检测不同WEB服务器间的连接访问情况,也可用curl -v 更强大些。
↧
Linux程序诊断常用的一些命令
↧