linux怎么看进程:终端输入对应指令可查看系统所有运行进程
上次公司测试服务器突然卡死,页面加载转圈、接口全部超时,紧急排查故障的时候,才实打实吃透linux怎么看进程的实操办法,没有虚的理论,全是现场救急能用的操作,踩过的错、摸透的实用指令,都实打实记着。
最开始慌里慌张,只记得网上随便刷到的ps指令,直接敲了ps回车,屏幕里跳出寥寥几行进程信息,压根看不出问题在哪,当时完全懵了,以为是指令记错了,反复敲了三四遍,结果内容一模一样,后来才反应过来,单纯ps只能查看当前终端的前台进程,服务器后台跑的卡死进程根本显示不出来,白忙活半天浪费了不少排查时间,那会儿急得手心都冒汗,总觉得简单的查进程操作怎么完全不管用。
这坑踩的属实没必要。
折腾好久才搞明白,真正排查服务器故障要用ps -ef,这个指令能列出系统所有正在运行的进程,包括后台常驻、休眠、异常卡死的所有程序,输出的内容里有PID、进程所属用户、父进程ID和运行状态,是日常查进程最基础也最实用的指令。当时敲完这条指令,瞬间刷屏一堆进程数据,密密麻麻的文字堆在终端,肉眼根本找不到占用资源过高的异常进程,看着满屏字符只觉得头大,完全不知道从哪里下手筛选问题。
没办法只能继续摸索,临时想起运维前辈随口提过的筛选方法,直接搭配grep指令精准过滤目标进程,比如排查Java服务卡死,就输入ps -ef | grep java,瞬间就能筛出所有Java相关的运行进程,不用逐行翻看海量数据,那次就是靠这个操作,几秒就找到了那个无限循环、占用百分百CPU的异常进程,不用再对着满屏代码式的进程信息发呆,效率直接拉满,原本十分钟都找不到的问题,几十秒就定位完毕。
很多人都忽略top指令。
top是动态实时查看进程的核心操作,和ps静态查看不一样,它会实时刷新进程的CPU、内存占用率,还能直接看到进程的运行状态,是排查服务器卡顿、资源占用过高的首选方式。当时用top打开实时面板后,一眼就看到排名第一的进程霸占了全部CPU资源,不用筛选、不用翻找,异常进程直接置顶展示,能清晰看到每个进程的资源消耗变化,比静态查询的ps指令更适合突发故障排查。
后来随手试了htop,界面会更直观,色彩区分各类数据,操作也更顺手,就是大部分基础linux服务器没有预装,需要手动安装,紧急排查故障的时候,不如top随开随用,所以日常刚需场景里,top的实用性还是更高的,没必要为了美观多花时间装插件。
那天处理完故障,关掉终端的时候,电脑风扇还在嗡嗡的转着。