如何从 Linux 终端确定实时系统性能参数,例如内存使用情况、CPU 使用情况、磁盘使用情况。我问过谷歌,但没有找到简洁的建议。我正在尝试将自己与发行版捆绑的实用程序分开,并从终端执行此操作
答案1
使用该命令top
显示活动进程的实时信息。默认情况下top
以千字节为单位显示单位,但您可以通过使用ShiftE更改当前进程列表上方的摘要信息的单位以及e更改当前正在运行的进程列表的单位来更改此设置。
按Shiftm按内存对列表进行排序,或者您可以按Shiftf打开字段管理窗口,您可以在其中选择使用哪个列标题对s列表进行降序排序 ( )
至于磁盘使用情况,您可以使用命令df
和du
:
df
显示包含每个文件名参数的文件系统(例如 ntfs、ext4、fat32)上的可用空间。例如,如果您想查看外部硬盘驱动器上的可用空间,请使用该命令df -h /Path/to/external_harddrive
,该命令将输出安装在目录上的外部驱动器的文件系统上的可用空间/Path/to/external_harddrive
。如果未指定文件,df
则将显示所有已安装文件系统上的可用空间du
将显示指定文件的磁盘使用情况。当一个目录被指定为 的参数时du
,du
将递归地显示该目录的磁盘使用情况,这意味着du
将以深度优先遍历的方式一次又一次地显示磁盘使用情况(在目录本身之前处理每个目录的内容),直到显示出该目录的磁盘使用情况。指定目录中所有文件或目录的磁盘使用情况。--max-depth=LEVEL
使用该选项仅显示指定级别或作为参数du
指定的目录之下的所有文件或目录的磁盘使用情况。du
例如,du -h --max-depth=1 ~/Documents
将打印目录下 1 级或以下级别的所有文件和目录的大小Documents
(1 级是目录树以下的最低级别)。如果您不想显示所有文件和目录的大小,请使用-s
(摘要)选项仅显示目录的总大小,而不显示目录内容Documents
的单独大小Document
笔记:短选项-h
(--human-readable
长格式)意味着人类可读,这使得输出du
或df
人类大脑更容易处理成有意义的东西
答案2
许多命令你想要“做一件事,并把它做好”。一方面,这意味着它们看起来都有点不同。从好的方面来说,这可以使其更易于管理 - 一次学习一件事:-)。我将尝试直接而简洁地回答。你问的是前三名:
df -h
- 文件系统使用级别。这包括内存文件系统 (tmpfs
)。free -h
- 剩余的“可用”内存,以及使用了多少交换空间。其他字段可能与您的想法不同,抱歉!见下文。top
- 显示按 CPU 使用情况排序的进程。- 按q退出。
- 还显示总体 CPU 使用情况,分为几种不同的类型
- 还显示了一些但不是全部的输出
free
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
对某些类型的程序有误导性,包括firefox
和google-chrome
。这是因为top
在共享该内存的每个进程中都会多次计算共享内存:-)。
sudo smem -t
在列中显示更好的内存使用数字PSS
。
sudo smem -t -P firefox
是一个非常简洁的命令。它增加了我最喜欢的浏览器占用的内存量。
使用sudo
此处可以smem
处理不属于您的登录用户的正在运行的进程。如果您不需要它,则可以不运行它sudo
。
宣传atop
在顶上就像一个瑞士军用电锯 多功能工具。除了磁盘空间使用情况之外,它可以显示上述大部分信息。
例如:sudo atop -R
启用PSIZE
column,相当于smem
column 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目录,你会发现更多。