纪实: 定位Linux高CPU占用的进程
不是啥高深的技术. 借此日常记录下自己日常解决问题的思路.
登录日常家用服务器,输入 top 命令, 发现有两个高CPU占用的进程:
很困惑.因为这个服务器主要是日常编码用的.本身又是游戏主力机,不会放需要稳定需要运行的重要服务. 而且即使有, 也不太可能有这么高的内存占用.
首先用 docker ps 排除下是不是有自己疏漏的重要服务:
然后尝试google下,看怎么看 PID对应的细节.Google关键词是 “linux show pid details”:
最终选择使用的是命令: ps -p $PID
我发现必须把终端窗口拉长, 才能看到 CMD 那一列完整的输出:
kyo@kyo-ai ~ » ps -fp 456535
UID PID PPID C STIME TTY TIME CMD
kyo 456535 1 99 1月09 ? 5-15:00:48 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -cp /tmp/cp_9h1303ds4in5kaboxnw4e6bzj.jar study.algorithm.TwoSum
kyo@kyo-ai ~ » ps -fp 1598219
UID PID PPID C STIME TTY TIME CMD
kyo 1598219 1 99 1月09 ? 4-15:45:34 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -cp /tmp/cp_3sqwhzvlv58s9xbj3u092vcub.jar study.algorithm.ThreeSum
好吧. 竟然是我前几天跑的算法 Demo. 有点奇怪, 我明明已经在 VSCode里关闭终端了, 并且最近也关机过好几次. 但是对应的 进程竟然还在.这个现象值得关注下.默认进程应该是不能后台执行的.
回到问题本身, 后续就要研究下怎么kill掉进程了. google关键词: “linux kill pid”.
kill -9 456535
kill -9 1598219
然后执行下 top 命令,发现还有个 高CPU占用的进程.
kyo@kyo-ai ~ » ps -fp 1062
UID PID PPID C STIME TTY TIME CMD
root 1062 1 15 1月09 ? 10:54:45 /usr/sbin/gdm3
去网上搜了下, 果然和我安装的是 Ubuntu 版本是 desktop 版本有关系. 等单词卡复习的间隙, 我可能还是得趁着刚启用这个服务器, 尽快把系统刷回 Ubuntu Server 版本.
其实我本意是想着试着体验下 Ubuntu 的可视化系统的….但是,真的有点不适应… 不能说系统不行, 只能说周边生态,不太给力. 其实最严重的问题,还不是生态, 而是远程桌面, 会受网速限制,导致体验不如本地桌面流畅; 而且 windows 的远程桌面,又有帧率的限制. 最多应该也很难超过60fps. 但是我已经习惯了 100+fps的高刷屏. 没用过高刷屏的人可能不会无法理解高刷屏办公和娱乐时,那种丝滑的感觉. 第一次用高刷屏玩游戏时, 会有一种画面和任务动作变慢的感觉. 而且我还专门检索了下, 人眼本身其实是能分辨 60fps以上的画面的细微差异的.
好吧.先这样吧. 这几天优先复习日语卡片. 有空了,再折腾重新部署 Ubuntu Server 版本的事.