2012-04-23 12 views
7

Tôi muốn theo dõi các IO của các cổ phiếu NFS của mình. Có rất nhiều chương trình giải thích dữ liệu trong phạm vi /proc/[id]/mountstats ([id] = id của máy khách/máy chủ nfs) hoặc /proc/self/mountstats. Vấn đề là, các chương trình này tính toán một số IO mỗi giây. Điều này là rất tốt đẹp trong dòng lệnh, nhưng nó là khá vô ích cho giải pháp giám sát của tôi. Vì vậy, tôi muốn giải thích các quầy của mountstats bản thân mình. Vấn đề của tôi bây giờ là, tôi cần một số tài liệu của mountstats cho nfs v4.Thông dịch dữ liệu từ/proc/[id]/mountstats hoặc/proc/self/mountstats

Cho đến nay tìm kiếm của tôi chưa mang lại bất kỳ hữu ích nào.

Nhờ sự giúp đỡ của bạn

đầu ra

mẫu/proc/self/mountstats trên Ubuntu (nfs client):

... 
device IPADRESS:/mountpoint mounted on /mnt/mountpoint with fstype nfs4 statvers=1.0 
    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 
    age: 77663 
    caps: caps=0x1e,wtmult=512,dtsize=4096,bsize=0,namelen=255 
    nfsv4: bm0=0xfdffbfff,bm1=0xf9be3e,acl=0x3 
    sec: flavor=1,pseudoflavor=1 
    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 
    bytes: 46686144592 3990939437 0 0 30238687174 3759616491 7739053 1346583 
    RPC iostats version: 1.0 p/v: 100003/4 (nfs) 
    xprt: tcp 852 1 2 0 0 11822378 11822377 0 17669710 13357205 
    per-op statistics 
      NULL: 0 0 0 0 0 0 0 0 
      READ: 1950114 1950114 0 330348288 30355844804 105050 6678050 6907640 
      WRITE: 911822 911822 0 3932410080 215189360 10653830 1472320 12211620 
      COMMIT: 389509 389509 0 65718096 88808052 8060 253550 284360 
      OPEN: 1168845 1168845 0 292577612 554554444 430040 628900 1229990 
    OPEN_CONFIRM: 43 43 0 7048 2924 0 10 10 
    OPEN_NOATTR: 0 0 0 0 0 0 0 0 
    OPEN_DOWNGRADE: 54 54 0 9952 12744 90 0 120 
      CLOSE: 1081161 1081161 0 191495392 255153996 201030 404620 767870 
     SETATTR: 43303 43303 0 8753024 10046296 1060 25650 30380 
      FSINFO: 2 2 0 268 184 0 0 0 
      RENEW: 0 0 0 0 0 0 0 0 
    SETCLIENTID: 0 0 0 0 0 0 0 0 
    SETCLIENTID_CONFIRM: 0 0 0 0 0 0 0 0 
      LOCK: 1140050 1140050 0 246277244 77523400 76270 326950 469890 
      LOCKT: 1 1 0 188 52 0 0 0 
      LOCKU: 1037895 1037895 0 187916912 70576860 18130 357530 441480 
      ACCESS: 450451 450451 0 72511716 102702828 21440 222460 280950 
     GETATTR: 1462724 1462724 0 224029496 310097488 21290 390910 485350 
      LOOKUP: 2043380 2043380 0 361899452 532433688 18200 499200 585170 
    LOOKUP_ROOT: 1 1 0 116 232 0 0 0 
      REMOVE: 32356 32356 0 5953448 7765440 600 15450 18560 
      RENAME: 20388 20388 0 5593088 9215376 510 7740 9750 
      LINK: 537 537 0 132024 231984 0 220 270 
     SYMLINK: 0 0 0 0 0 0 0 0 
      CREATE: 999 999 0 227376 293140 30 650 830 
     PATHCONF: 1 1 0 140 72 0 0 0 
      STATFS: 2872 2872 0 419360 333152 580 3980 4880 
     READLINK: 0 0 0 0 0 0 0 0 
     READDIR: 82718 82718 0 14625720 118955760 770 48470 53310 
    SERVER_CAPS: 3 3 0 400 264 0 0 0 
    DELEGRETURN: 0 0 0 0 0 0 0 0 
      GETACL: 0 0 0 0 0 0 0 0 
      SETACL: 0 0 0 0 0 0 0 0 
    FS_LOCATIONS: 0 0 0 0 0 0 0 0 
... 
+0

Tôi có cùng một câu hỏi: http://serverfault.com/questions/810729/what-is-snmp-mib-for-getting-nfs-io-counters. Bạn đã tìm thấy giải pháp cho điều này? –

+1

@JeevanPatnaik Bạn đã xem https://utcc.utoronto.ca/~cks/space/blog/linux/NFSMountstatsIndex chưa? –

+0

Xin chào Thanks..This hoạt động. Hãy làm cho nó như là một câu trả lời! –

Trả lời

0

Về những gì Linux bạn làm điều này bởi vì đối với tôi, trên Redhat, mountstats (đối với v4) giống như sau:

[[email protected] petri]# cat /proc/1511/mountstats 
device rootfs mounted on/with fstype rootfs 
device /proc mounted on /proc with fstype proc 
device /sys mounted on /sys with fstype sysfs 
device udev mounted on /dev with fstype devtmpfs 
device devpts mounted on /dev/pts with fstype devpts 
device tmpfs mounted on /dev/shm with fstype tmpfs 
device /dev/mapper/vg_riau-lv_root mounted on/with fstype ext4 
device /proc/bus/usb mounted on /proc/bus/usb with fstype usbfs 
device /dev/sda1 mounted on /boot with fstype ext4 
device /dev/mapper/vg_riau-lv_home mounted on /home with fstype ext4 
device none mounted on /proc/sys/fs/binfmt_misc with fstype binfmt_misc 
device cgroup mounted on /cgroup/cpuset with fstype cgroup 
device cgroup mounted on /cgroup/cpu with fstype cgroup 
device cgroup mounted on /cgroup/cpuacct with fstype cgroup 
device cgroup mounted on /cgroup/memory with fstype cgroup 
device cgroup mounted on /cgroup/devices with fstype cgroup 
device cgroup mounted on /cgroup/freezer with fstype cgroup 
device cgroup mounted on /cgroup/net_cls with fstype cgroup 
device cgroup mounted on /cgroup/blkio with fstype cgroup 
device sunrpc mounted on /var/lib/nfs/rpc_pipefs with fstype rpc_pipefs 
device /etc/auto.misc mounted on /misc with fstype autofs 
device -hosts mounted on /net with fstype autofs 
device nfsd mounted on /proc/fs/nfsd with fstype nfsd 
+0

Tôi đang làm điều này trên Ubuntu và có vẻ như thế này cho các điểm gắn kết nfs thiết bị IPADRESS :/lưu trữ được gắn trên/mnt/store với fstype nfs4 statvers = 1.0 opts: rw, vers = 4, rsize = 1048576, wsize = 1048576, acregmin = 3, acregmax = 60, acdirmin = 30, acdirmax = 60, cứng, nointr, proto = tcp, timeo = 600, retrans = 2, sec = sys tuổi: 75405 \t \t ... – tiflor

+0

@tiflor ah, điều đó hữu ích, bạn có thể xem xét thêm nó vào câu hỏi của bạn làm ví dụ - hữu ích nhất. – Petriborg

+0

Cảm ơn, vì gợi ý. – tiflor

3

nguồn Complete: http://www.fsl.cs.stonybrook.edu/~mchen/mountstat-format.txt

 Format of NFS mountstat 

Linux kernel phiên bản: 2.6.32-358.el6.x86_64

file quan trọng cho các thống kê:

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

server Capabilities (mũ)

  1. c APS: khả năng máy chủ
  2. wtmult: kích thước máy chủ đĩa khối
  3. dtsize: kích thước readdir
  4. bsize: máy chủ kích thước khối
  5. namlen:

NFSv4 (nfs_show_stats)

  1. bm0 : attribute_bitmask [0], thuộc tính được hỗ trợ
  2. bm1: attribute_bitmask [1], whic thuộc tính h được hỗ trợ
  3. acl: acl_bitmask, mà thuộc tính acl được hỗ trợ

giây, hương vị an ninh có hiệu lực của lệnh mount này (nfs_show_stats)

  1. hương vị: auth-> au_ops-> au_flavor
  2. pseudoflavor: auth-> au_flavor

Sự kiện (linux/nfs_iostat.h: nfs_stat_eventcounters)

  1. inoderevalidate
  2. dentryrevalidate
  3. datainvalidate
  4. attrinvalidate
  5. vfsopen
  6. vfslookup
  7. vfsaccess
  8. vfsupdatepage
  9. vfsreadpage
  10. vfsreadpages
  11. vfswritepage
  12. vfswritepages
  13. vfsgetdents
  14. vfssetattr
  15. vfsflush
  16. vfsfsync
  17. vfslock
  18. vfsrelease
  19. congestionwait
  20. setattrtrunc
  21. extendwrite
  22. sillyrename
  23. shortread
  24. shortwrite
  25. chậm trễ
  26. pnfs_read
  27. pnfs_write

Bytes (linux/nfs_iostat.h: nfs_stat_bytecounters)

  1. normalreadbytes
  2. normalwritebytes
  3. directreadbytes
  4. directwritebytes
  5. serverreadbytes
  6. serverwritebytes (serverwrittenbytes)
  7. readpages
  8. writepages

xprt (tcp)

  • linux/net/sunrpc/xprtsock.c: xs_tcp_print_stats
  • linux/include/linux/sunrpc/xprt.h: struct rpc_xprt
    1. srcport: cổng Ephemeral
    2. bind_count: Có bao nhiêu rpcbind hoạt động
    3. connect_count: Có bao nhiêu TCP kết nối
    4. connect_time: connect bao lâu rồi lấy
    5. idle_time: vận chuyển bao lâu rồi bị nhàn rỗi
    6. rpcsends: Số lượng socket gửi
    7. rpcrecvs: Số lượng socket nhận được
    8. badxids: Có bao nhiêu XIDs vô địch đã được nhận
    9. req_u: yêu cầu trung bình trên dây (khe cắm sử dụng bảng)
    10. bklog_u: tồn đọng sử dụng hàng đợi (chiều dài trung bình của hàng đợi baklog)
    11. max_slots: rpc_slots max sử dụng
    12. sending_u: gửi q sử dụng
    13. pending_u: pend q sử dụng

Mỗi RPC operatio loại n chương trình (rpc_print_iostats)

Các số liệu thống kê ghi: rpc_exit_task ---> xprt_release ---> rpc_count_iostats

Tất cả các giao thức NFS được giải thích ở đây: http://www.freesoft.org/CIE/Topics/115.htm

  1. Tên của loại op
  2. ops Có bao nhiêu ops thuộc loại này đã được yêu cầu
  3. trans: Có bao nhiêu lần truyền loại op này đã được gửi
  4. thời gian outs: Có bao nhiêu timeouts loại op này đã xảy ra
  5. bytes_sent: Có bao nhiêu byte đã được gửi cho loại hình này op
  6. bytes_recv: Có bao nhiêu byte đã được nhận cho loại op này
  7. đợi: ops bao lâu của loại này đã chờ đợi trước khi được truyền (micro giây)
  8. RTT: bao lâu khách hàng chờ đợi để nhận được trả lời của loại op này từ máy chủ (micro giây)
  9. thực hiện: Làm thế nào ops dài thuộc loại này mất tới thực hiện (từ rpc_init_task đến rpc_exit_task) (micros econd)

rpc_run_task ---> rpc_new_task ---> rpc_init_task

Ba thống kê lần cuối cùng được thu thập bằng ns, nhưng họ được chuyển đổi để ms khi chúng được in ra.

Thời gian thực hiện sẽ gần đúng (hàng đợi + rtt).

Lưu ý, trong mã nguồn Linux, tên của các trường được bắt đầu bằng "om_", ví dụ, trường đầu tiên là "om_ops" thay vì "ops".

NFSv4.0 VÍ DỤ

device 130.245.177.235:/nfsdata/ mounted on /mnt with fstype nfs4 statvers=1.1 
    opts: rw,vers=4,rsize=1048576,wsize=1048576,namlen=255,acregmin=3,acregmax=60, 
      acdirmin=30,acdirmax=60,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys, 
      clientaddr=130.245.177.234,minorversion=0,local_lock=none 
    age: 19 (time, in seconds, since the NFS is mounted) 
    caps: caps=0xfff7,wtmult=512,dtsize=32768,bsize=0,namlen=255 
    nfsv4: bm0=0xfdffafff,bm1=0xf9be3e,acl=0x0 
    sec: flavor=1,pseudoflavor=1 
    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 
    bytes: 1612840960 0 0 0 627536112 0 158076 0 
    RPC iostats version: 1.0 p/v: 100003/4 (nfs) 
    xprt: tcp 737 0 1 0 0 69698 69697 0 81817 0 2 1082 12119 
    per-op statistics 
      NULL: 0 0 0 0 0 0 0 0 
      READ: 9797 9797 0 1567520 628138612 71 7953 8200 
      WRITE: 0 0 0 0 0 0 0 0 
      COMMIT: 0 0 0 0 0 0 0 0 
      OPEN: 19740 19740 0 4737600 7343280 505 3449 4172 
    OPEN_CONFIRM: 10211 10211 0 1552072 694348 74 836 1008 
    OPEN_NOATTR: 0 0 0 0 0 0 0 0 
    OPEN_DOWNGRADE: 0 0 0 0 0 0 0 0 
      CLOSE: 19739 19739 0 3316152 2605548 334 3045 3620 
     SETATTR: 0 0 0 0 0 0 0 0 
      FSINFO: 1 1 0 132 108 0 0 0 
      RENEW: 0 0 0 0 0 0 0 0 
    SETCLIENTID: 0 0 0 0 0 0 0 0 
    SETCLIENTID_CONFIRM: 0 0 0 0 0 0 0 0 
      LOCK: 0 0 0 0 0 0 0 0 
      LOCKT: 0 0 0 0 0 0 0 0 
      LOCKU: 0 0 0 0 0 0 0 0 
      ACCESS: 96 96 0 14584 19584 0 8 10 
     GETATTR: 1 1 0 132 188 0 0 0 
      LOOKUP: 10095 10095 0 1655576 2382420 36 898 1072 
    LOOKUP_ROOT: 0 0 0 0 0 0 0 0 
      REMOVE: 0 0 0 0 0 0 0 0 
      RENAME: 0 0 0 0 0 0 0 0 
      LINK: 0 0 0 0 0 0 0 0 
     SYMLINK: 0 0 0 0 0 0 0 0 
      CREATE: 0 0 0 0 0 0 0 0 
     PATHCONF: 1 1 0 128 72 0 0 0 
      STATFS: 0 0 0 0 0 0 0 0 
     READLINK: 0 0 0 0 0 0 0 0 
     READDIR: 0 0 0 0 0 0 0 0 
    SERVER_CAPS: 2 2 0 256 176 0 0 0 
    DELEGRETURN: 0 0 0 0 0 0 0 0 
      GETACL: 0 0 0 0 0 0 0 0 
      SETACL: 0 0 0 0 0 0 0 0 
    FS_LOCATIONS: 0 0 0 0 0 0 0 0 
    RELEASE_LOCKOWNER: 0 0 0 0 0 0 0 0 
     SECINFO: 0 0 0 0 0 0 0 0 
    EXCHANGE_ID: 0 0 0 0 0 0 0 0 
    CREATE_SESSION: 0 0 0 0 0 0 0 0 
    DESTROY_SESSION: 0 0 0 0 0 0 0 0 
     SEQUENCE: 0 0 0 0 0 0 0 0 
    GET_LEASE_TIME: 0 0 0 0 0 0 0 0 
    RECLAIM_COMPLETE: 0 0 0 0 0 0 0 0 
     LAYOUTGET: 0 0 0 0 0 0 0 0 
    GETDEVICEINFO: 0 0 0 0 0 0 0 0 
    LAYOUTCOMMIT: 0 0 0 0 0 0 0 0 
    LAYOUTRETURN: 0 0 0 0 0 0 0 0 


NFSv4.1 EXAMPLE 
=============== 
device 130.245.177.235:/nfsdata mounted on /mnt with fstype nfs4 statvers=1.1 
    opts: rw,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,acregmin=3,acregmax=60,acdirmin=30,acdirmax=60,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=130.245.177.234,local_lock=none 
    age: 44 
    impl_id: name='',domain='',date='0,0' 
    caps: caps=0x3ffff,wtmult=512,dtsize=32768,bsize=0,namlen=255 
    nfsv4: bm0=0xfdffbfff,bm1=0xf9be3e,bm2=0x800,acl=0x3,sessions,pnfs=not configured 
    sec: flavor=1,pseudoflavor=1 
    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 
    bytes: 0 0 0 0 0 0 0 0 
    RPC iostats version: 1.0 p/v: 100003/4 (nfs) 
    xprt: tcp 674 0 1 0 0 279772 279771 0 649944 0 5 1711 90409 
    per-op statistics 
      NULL: 0 0 0 0 0 0 0 0 
      READ: 0 0 0 0 0 0 0 0 
      WRITE: 0 0 0 0 0 0 0 0 
      COMMIT: 0 0 0 0 0 0 0 0 
      OPEN: 96612 96612 0 27824256 34007424 13349 16253 32061 
    OPEN_CONFIRM: 0 0 0 0 0 0 0 0 
    OPEN_NOATTR: 0 0 0 0 0 0 0 0 
    OPEN_DOWNGRADE: 0 0 0 0 0 0 0 0 
      CLOSE: 96610 96610 0 19708440 17003360 2936 11082 15386 
     SETATTR: 0 0 0 0 0 0 0 0 
      FSINFO: 1 1 0 168 152 0 0 0 
      RENEW: 0 0 0 0 0 0 0 0 
    SETCLIENTID: 0 0 0 0 0 0 0 0 
    SETCLIENTID_CONFIRM: 0 0 0 0 0 0 0 0 
      LOCK: 0 0 0 0 0 0 0 0 
      LOCKT: 0 0 0 0 0 0 0 0 
      LOCKU: 0 0 0 0 0 0 0 0 
      ACCESS: 16932 16932 0 3183200 2844576 83 1919 2308 
     GETATTR: 67380 67380 0 12128380 15632160 336 8367 10644 
      LOOKUP: 1236 1236 0 247176 167784 7 153 197 
    LOOKUP_ROOT: 0 0 0 0 0 0 0 0 
      REMOVE: 0 0 0 0 0 0 0 0 
      RENAME: 0 0 0 0 0 0 0 0 
      LINK: 0 0 0 0 0 0 0 0 
     SYMLINK: 0 0 0 0 0 0 0 0 
      CREATE: 980 980 0 219516 305760 5 168 197 
     PATHCONF: 1 1 0 164 116 0 0 0 
      STATFS: 0 0 0 0 0 0 0 0 
     READLINK: 0 0 0 0 0 0 0 0 
     READDIR: 0 0 0 0 0 0 0 0 
    SERVER_CAPS: 2 2 0 328 280 0 0 0 
    DELEGRETURN: 0 0 0 0 0 0 0 0 
      GETACL: 0 0 0 0 0 0 0 0 
      SETACL: 0 0 0 0 0 0 0 0 
    FS_LOCATIONS: 0 0 0 0 0 0 0 0 
    RELEASE_LOCKOWNER: 0 0 0 0 0 0 0 0 
     SECINFO: 0 0 0 0 0 0 0 0 
    EXCHANGE_ID: 0 0 0 0 0 0 0 0 
    CREATE_SESSION: 0 0 0 0 0 0 0 0 
    DESTROY_SESSION: 0 0 0 0 0 0 0 0 
     SEQUENCE: 0 0 0 0 0 0 0 0 
    GET_LEASE_TIME: 0 0 0 0 0 0 0 0 
    RECLAIM_COMPLETE: 0 0 0 0 0 0 0 0 
     LAYOUTGET: 0 0 0 0 0 0 0 0 
    GETDEVICEINFO: 0 0 0 0 0 0 0 0 
    LAYOUTCOMMIT: 0 0 0 0 0 0 0 0 
    LAYOUTRETURN: 0 0 0 0 0 0 0 0 
    SECINFO_NO_NAME: 0 0 0 0 0 0 0 0 
    TEST_STATEID: 0 0 0 0 0 0 0 0 
    FREE_STATEID: 0 0 0 0 0 0 0 0 
    GETDEVICELIST: 0 0 0 0 0 0 0 0 
    BIND_CONN_TO_SESSION: 0 0 0 0 0 0 0 0 
    DESTROY_CLIENTID: 0 0 0 0 0 0 0 0 


# vim: tabstop=2:shiftwidth=2:expandtab:foldmethod=indent 

Cũng 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 để đọc thêm.

Các vấn đề liên quan