Vam*_*ox2 2 software-recommendation
我很好奇是否有任何程序可以记录您的 ram 和 cpu 使用历史记录。我问这个问题的原因是我想运行某些应用程序和游戏,看看它们在一段时间内使用了多少CPU。
您可以使用内置实用程序vmstat
。您可以使用 获得技术概述man vmstat
。需要注意的是,该软件的默认参数不太适合具有充足 RAM 的现代计算机。例如:
$ 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)\nRAM 以字节为单位列出,导致详细信息行与列标题不对齐。要规避vmstat
以兆字节显示的指令:
$ 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
\nvmstat
是一个实时收集和报告有关系统\xe2\x80\x99s 内存、交换和处理器资源利用率数据的工具。它可用于确定性能的根本原因以及与内存使用相关的问题。
使用vmstat
命令来运行程序。考虑以下输出:
$ 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此数据提供自上次重新引导以来虚拟内存和系统使用情况的平均视图。通常,使用以下形式的命令:
\nvmstat [interval] [count]\n
Run Code Online (Sandbox Code Playgroud)\n在此示例中,第一行数据提供自上次启动时间以来的平均值。后续报告,直到[count]
达到为止,每秒钟报告系统当前状态的数据[interval]
。
vmstat
通常以 1 秒的间隔运行一小段时间,具体取决于管理员尝试诊断的问题类型。以下示例说明了一 (1) 秒的间隔二十 (20) 次:
$ 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)\nvmstat
如果您想要实时报告系统\xe2\x80\x99s 状态,则可以在不使用 [count] 参数的情况下运行。在这些情况下,30 秒或更长的间隔可能是理想的。
$ 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)\nvmstat
还可以显示内存大小以兆字节为单位的报告。vmstat
带有该参数的报告-S m
将认为单个兆字节等于 1000 千字节,如下所示:
$ 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)\nvmstat
还可以使用参数显示兆字节,使得单个兆字节等于 1024 KB -S M
。考虑以下示例:
$ 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