如何记录 Ubuntu 上的 cpu 和 ram 使用情况?

Vam*_*ox2 2 software-recommendation

我很好奇是否有任何程序可以记录您的 ram 和 cpu 使用历史记录。我问这个问题的原因是我想运行某些应用程序和游戏,看看它们在一段时间内使用了多少CPU。

Win*_*nix 5

您可以使用内置实用程序vmstat。您可以使用 获得技术概述man vmstat。需要注意的是,该软件的默认参数不太适合具有充足 RAM 的现代计算机。例如:

\n
$ vmstat \nprocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st\n 3  0      0 578120 827392 3317480    0    0    14    65  250  149 34 17 49  0  0\n
Run Code Online (Sandbox Code Playgroud)\n

RAM 以字节为单位列出,导致详细信息行与列标题不对齐。要规避vmstat以兆字节显示的指令:

\n
$ vmstat -S M\nprocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st\n 1  0      0    576    808   3236    0    0    14    65  250  149 34 17 49  0  0\n
Run Code Online (Sandbox Code Playgroud)\n

以下文档来自:Use vmstat to Monitor System Performance

\n

什么是 vmstat?

\n

vmstat是一个实时收集和报告有关系统\xe2\x80\x99s 内存、交换和处理器资源利用率数据的工具。它可用于确定性能的根本原因以及与内存使用相关的问题。

\n

如何使用 vmstat

\n

使用vmstat命令来运行程序。考虑以下输出:

\n
$ vmstat\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0   3532 148760  50700 1397880    0    0     1     2    6    6  3  1 97  0\n
Run Code Online (Sandbox Code Playgroud)\n

此数据提供自上次重新引导以来虚拟内存和系统使用情况的平均视图。通常,使用以下形式的命令:

\n
vmstat [interval] [count]\n
Run Code Online (Sandbox Code Playgroud)\n

在此示例中,第一行数据提供自上次启动时间以来的平均值。后续报告,直到[count]达到为止,每秒钟报告系统当前状态的数据[interval]

\n

vmstat 命令

\n

vmstat通常以 1 秒的间隔运行一小段时间,具体取决于管理员尝试诊断的问题类型。以下示例说明了一 (1) 秒的间隔二十 (20) 次:

\n
$ vmstat 1 20\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0   3996 168488  57100 1368636    0    0     1     2    0    0  3  1 97  0\n 0  0   3996 168604  57100 1368728    0    0     0     0  144  303  1  0 100  0\n 0  0   3996 168604  57100 1368984    0    0   256     0  162  464  1  0 99  0\n 0  0   3996 168604  57100 1368972    0    0     0     0  239  638  3  0 97  0\n 0  0   3996 168604  57100 1368952    0    0     0     0  242  529  1  1 99  0\n 0  0   3996 168604  57100 1368952    0    0     0     0  148  430  1  0 99  0\n 1  0   3996 168604  57100 1368952    0    0     0     0  222  451  6  0 94  0\n 0  0   3996 168604  57100 1368952    0    0     0     0  141  270  2  0 98  0\n 0  0   3996 168604  57100 1368952    0    0     0     0  166  450  1  0 99  0\n 0  0   3996 168604  57100 1368952    0    0     0     0  133  410  0  0 99  0\n 0  0   3996 168604  57100 1368952    0    0     0     0  196  398  0  0 99  0\n 0  0   3996 168604  57100 1368952    0    0     0     0  187  510  1  0 100  0\n 0  0   3996 168604  57108 1368952    0    0     0    16  263  677  2  0 97  1\n 0  0   3996 168604  57108 1368952    0    0     0     0  205  431  1  0 98  0\n 0  0   3996 168604  57108 1368964    0    0     0     0  179  467  1  0 98  0\n 0  0   3996 168604  57108 1368964    0    0     0     0  169  446  2  0 98  0\n 0  0   3996 168604  57108 1368964    0    0     0     0  202  365  2  0 98  0\n 0  0   3996 168604  57108 1369208    0    0   256     0  226  458  2  1 96  0\n 0  0   3996 168604  57108 1369208    0    0     0    40  202  501  2  0 98  0\n 0  0   3996 168604  57108 1369220    0    0     0     0  154  295  2  0 98  0\n
Run Code Online (Sandbox Code Playgroud)\n

vmstat如果您想要实时报告系统\xe2\x80\x99s 状态,则可以在不使用 [count] 参数的情况下运行。在这些情况下,30 秒或更长的间隔可能是理想的。

\n
$ vmstat 30\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0   3996 167868  57108 1369788    0    0     1     2    0    0  3  1 97  0\n 0  0   3996 167860  57108 1369920    0    0     0     0  274  604  2  0 98  0\n 0  0   3996 167860  57108 1369928    0    0     0     0  196  481  1  0 98  0\n 0  0   3996 167860  57116 1369908    0    0     0    12  164  414  1  1 97  1\n 0  0   3996 167860  57116 1369892    0    0     0     0  168  320  0  0 100  0\n 0  0   3996 167860  57116 1369884    0    0     0     0  142  398  1  0 99  0\n 0  0   3996 167860  57116 1369880    0    0     0     0  175  450  1  1 98  0\n^C\n
Run Code Online (Sandbox Code Playgroud)\n

您可以选择将此输出定向到文件进行日志记录,而不是让它在后台终端会话中无休止地运行。要停止 vmstat 进程,请如上所述发送中断字符(^C 或 Control+C)。

\n

在默认操作中,vmstat 显示以千字节为单位的内存统计信息。vmstat 认为 1 KB 等于 1024 字节。要生成 vmstat 报告(其中 1 KB 等于 1000 字节),请使用以下形式:

\n
$ vmstat -S k 1 10\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0   4091 150192  58982 1422041    0    0     1     2    0    0  3  1 97  0\n 0  0   4091 150183  58982 1422381    0    0   256     0  201  518  1  0 99  0\n 2  0   4091 150183  58982 1422356    0    0     0     0  638 1356  7  1 92  0\n 0  0   4091 150183  58982 1422360    0    0     0     0  859 1087  5  2 93  0\n 0  0   4091 150183  58982 1422331    0    0     0     0  404 1100  2  0 97  0\n 0  0   4091 150183  58982 1422331    0    0     0     0  281  601  2  0 97  0\n 0  0   4091 150183  58982 1422327    0    0     0     0  279  468  3  0 97  0\n 0  0   4091 150183  58982 1422331    0    0     0     0  250  572  3  0 97  0\n 0  0   4091 150183  58990 1422323    0    0     0    16  280  598  4  0 95  1\n 0  0   4091 150183  58998 1422319    0    0     0    52  270  451  3  0 96  1\n
Run Code Online (Sandbox Code Playgroud)\n

vmstat还可以显示内存大小以兆字节为单位的报告。vmstat带有该参数的报告-S m将认为单个兆字节等于 1000 千字节,如下所示:

\n
$ vmstat -S m 1 10\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0      4    169 58   1404    0    0 1     2    0    0  3  1 97  0\n 0  0      4    169 58   1405    0    0 0     0  194  508  1  0 98  0\n 0  0      4    169 58   1405    0    0 0     0  154  443  0  0 99  0\n 0  0      4    169 58   1405    0    0 0     0  192  380  0  0 100  0\n 0  0      4    169 58   1405    0    0 0     0  287  766  3  0 97  0\n 1  0      4    169 58   1405    0    0 0     0  222  583  1  1 99  0\n 0  0      4    169 58   1405    0    0 0    36  166  304  1  0 99  0\n 0  0      4    169 58   1405    0    0 0     0  189  473  1  0 99  0\n 0  0      4    169 58   1405    0    0 0     0  164  430  1  0 99  0\n 0  0      4    169 58   1405    0    0 0     0  186  343  0  0 100  0\n
Run Code Online (Sandbox Code Playgroud)\n

vmstat还可以使用参数显示兆字节,使得单个兆字节等于 1024 KB -S M。考虑以下示例:

\n
$ vmstat -S M 1 10\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0      3    162 55   1339    0    0 1     2    0    0  3  1 97  0\n 0  0      3    162 55   1339    0    0 0     0  425  700  1  1 98  0\n 0  0      3    162 55   1339    0    0 0     0  712  997  1  2 97  0\n 0  0      3    162 55   1339    0    0 0    20  479 1079  3  0 96  1\n 0  0      3    162 55   1339    0    0 0     0  264  406  2  0 98  0\n 0  0      3    162 55   1339    0    0 0     0  273  552  3  0 97  0\n 0  0      3    162 55   1339    0    0 0     0  218  467  1  0 99  0\n 0  0      3    162 55   1339    0    0 0     0  250  434  1  0 99  0\n 0  0      3    162 55   1339    0    0 0     0  200  444  2  0 98  0\n 0  0      3    162 55   1339    0    0 0     0  313  771  3  1 96  0\n
Run Code Online (Sandbox Code Playgroud)\n