Linux 中的系统性能命令

Linux 中的系统性能命令

如何从 Linux 终端确定实时系统性能参数,例如内存使用情况、CPU 使用情况、磁盘使用情况。我问过谷歌,但没有找到简洁的建议。我正在尝试将自己与发行版捆绑的实用程序分开,并从终端执行此操作

答案1

使用该命令top显示活动进程的实时信息。默认情况下top以千字节为单位显示单位,但您可以通过使用ShiftE更改当前进程列表上方的摘要信息的单位以及e更改当前正在运行的进程列表的单位来更改此设置。

Shiftm按内存对列表进行排序,或者您可以按Shiftf打开字段管理窗口,您可以在其中选择使用哪个列标题对s列表进行降序排序 ( )

至于磁盘使用情况,您可以使用命令dfdu

  • df显示包含每个文件名参数的文件系统(例如 ntfs、ext4、fat32)上的可用空间。例如,如果您想查看外部硬盘驱动器上的可用空间,请使用该命令df -h /Path/to/external_harddrive,该命令将输出安装在目录上的外部驱动器的文件系统上的可用空间/Path/to/external_harddrive。如果未指定文件,df则将显示所有已安装文件系统上的可用空间
  • du将显示指定文件的磁盘使用情况。当一个目录被指定为 的参数时dudu将递归地显示该目录的磁盘使用情况,这意味着du将以深度优先遍历的方式一次又一次地显示磁盘使用情况(在目录本身之前处理每个目录的内容),直到显示出该目录的磁盘使用情况。指定目录中所有文件或目录的磁盘使用情况。--max-depth=LEVEL使用该选项仅显示指定级别或作为参数du指定的目录之下的所有文件或目录的磁盘使用情况。du例如,du -h --max-depth=1 ~/Documents将打印目录下 1 级或以下级别的所有文件和目录的大小Documents(1 级是目录树以下的最低级别)。如果您不想显示所有文件和目录的大小,请使用-s(摘要)选项仅显示目录的总大小,而不显示目录内容Documents的单独大小Document

笔记:短选项-h--human-readable长格式)意味着人类可读,这使得输出dudf人类大脑更容易处理成有意义的东西

答案2

许多命令你想要“做一件事,并把它做好”。一方面,这意味着它们看起来都有点不同。从好的方面来说,这可以使其更易于管理 - 一次学习一件事:-)。我将尝试直接而简洁地回答。你问的是前三名:

  1. df -h- 文件系统使用级别。这包括内存文件系统 ( tmpfs)。
  2. free -h- 剩余的“可用”内存,以及使用了多少交换空间。其他字段可能与您的想法不同,抱歉!见下文。
  3. top- 显示按 CPU 使用情况排序的进程。

df只需free运行一次,并打印当前结果。如果您想在终端中查看当前结果的“实时”视图,请放在watch命令前面。要停止watch,请按Ctrl+ c

4.你没有提到磁盘活动,即读/写。但在最新版本的 gnome-system-monitor 中,每个进程也显示了这一点。大量的磁盘活动有时会让系统感觉非常慢。要在命令行上查看此信息,请使用sudo iotop

iotop默认情况下通常不安装。如果未安装某个程序,当您尝试运行它时,Linux Mint(和其他发行版)将提示安装它!

理论上,您可能希望查看当前值和之前的历史记录。就像 gnome-system-monitor 中的图表一样。有一个不太常见的命令可以实现此目的。用于vmstat 5查看超过 5 秒的时间间隔:交换和内存的使用情况、交换活动、磁盘活动 ( io) 和 CPU 活动。您可能需要调整终端窗口的大小,使其更宽:-)。

理解Linux内存使用情况

这可能会有点棘手。我偷了下面的引用块linuxatemyram.com

(我认为这是一个很好的例子,使用通用的、单一用途的工具可以帮助你集中学习。当你有一个特定的问题时,它可能已经被记录下来。例如,请参阅手册页man free。或者支持社区可能已经在某处回答了:-)。

A健康的Linux系统内存超过足够的情况下,运行一段时间后,会显示以下预期且无害的行为:

  • free内存接近0
  • used内存接近total

    编辑:这部分已过时:-(。 used不再包含buff/cache。您可以忽略used,因为无论哪种方式,它与其他字段都是多余的!

  • available内存(或“空闲 + 缓冲区/缓存”)有足够的空间(比方说,占总数的 20% 以上)
  • swap used没有改变

警告标志您可能需要调查的真正内存不足的情况:

  • available内存(或“空闲+缓冲区/缓存”)接近于零
  • swap used增加或波动
  • dmesg | grep oom-killer显示 OutOfMemory 杀手的工作过程

每个进程的内存使用情况

每个进程的内存使用情况也可能很棘手! top显示每个进程的内存使用情况。但top对某些类型的程序有误导性,包括firefoxgoogle-chrome。这是因为top在共享该内存的每个进程中都会多次计算共享内存:-)。

sudo smem -t在列中显示更好的内存使用数字PSS

sudo smem -t -P firefox是一个非常简洁的命令。它增加了我最喜欢的浏览器占用的内存量。

使用sudo此处可以smem处理不属于您的登录用户的正在运行的进程。如果您不需要它,则可以不运行它sudo

宣传atop

在顶上就像一个瑞士军用电锯 多功能工具。除了磁盘空间使用情况之外,它可以显示上述大部分信息。

例如:sudo atop -R启用PSIZEcolumn,相当于smemcolumn PSS。按m显示该内存信息。按Shift+m按内存使用情况排序。

一般来说,上半部分atop试图显示最重要的信息并突出潜在的问题。它省略了当前不太重要的值,以充分利用屏幕空间。

答案3

内核将内存/cpu/etc的使用情况写入/proc目录下的文件中。例如,您可以在文件中获取实时内存使用情况/proc/meminfo

[root@localhost ~]# cat /proc/meminfo MemTotal: 131832516 kB MemFree: 79406996 kB MemAvailable: 121444792 kB Buffers: 2112 kB Cached: 41602056 kB SwapCached: 0 kB Active: 30971812 kB Inactive: 18976428 kB Active(anon): 8353396 kB Inactive(anon): 8332 kB Active(file): 22618416 kB Inactive(file): 18968096 kB

像这样,proc/stat文件将为您提供有关 CPU 的大量详细信息。探索/proc目录,你会发现更多。

相关内容