Linux Top 命令使用命令行给出两个 cpu 核心的输出
Linux Top command giving output of both the cpu cores using command line
我有一个 2 核系统 运行ning linux。我想以 15 分钟的固定间隔记录 cpu 各个内核的使用情况。
我可以使用 top 和正则表达式来获取信息。但它给了我 cpu 的整体信息。当我手动按下“1”时,两个核心的使用情况会分开显示。
我的问题是如何在调用 top 命令后不手动按“1”的情况下显示两个核心 cpu 的使用情况。
我目前的研究:
-我可以使用 -b 选项以批处理模式 运行 并输出到文件。但是接下来的问题是我如何以批处理方式向top命令输入数据。是否有 top 命令以批处理模式读取到 运行 的脚本?
Linux top
命令从 /proc/stat
获取其信息,这(在某种程度上)取决于内核版本。也许你可以编写一个程序来读取它。这是来自 20 个内核的 2.6.32 系统的示例:
cpu 46832272 794980 8521784 1312627944 853989 247 34947 0 0
cpu0 6404288 173468 806918 60455445 377313 1 1799 0 0
cpu1 2980140 137898 937163 64278592 68373 0 118 0 0
cpu2 5099227 86676 841568 62395343 27685 0 64 0 0
cpu3 11255325 20062 767603 56427120 9388 0 85 0 0
cpu4 2618170 1002 501629 65394095 4369 0 62 0 0
cpu5 635453 867 154898 67725523 2981 212 58 0 0
cpu6 343657 32 66510 68113208 2769 0 64 0 0
cpu7 327935 688 38431 68158263 1703 0 55 0 0
cpu8 118687 78 27436 68382190 1992 0 33 0 0
cpu9 329990 49 42224 68138515 1643 0 49 0 0
cpu10 3462177 160918 814788 63701724 202763 3 5444 0 0
cpu11 3006524 112533 484490 64877526 37455 0 6840 0 0
cpu12 2696919 61285 695966 65004324 17277 0 133 0 0
cpu13 3453005 34509 957663 64035215 10938 0 101 0 0
cpu14 2068954 2039 679830 65764151 6418 0 50 0 0
cpu15 628390 159 367213 67531841 2593 0 41 0 0
cpu16 331139 77 76690 68120995 2971 0 51 0 0
cpu17 616895 2482 182239 67595814 70070 29 19797 0 0
cpu18 343472 51 38712 68148369 2481 0 46 0 0
cpu19 111916 96 39803 68379681 2797 0 47 0 0
intr 1991637171 173 2 0 0 2 0 0 0 1 0 0 0 4 0 0 0 0 1 56 1416833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2285 0 0 0 0 0 0 0 3211641 4799987 3235 31624105 11000098 0 ...
ctxt 3201588026
btime 1460672984
processes 2430161
procs_running 2
procs_blocked 0
softirq 1391193131 0 626556634 166050 33864038 3892307 0 11210298 67287467 2880340 645335997
根据手册页(man 5 proc
然后搜索 /proc/stat
),cpu 条目的行是:
- 系统花费的时间量,以 USER_HZ 为单位(大多数架构为 1/100 秒,使用 sysconf(_SC_CLK_TCK) 获取正确的值) 用户模式,低优先级用户模式(nice),系统模式,以及idle 任务,分别。最后一个值应该是正常运行时间伪文件中第二个条目的 USER_HZ 倍。
- iowait - 等待 I/O 完成的时间; irq - 时间服务中断; softirq - 时间服务软中断。
- steal - 被盗时间,即在虚拟化环境运行
时在其他操作系统中花费的时间
- guest,这是 运行 在 Linux 内核控制下为来宾操作系统虚拟 CPU 所花费的时间。
- guest_nice 时间 运行 一个很好的来宾(虚拟 CPU 用于在 [=62= 的控制下获取操作系统]内核)。
我也看了一个4.4.6内核的系统。 cpu 个条目有第十项。
我有一个 2 核系统 运行ning linux。我想以 15 分钟的固定间隔记录 cpu 各个内核的使用情况。
我可以使用 top 和正则表达式来获取信息。但它给了我 cpu 的整体信息。当我手动按下“1”时,两个核心的使用情况会分开显示。
我的问题是如何在调用 top 命令后不手动按“1”的情况下显示两个核心 cpu 的使用情况。
我目前的研究: -我可以使用 -b 选项以批处理模式 运行 并输出到文件。但是接下来的问题是我如何以批处理方式向top命令输入数据。是否有 top 命令以批处理模式读取到 运行 的脚本?
Linux top
命令从 /proc/stat
获取其信息,这(在某种程度上)取决于内核版本。也许你可以编写一个程序来读取它。这是来自 20 个内核的 2.6.32 系统的示例:
cpu 46832272 794980 8521784 1312627944 853989 247 34947 0 0
cpu0 6404288 173468 806918 60455445 377313 1 1799 0 0
cpu1 2980140 137898 937163 64278592 68373 0 118 0 0
cpu2 5099227 86676 841568 62395343 27685 0 64 0 0
cpu3 11255325 20062 767603 56427120 9388 0 85 0 0
cpu4 2618170 1002 501629 65394095 4369 0 62 0 0
cpu5 635453 867 154898 67725523 2981 212 58 0 0
cpu6 343657 32 66510 68113208 2769 0 64 0 0
cpu7 327935 688 38431 68158263 1703 0 55 0 0
cpu8 118687 78 27436 68382190 1992 0 33 0 0
cpu9 329990 49 42224 68138515 1643 0 49 0 0
cpu10 3462177 160918 814788 63701724 202763 3 5444 0 0
cpu11 3006524 112533 484490 64877526 37455 0 6840 0 0
cpu12 2696919 61285 695966 65004324 17277 0 133 0 0
cpu13 3453005 34509 957663 64035215 10938 0 101 0 0
cpu14 2068954 2039 679830 65764151 6418 0 50 0 0
cpu15 628390 159 367213 67531841 2593 0 41 0 0
cpu16 331139 77 76690 68120995 2971 0 51 0 0
cpu17 616895 2482 182239 67595814 70070 29 19797 0 0
cpu18 343472 51 38712 68148369 2481 0 46 0 0
cpu19 111916 96 39803 68379681 2797 0 47 0 0
intr 1991637171 173 2 0 0 2 0 0 0 1 0 0 0 4 0 0 0 0 1 56 1416833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1644 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2285 0 0 0 0 0 0 0 3211641 4799987 3235 31624105 11000098 0 ...
ctxt 3201588026
btime 1460672984
processes 2430161
procs_running 2
procs_blocked 0
softirq 1391193131 0 626556634 166050 33864038 3892307 0 11210298 67287467 2880340 645335997
根据手册页(man 5 proc
然后搜索 /proc/stat
),cpu 条目的行是:
- 系统花费的时间量,以 USER_HZ 为单位(大多数架构为 1/100 秒,使用 sysconf(_SC_CLK_TCK) 获取正确的值) 用户模式,低优先级用户模式(nice),系统模式,以及idle 任务,分别。最后一个值应该是正常运行时间伪文件中第二个条目的 USER_HZ 倍。
- iowait - 等待 I/O 完成的时间; irq - 时间服务中断; softirq - 时间服务软中断。
- steal - 被盗时间,即在虚拟化环境运行 时在其他操作系统中花费的时间
- guest,这是 运行 在 Linux 内核控制下为来宾操作系统虚拟 CPU 所花费的时间。
- guest_nice 时间 运行 一个很好的来宾(虚拟 CPU 用于在 [=62= 的控制下获取操作系统]内核)。
我也看了一个4.4.6内核的系统。 cpu 个条目有第十项。