如何在Linux上监视内存IO

尤金

有很多工具可用于监视磁盘IO,例如dstat。

有没有什么工具可以用来监视DRAM IO?就像每秒从DRAM读取多少MB数据一样。

丹尼尔·B

由于您具有Intel CPU,因此您应该能够使用Processor Counter Monitor,它是现在开源的Intel软件。如果我正确看到的话,在Linux上编译它只需要g++make

在运行它之前,您需要确保msr模块已加载(sudo modprobe msr)或内置。

使用CPU,您应该可以使用该pcm-memory.x实用程序。我无法使用它,所以我不知道输出是什么样子。

即使不支持您的CPU pcm-memory.x,您仍然可以从获得总体内存带宽统计信息pcm.x看起来像这样:

$ sudo ./pcm.x -i=1 -nc

 Processor Counter Monitor  ($Format:%ci ID=%h$)


IBRS and IBPB supported  : no
STIBP supported          : no
Spec arch caps supported : no
Number of physical cores: 4
Number of logical cores: 8
Number of online logical cores: 8
Threads (logical cores) per physical core: 2
Num sockets: 1
Physical cores per socket: 4
Core PMU (perfmon) version: 4
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Nominal core frequency: 3600000000 Hz
Package thermal spec power: 65 Watt; Package minimum power: 0 Watt; Package maximum power: 0 Watt;
Trying to use Linux perf events...
Successfully programmed on-core PMU using Linux perf

Detected Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz "Intel(r) microarchitecture codename Kabylake" stepping 9 microcode level 0x5e

 EXEC  : instructions per nominal CPU cycle
 IPC   : instructions per CPU cycle
 FREQ  : relation to nominal CPU frequency='unhalted clock ticks'/'invariant timer ticks' (includes Intel Turbo Boost)
 AFREQ : relation to nominal CPU frequency while in active state (not in power-saving C state)='unhalted clock ticks'/'invariant timer ticks while in C0-state'  (includes Intel Turbo Boost)
 L3MISS: L3 (read) cache misses
 L2MISS: L2 (read) cache misses (including other core's L2 cache *hits*)
 L3HIT : L3 (read) cache hit ratio (0.00-1.00)
 L2HIT : L2 cache hit ratio (0.00-1.00)
 L3MPI : number of L3 (read) cache misses per instruction
 L2MPI : number of L2 (read) cache misses per instruction
 READ  : bytes read from main memory controller (in GBytes)
 WRITE : bytes written to main memory controller (in GBytes)
 IO    : bytes read/written due to IO requests to memory controller (in GBytes); this may be an over estimate due to same-cache-line partial requests
 TEMP  : Temperature reading in 1 degree Celsius relative to the TjMax temperature (thermal headroom): 0 corresponds to the max temperature
 energy: Energy in Joules


 Core (SKT) | EXEC | IPC  | FREQ  | AFREQ | L3MISS | L2MISS | L3HIT | L2HIT | L3MPI | L2MPI |  TEMP

---------------------------------------------------------------------------------------------------------------
 SKT    0     0.02   1.05   0.02    0.39     402 K   1770 K    0.76    0.53    0.00    0.00     67
---------------------------------------------------------------------------------------------------------------
 TOTAL  *     0.02   1.05   0.02    0.39     402 K   1770 K    0.76    0.53    0.00    0.00     N/A

 Instructions retired:  487 M ; Active cycles:  462 M ; Time (TSC): 3602 Mticks ; C0 (active,non-halted) core residency: 4.12 %

 C1 core residency: 9.26 %; C3 core residency: 0.59 %; C6 core residency: 2.14 %; C7 core residency: 83.89 %;
 C0 package residency: 36.94 %; C2 package residency: 63.06 %; C3 package residency: 0.00 %; C6 package residency: 0.00 %; C7 package residency: 0.00 %; C8 package residency: 0.00 %; C9 package residency: 0.00 %; C10 package residency: 0.00 %;
                             ┌───────────────────────────────────────────────────────────────────────────────┐
 Core    C-state distribution│0001111111667777777777777777777777777777777777777777777777777777777777777777777│
                             └───────────────────────────────────────────────────────────────────────────────┘
                             ┌────────────────────────────────────────────────────────────────────────────────┐
 Package C-state distribution│00000000000000000000000000000022222222222222222222222222222222222222222222222222│
                             └────────────────────────────────────────────────────────────────────────────────┘

 PHYSICAL CORE IPC                 : 2.11 => corresponds to 52.65 % utilization for cores in active state
 Instructions per nominal CPU cycle: 0.03 => corresponds to 0.85 % core utilization over time interval
 SMI count: 0
---------------------------------------------------------------------------------------------------------------
MEM (GB)->|  READ |  WRITE |   IO   | CPU energy |
---------------------------------------------------------------------------------------------------------------
 SKT   0     0.24     0.03     0.00       1.88
---------------------------------------------------------------------------------------------------------------
Cleaning up
 Zeroed uncore PMU registers

除非您指定-i=1否则输出将定期重复。如果省略-nc,您将获得每个内核的执行统计信息,而不仅仅是总数。

在底部,您可以查看内存统计信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Linux

如何在Linux CPU中监视进程,内存和时间

来自分类Linux

如何在Linux上记录内存消耗?

来自分类Dev

如何在Xdebug中启用内存监视?

来自分类Dev

如何通过监视cpu,内存,磁盘io等来安排作业

来自分类Dev

如何在Linux上的Common Lisp中内存映射文件?

来自分类Dev

如何在Linux内核上启用内存区域回收模式?

来自分类Dev

SPARK:如何监视Spark群集上的内存消耗?

来自分类Linux

如何在Linux上动态监视每个内核使用率的CPU?

来自分类Dev

如何在作为VirtualBox来宾OS运行的Ubuntu linux上使用多个监视器

来自分类Dev

我如何在Linux上实时监视访问哪些文件,创建修改和删除文件?

来自分类Dev

如何监视磁盘io?

来自分类Dev

如何从代码监视内存分配

来自分类Dev

如何在Linux上的监视模式下运行RTL8191SU USB Wifi适配器?

来自分类Dev

如何在Linux中的Ivy Bridge Xeon E3处理器上监视RAM ECC错误?

来自分类Linux

在Linux上如何限制共享内存

来自分类Dev

如何估算Linux上的可用物理内存?

来自分类Linux

如何在Linux上使用Ruby 2.0改善独角兽进程之间的内存共享

来自分类Linux

如何在Linux(和OSX)上查询已分配的内存量?

来自分类Linux

如何在Linux上的共享内存上进行写时复制

来自分类Dev

ARM Cortex A 上的内存区域如何在 Linux 下表示为“设备”或“强序”

来自分类Dev

如何在 linux 上生成合理大小的 .NET Core 进程的内存转储文件?

来自分类Linux

如何在Linux中监视整个目录树的更改?

来自分类Linux

如何在Linux中监视串行端口上的数据?

来自分类Dev

如何在QNX上获取进程内存

来自分类Dev

如何在OSX上检查内存映射

来自分类Dev

如何在android上读取游戏内存

来自分类Dev

如何在Chainer框架中监视验证集上的错误?

来自分类Dev

如何在ng-repeat创建的模型上监视变化?

来自分类Dev

如何在OSX上配置fsnotify的队列大小/监视限制?

Related 相关文章

  1. 1

    如何在Linux CPU中监视进程,内存和时间

  2. 2

    如何在Linux上记录内存消耗?

  3. 3

    如何在Xdebug中启用内存监视?

  4. 4

    如何通过监视cpu,内存,磁盘io等来安排作业

  5. 5

    如何在Linux上的Common Lisp中内存映射文件?

  6. 6

    如何在Linux内核上启用内存区域回收模式?

  7. 7

    SPARK:如何监视Spark群集上的内存消耗?

  8. 8

    如何在Linux上动态监视每个内核使用率的CPU?

  9. 9

    如何在作为VirtualBox来宾OS运行的Ubuntu linux上使用多个监视器

  10. 10

    我如何在Linux上实时监视访问哪些文件,创建修改和删除文件?

  11. 11

    如何监视磁盘io?

  12. 12

    如何从代码监视内存分配

  13. 13

    如何在Linux上的监视模式下运行RTL8191SU USB Wifi适配器?

  14. 14

    如何在Linux中的Ivy Bridge Xeon E3处理器上监视RAM ECC错误?

  15. 15

    在Linux上如何限制共享内存

  16. 16

    如何估算Linux上的可用物理内存?

  17. 17

    如何在Linux上使用Ruby 2.0改善独角兽进程之间的内存共享

  18. 18

    如何在Linux(和OSX)上查询已分配的内存量?

  19. 19

    如何在Linux上的共享内存上进行写时复制

  20. 20

    ARM Cortex A 上的内存区域如何在 Linux 下表示为“设备”或“强序”

  21. 21

    如何在 linux 上生成合理大小的 .NET Core 进程的内存转储文件?

  22. 22

    如何在Linux中监视整个目录树的更改?

  23. 23

    如何在Linux中监视串行端口上的数据?

  24. 24

    如何在QNX上获取进程内存

  25. 25

    如何在OSX上检查内存映射

  26. 26

    如何在android上读取游戏内存

  27. 27

    如何在Chainer框架中监视验证集上的错误?

  28. 28

    如何在ng-repeat创建的模型上监视变化?

  29. 29

    如何在OSX上配置fsnotify的队列大小/监视限制?

热门标签

归档