如何查看最近的系统活动以找出导致速度大幅下降的原因?

如何查看最近的系统活动以找出导致速度大幅下降的原因?

我正在 Lenovo e420 上运行带有 OpenBox 的 CrunchBang Waldorf。几个月前我从 Windows 切换过来,从那时起就没有出现任何性能问题。一切都运行得又好又快。

今天,我正在尝试为我的工作设置尝试一些新选项。我安装了 XFCE,从 SLiM 登录并进行了一些尝试。返回 OpenBox,并使用新的终端仿真器 (rxvt-Unicode)。我尝试使用命令行选项来看看我喜欢什么视觉外观。

在这样做一段时间后的某个时候,终端窗口开始缓慢加载。我使用 ARandR 切换到双屏设置,此时系统速度慢了几分钟。这以前从未发生过。

我已将我的 rxvt 窗口配置为使用 Fish shell 打开,并且还使用了透明效果,因此我认为有几个因素中的任何一个都可能导致性能缓慢:透明度、在我不知情的情况下安装的新 XFCE、Fish 等(但坦率地说,这些程序都不应该导致这种速度减慢......对吧?)

长话短说,如果将来发生这种情况,我将如何追踪它?有小费吗?我希望有一些日志文件可以告诉我在过去三十分钟内什么时间运行了哪些后台进程。

答案1

有多种工具可以检查哪些进程正在使用多少 CPU 和内存。

在大多数情况下,当您的系统变慢时,要么是某个进程占用了所有 CPU,要么是您的内存已满。

在所有系统上,您应该找到这两个工具pstop它们都是显示所有进程列表的命令行工具。

top是一个小型交互式程序,按排序顺序显示进程,并且每两秒刷新一次。您可以top通过按退出,并通过按q获得其余命令的帮助。top?

更高级的tophtop您必须安装。它的交互性更强top,颜色更多,并且使用与top.

有时您的系统可能会非常慢,甚至top难以使用htop。然后你就可以使用ps.当您不带任何参数执行它时,它会提供您通过控制台启动的进程,这在桌面上不是很有用。

通常我跑步

ps -aux

这将为您提供系统上运行的所有进程的列表。这-a意味着显示所有用户的所有进程,这-x意味着显示所有进程,甚至那些未在常规控制台上启动的进程。总之总是在桌面上使用ps ax

更改-u了格式,以便ps显示 CPU 和内存使用情况等等。

要对您的输出进行排序,ps请使用-m, 和-r。 按内存消耗和CPU 消耗-m排序。-r我通常将这些与head -$N仅给出第一$N行的命令结合起来,如下所示

ps -raux | head -11

当您想要每 2 秒获取前 5 个内存用户时,您可以使用以下命令在 Linux 上执行此watch操作

watch "ps -maux | head -6"

您可以watch通过按退出Ctrl+c.

当您想知道总共有多少内存以及所有进程使用了​​多少内存时,可以使用该free命令。它显示 RAM 和交换分区的已用内存、可用内存、缓冲区和缓存内存量。如果交换区中使用的内存量过高,则可以很好地指示出现的问题。

对于所有这些命令,都有手册页,您可以通过键入并按 q 退出来获取这些手册页。

man $COMMAND

例如

man ps

相关内容