linux – 解释来自/ proc / [id] / mountstats或/ proc / self / mountstats的数据

前端之家收集整理的这篇文章主要介绍了linux – 解释来自/ proc / [id] / mountstats或/ proc / self / mountstats的数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想监视我的NFS共享的IO.有很多程序可以解释/ proc / [id] / mountstats([id] = nfs客户端/服务器的id)或/ proc / self / mountstats中的数据.问题是,这些程序每秒计算一些IO.这在命令行中非常好用,但对我的监控解决方案来说却毫无用处.所以我想自己解释mountstats的计数器.我现在的问题是,我需要一些nfs v4的mountstats文档.

到目前为止,我的搜索没有提出任何有用的.

谢谢你的帮助

Ubuntu(nfs客户端)上/ proc / self / mountstats的示例输出

  1. ...
  2. device IPADRESS:/mountpoint mounted on /mnt/mountpoint with fstype nfs4 statvers=1.0
  3. opts: rw,vers=4,rsize=1048576,wsize=1048576,acregmin=3,acregmax=60,acdirmin=30,acdirmax=60,hard,nointr,proto=tcp,timeo=600,retrans=2,sec=sys
  4. age: 77663
  5. caps: caps=0x1e,wtmult=512,dtsize=4096,bsize=0,namelen=255
  6. nfsv4: bm0=0xfdffbfff,bm1=0xf9be3e,acl=0x3
  7. sec: flavor=1,pseudoflavor=1
  8. events: 1462723 25756220 1025148 1164028 1083099 2027020 31347107 1984730 279773 1915700 1346583 21077199 520498 31825 525298 39026 2180470 1083041 0 16822 990144 11011 0 0 0
  9. bytes: 46686144592 3990939437 0 0 30238687174 3759616491 7739053 1346583
  10. RPC iostats version: 1.0 p/v: 100003/4 (nfs)
  11. xprt: tcp 852 1 2 0 0 11822378 11822377 0 17669710 13357205
  12. per-op statistics
  13. NULL: 0 0 0 0 0 0 0 0
  14. READ: 1950114 1950114 0 330348288 30355844804 105050 6678050 6907640
  15. WRITE: 911822 911822 0 3932410080 215189360 10653830 1472320 12211620
  16. COMMIT: 389509 389509 0 65718096 88808052 8060 253550 284360
  17. OPEN: 1168845 1168845 0 292577612 554554444 430040 628900 1229990
  18. OPEN_CONFIRM: 43 43 0 7048 2924 0 10 10
  19. OPEN_NOATTR: 0 0 0 0 0 0 0 0
  20. OPEN_DOWNGRADE: 54 54 0 9952 12744 90 0 120
  21. CLOSE: 1081161 1081161 0 191495392 255153996 201030 404620 767870
  22. SETATTR: 43303 43303 0 8753024 10046296 1060 25650 30380
  23. FSINFO: 2 2 0 268 184 0 0 0
  24. RENEW: 0 0 0 0 0 0 0 0
  25. SETCLIENTID: 0 0 0 0 0 0 0 0
  26. SETCLIENTID_CONFIRM: 0 0 0 0 0 0 0 0
  27. LOCK: 1140050 1140050 0 246277244 77523400 76270 326950 469890
  28. LOCKT: 1 1 0 188 52 0 0 0
  29. LOCKU: 1037895 1037895 0 187916912 70576860 18130 357530 441480
  30. ACCESS: 450451 450451 0 72511716 102702828 21440 222460 280950
  31. GETATTR: 1462724 1462724 0 224029496 310097488 21290 390910 485350
  32. LOOKUP: 2043380 2043380 0 361899452 532433688 18200 499200 585170
  33. LOOKUP_ROOT: 1 1 0 116 232 0 0 0
  34. REMOVE: 32356 32356 0 5953448 7765440 600 15450 18560
  35. RENAME: 20388 20388 0 5593088 9215376 510 7740 9750
  36. LINK: 537 537 0 132024 231984 0 220 270
  37. SYMLINK: 0 0 0 0 0 0 0 0
  38. CREATE: 999 999 0 227376 293140 30 650 830
  39. PATHCONF: 1 1 0 140 72 0 0 0
  40. STATFS: 2872 2872 0 419360 333152 580 3980 4880
  41. READLINK: 0 0 0 0 0 0 0 0
  42. READDIR: 82718 82718 0 14625720 118955760 770 48470 53310
  43. SERVER_CAPS: 3 3 0 400 264 0 0 0
  44. DELEGRETURN: 0 0 0 0 0 0 0 0
  45. GETACL: 0 0 0 0 0 0 0 0
  46. SETACL: 0 0 0 0 0 0 0 0
  47. FS_LOCATIONS: 0 0 0 0 0 0 0 0
  48. ...

解决方法

完整来源: http://www.fsl.cs.stonybrook.edu/~mchen/mountstat-format.txt
  1. Format of NFS mountstat

Linux内核版本:2.6.32-358.el6.x86_64

统计的重要文件

  1. - linux/fs/nfs/super.c: nfs_show_stats
  2. - linux/include/linux/nfs_iostat.h: nfs_stat_eventcounters
  3. - linux/net/sunrpc/stats.c: rpc_print_iostats
  4. - linux/net/sunrpc/xprtsock.c: xs_tcp_print_stats

服务器功能(上限)

>上限:服务器功能
> wtmult:服务器磁盘块大小
> dtsize:readdir大小
> bsize:服务器块大小
>纳伦:

nfsv4(nfs_show_stats)

> bm0:attribute_bitmask [0],支持哪些属性
> bm1:attribute_bitmask [1],支持哪些属性
> acl:acl_bitmask,支持哪些acl属性

sec,此安装有效的安全风格(nfs_show_stats)

> flavor:auth-> au_ops-> au_flavor
> pseudoflavor:auth-> au_flavor

事件(linux / nfs_iostat.h:nfs_stat_eventcounters)

> inoderevalidate
> dentryrevalidate
> datainvalidate
> attrinvalidate
> vfsopen
> vfslookup
> vfsaccess
> vfsupdatepage
> vfsreadpage
> vfsreadpages
> vfswritepage
> vfswritepages
> vfsgetdents
> vfssetattr
> vfsflush
> vfsfsync
> vfslock
> vfsrelease
>拥挤等
> setattrtrunc
> extendwrite
> sillyrename
>短读
>写作
>延迟
> pnfs_read
> pnfs_write

字节数(linux / nfs_iostat.h:nfs_stat_bytecounters)

> normalreadbytes
> normalwritebytes
> directreadbytes
> directwritebytes
> serverreadbytes
> serverwritebytes(serverwrittenbytes)
> readpages
>写作

xprt(tcp)

> linux / net / sunrpc / xprtsock.c:xs_tcp_print_stats
> linux / include / linux / sunrpc / xprt.h:struct rpc_xprt

> srcport:短暂的端口
> bind_count:rpcbind操作有多少
> connect_count:TCP连接的数量
> connect_time:连接多长时间
> idle_time:传输空闲多长时间
> rpcsends:多少套接字发送
> rpcrecvs:接收多少个套接
> badxids:已收到多少个无法匹配的XID
> req_u:线路上的平均请求(槽表利用率)
> bklog_u:积压队列利用率(baklog队列的平均长度)
> max_slots:使用max rpc_slots
> sending_u:发送q利用率
> pending_u:pend q利用率

每个RPC操作类型显示(rpc_print_iostats)

统计记录:rpc_exit_task —> xprt_release —> rpc_count_iostats

这里解释了所有NFS协议:http://www.freesoft.org/CIE/Topics/115.htm

> op类型的名称
> ops已请求此类型的操作数
> trans:已发送此op类型的传输次数
>超时:此op类型发生了多少次超时
> bytes_sent:已为此op类型发送了多少字节
> bytes_recv:此op类型已接收到多少字节
> queue:此类型的ops在进入队列之前等待了多长时间
传输(微秒)
> rtt:客户等待接收此操作的回复多长时间
从服务器输入(微秒)
> execute:执行此类型的操作多长时间(来自
rpc_init_task到rpc_exit_task)(微秒)

rpc_run_task —> rpc_new_task —> rpc_init_task

使用ns收集最后三次统计信息,但它们将被转换
打印出来时的ms.

执行时间应接近(队列rtt).

注意,在Linux源代码中,字段的名称以前缀为前缀
例如,“om_”,第一个字段是“om_ops”而不是“ops”.

NFSv4.0示例

  1. device 130.245.177.235:/nfsdata/ mounted on /mnt with fstype nfs4 statvers=1.1
  2. opts: rw,namlen=255,port=0,sec=sys,clientaddr=130.245.177.234,minorversion=0,local_lock=none
  3. age: 19 (time,in seconds,since the NFS is mounted)
  4. caps: caps=0xfff7,dtsize=32768,namlen=255
  5. nfsv4: bm0=0xfdffafff,acl=0x0
  6. sec: flavor=1,pseudoflavor=1
  7. events: 0 168232 0 0 0 10095 217808 0 2 9797 0 9739 0 0 19739 19739 0 19739 0 0 0 0 0 0 0 0 0
  8. bytes: 1612840960 0 0 0 627536112 0 158076 0
  9. RPC iostats version: 1.0 p/v: 100003/4 (nfs)
  10. xprt: tcp 737 0 1 0 0 69698 69697 0 81817 0 2 1082 12119
  11. per-op statistics
  12. NULL: 0 0 0 0 0 0 0 0
  13. READ: 9797 9797 0 1567520 628138612 71 7953 8200
  14. WRITE: 0 0 0 0 0 0 0 0
  15. COMMIT: 0 0 0 0 0 0 0 0
  16. OPEN: 19740 19740 0 4737600 7343280 505 3449 4172
  17. OPEN_CONFIRM: 10211 10211 0 1552072 694348 74 836 1008
  18. OPEN_NOATTR: 0 0 0 0 0 0 0 0
  19. OPEN_DOWNGRADE: 0 0 0 0 0 0 0 0
  20. CLOSE: 19739 19739 0 3316152 2605548 334 3045 3620
  21. SETATTR: 0 0 0 0 0 0 0 0
  22. FSINFO: 1 1 0 132 108 0 0 0
  23. RENEW: 0 0 0 0 0 0 0 0
  24. SETCLIENTID: 0 0 0 0 0 0 0 0
  25. SETCLIENTID_CONFIRM: 0 0 0 0 0 0 0 0
  26. LOCK: 0 0 0 0 0 0 0 0
  27. LOCKT: 0 0 0 0 0 0 0 0
  28. LOCKU: 0 0 0 0 0 0 0 0
  29. ACCESS: 96 96 0 14584 19584 0 8 10
  30. GETATTR: 1 1 0 132 188 0 0 0
  31. LOOKUP: 10095 10095 0 1655576 2382420 36 898 1072
  32. LOOKUP_ROOT: 0 0 0 0 0 0 0 0
  33. REMOVE: 0 0 0 0 0 0 0 0
  34. RENAME: 0 0 0 0 0 0 0 0
  35. LINK: 0 0 0 0 0 0 0 0
  36. SYMLINK: 0 0 0 0 0 0 0 0
  37. CREATE: 0 0 0 0 0 0 0 0
  38. PATHCONF: 1 1 0 128 72 0 0 0
  39. STATFS: 0 0 0 0 0 0 0 0
  40. READLINK: 0 0 0 0 0 0 0 0
  41. READDIR: 0 0 0 0 0 0 0 0
  42. SERVER_CAPS: 2 2 0 256 176 0 0 0
  43. DELEGRETURN: 0 0 0 0 0 0 0 0
  44. GETACL: 0 0 0 0 0 0 0 0
  45. SETACL: 0 0 0 0 0 0 0 0
  46. FS_LOCATIONS: 0 0 0 0 0 0 0 0
  47. RELEASE_LOCKOWNER: 0 0 0 0 0 0 0 0
  48. SECINFO: 0 0 0 0 0 0 0 0
  49. EXCHANGE_ID: 0 0 0 0 0 0 0 0
  50. CREATE_SESSION: 0 0 0 0 0 0 0 0
  51. DESTROY_SESSION: 0 0 0 0 0 0 0 0
  52. SEQUENCE: 0 0 0 0 0 0 0 0
  53. GET_LEASE_TIME: 0 0 0 0 0 0 0 0
  54. RECLAIM_COMPLETE: 0 0 0 0 0 0 0 0
  55. LAYOUTGET: 0 0 0 0 0 0 0 0
  56. GETDEVICEINFO: 0 0 0 0 0 0 0 0
  57. LAYOUTCOMMIT: 0 0 0 0 0 0 0 0
  58. LAYOUTRETURN: 0 0 0 0 0 0 0 0
  59.  
  60.  
  61. NFSv4.1 EXAMPLE
  62. ===============
  63. device 130.245.177.235:/nfsdata mounted on /mnt with fstype nfs4 statvers=1.1
  64. opts: rw,vers=4.1,local_lock=none
  65. age: 44
  66. impl_id: name='',domain='',date='0,0'
  67. caps: caps=0x3ffff,namlen=255
  68. nfsv4: bm0=0xfdffbfff,bm2=0x800,acl=0x3,sessions,pnfs=not configured
  69. sec: flavor=1,pseudoflavor=1
  70. events: 67379 1692812 0 30749 0 980 1984612 0 0 0 0 0 0 0 96611 96611 0 96611 0 0 0 0 0 0 0 0 0
  71. bytes: 0 0 0 0 0 0 0 0
  72. RPC iostats version: 1.0 p/v: 100003/4 (nfs)
  73. xprt: tcp 674 0 1 0 0 279772 279771 0 649944 0 5 1711 90409
  74. per-op statistics
  75. NULL: 0 0 0 0 0 0 0 0
  76. READ: 0 0 0 0 0 0 0 0
  77. WRITE: 0 0 0 0 0 0 0 0
  78. COMMIT: 0 0 0 0 0 0 0 0
  79. OPEN: 96612 96612 0 27824256 34007424 13349 16253 32061
  80. OPEN_CONFIRM: 0 0 0 0 0 0 0 0
  81. OPEN_NOATTR: 0 0 0 0 0 0 0 0
  82. OPEN_DOWNGRADE: 0 0 0 0 0 0 0 0
  83. CLOSE: 96610 96610 0 19708440 17003360 2936 11082 15386
  84. SETATTR: 0 0 0 0 0 0 0 0
  85. FSINFO: 1 1 0 168 152 0 0 0
  86. RENEW: 0 0 0 0 0 0 0 0
  87. SETCLIENTID: 0 0 0 0 0 0 0 0
  88. SETCLIENTID_CONFIRM: 0 0 0 0 0 0 0 0
  89. LOCK: 0 0 0 0 0 0 0 0
  90. LOCKT: 0 0 0 0 0 0 0 0
  91. LOCKU: 0 0 0 0 0 0 0 0
  92. ACCESS: 16932 16932 0 3183200 2844576 83 1919 2308
  93. GETATTR: 67380 67380 0 12128380 15632160 336 8367 10644
  94. LOOKUP: 1236 1236 0 247176 167784 7 153 197
  95. LOOKUP_ROOT: 0 0 0 0 0 0 0 0
  96. REMOVE: 0 0 0 0 0 0 0 0
  97. RENAME: 0 0 0 0 0 0 0 0
  98. LINK: 0 0 0 0 0 0 0 0
  99. SYMLINK: 0 0 0 0 0 0 0 0
  100. CREATE: 980 980 0 219516 305760 5 168 197
  101. PATHCONF: 1 1 0 164 116 0 0 0
  102. STATFS: 0 0 0 0 0 0 0 0
  103. READLINK: 0 0 0 0 0 0 0 0
  104. READDIR: 0 0 0 0 0 0 0 0
  105. SERVER_CAPS: 2 2 0 328 280 0 0 0
  106. DELEGRETURN: 0 0 0 0 0 0 0 0
  107. GETACL: 0 0 0 0 0 0 0 0
  108. SETACL: 0 0 0 0 0 0 0 0
  109. FS_LOCATIONS: 0 0 0 0 0 0 0 0
  110. RELEASE_LOCKOWNER: 0 0 0 0 0 0 0 0
  111. SECINFO: 0 0 0 0 0 0 0 0
  112. EXCHANGE_ID: 0 0 0 0 0 0 0 0
  113. CREATE_SESSION: 0 0 0 0 0 0 0 0
  114. DESTROY_SESSION: 0 0 0 0 0 0 0 0
  115. SEQUENCE: 0 0 0 0 0 0 0 0
  116. GET_LEASE_TIME: 0 0 0 0 0 0 0 0
  117. RECLAIM_COMPLETE: 0 0 0 0 0 0 0 0
  118. LAYOUTGET: 0 0 0 0 0 0 0 0
  119. GETDEVICEINFO: 0 0 0 0 0 0 0 0
  120. LAYOUTCOMMIT: 0 0 0 0 0 0 0 0
  121. LAYOUTRETURN: 0 0 0 0 0 0 0 0
  122. SECINFO_NO_NAME: 0 0 0 0 0 0 0 0
  123. TEST_STATEID: 0 0 0 0 0 0 0 0
  124. FREE_STATEID: 0 0 0 0 0 0 0 0
  125. GETDEVICELIST: 0 0 0 0 0 0 0 0
  126. BIND_CONN_TO_SESSION: 0 0 0 0 0 0 0 0
  127. DESTROY_CLIENTID: 0 0 0 0 0 0 0 0
  128.  
  129.  
  130. # vim: tabstop=2:shiftwidth=2:expandtab:foldmethod=indent

另外https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/nfs_iostat.hhttps://utcc.utoronto.ca/~cks/space/blog/linux/NFSMountstatsIndex进行额外阅读.

猜你在找的Linux相关文章