我的一台服务器随机地发热严重。上面运行着几个应用程序。有什么方法可以跟踪哪个应用程序产生更多热量或消耗更多 CPU 周期吗?
答案1
在 unix 世界中,通常可以使用 top 或 sar 之类的工具来确定哪些进程消耗的 CPU 最多。这将很好地指示出哪个进程消耗的 CPU 最多且产生的热量最多。
您还可以考虑启用流程会计准确了解哪些进程在一段时间内占用了最多的 CPU。这比您使用 top 看到的瞬时快照更有用。
另一个有趣的想法是设置lm_传感器因此您可以直接查询系统 CPU 温度。如果温度过高,您可以自动收集进程快照,并很好地了解哪些进程正在生成所有工作。
最后,你应该考虑这样一个事实:除非出现严重问题,否则现代服务器不会过热。我几乎可以保证你有一个冷却问题。要么是你的风扇不工作,要么是灰尘堆积,要么是通风口堵塞等。如果空气正常流过你的服务器,它几乎不可能过热。
答案2
假设它是 Linux,top 将为您提供进程的 wil 和它们各自消耗的 CPU 时间的百分比。
在 Windows 上,任务管理器可以做同样的事情。