Linux环境下存储监控工具nfsiostat介绍(3)

  Nfsiostat结合使用IOzone

  为了避免nfsiostat的输出结果全部为0,我们需要在NFS客户端上运行iozone,具体怎么配置不重要,我们主要目的是看nfsiostat在NFS客户端上的输出。

  运行iozone之前,我使用下面的命令先启动nfsiostat:

  [laytonjb@home8 laytonj]$ nfsiostat -k 1

  我使用的参数非常简单:

  ? 我希望以千字节为单位输出(-K)。

  ? 后面的“1”告诉nfsiostat我希望每秒报告一次,直到我人为中断为止。

  由于我还没有启动iozone,第一个输出结果非常无聊。

  [laytonj@home8 laytonj]$ nfsiostat -k 1
  Linux 2.6.18-194.el5 (home8) 12/04/2010 _i686_ (1 CPU)
  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s
  192.168.1.65:/mnt/home1 31077.64 6615356.45 0.00 0.00 29558.11 6614815.04 56400.00 600.00 20100.00
  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s
  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

  注意,所有测量指标的值全部为0意味着NFS客户端上挂在的NFS文件系统没有使用活动。

  下面是运行iozone后nfsiostat的输出结果。

  ...

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 82.62 9830530.47 0.00 0.00 0.00 51328.12 15500.00 0.00 12900.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 13107200.00 0.00 0.00 0.00 870530.47 13700.00 0.00 13700.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 4915200.00 0.00 0.00 0.00 1126400.00 1200.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 24576000.00 0.00 0.00 0.00 19616400.00 21300.00 0.00 21100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1200.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1228800.00 1100.00 0.00 1200.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1228800.00 1200.00 0.00 1200.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1228800.00 1200.00 0.00 1200.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1200.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1228800.00 1100.00 0.00 1200.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1152800.00 1300.00 0.00 1300.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1105200.00 1400.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1208400.00 1100.00 0.00 1200.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1136000.00 1300.00 0.00 1300.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 968400.00 2800.00 0.00 1200.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 11468800.00 0.00 0.00 0.00 229600.00 29800.00 0.00 4100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 14745600.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 3276800.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1100.00 0.00 1100.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 1126400.00 1200.00 0.00 1100.00

  ...

  从第一行返回结果便可以看出有大量的写入操作,可通过“wKB_nor/s”和“wKB_svr/s”列观察(分别对应应用程序写入的KB数和写入到服务器的KB数),通过“ops/s”列可以得知每秒的I/O操作数,通过“wops/s”列得知每秒的写入操作数。

  使用iostat和nfsiostat监控NFS

  使用iostat和nfsiostat的全部意义是监控存储上发生的事情,使用NFS时,iostat允许我们监控NFS服务器和每块独立磁盘的性能,我们使用nfsiostat还可以监控NFS客户端上发生了什么,将所有监控结果结合起来便有很大的参考价值,但遗憾的是,现在只能手工处理。

  你可以在NFS上运行iostat监控存储设备,例如,你可以在你的NFS服务器上运行iostat查看系统上所有可用的设备和分区。

  [root@test64 ~]# iostat -hxm 5

  Linux 2.6.30 (test64) 12/04/2010

  avg-cpu: %user %nice %system %iowait %steal %idle

  0.29 0.02 0.62 0.93 0.00 98.14

  Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await svctm %util

  hda 3.40 0.89 4.94 0.98 0.19 0.01 67.06 0.27 45.55 4.44 2.63

  hda1 0.60 0.00 0.02 0.00 0.00 0.00 47.63 0.00 10.30 9.35 0.02

  hda2 0.09 0.00 0.01 0.00 0.00 0.00 67.29 0.00 10.35 9.97 0.01

  hda3 2.69 0.89 4.90 0.98 0.19 0.01 67.12 0.27 45.74 4.45 2.62

  sda 0.30 0.00 0.03 0.00 0.00 0.00 29.16 0.00 3.62 3.34 0.01

  sda1 0.29 0.00 0.02 0.00 0.00 0.00 36.14 0.00 4.43 3.96 0.01

  sdb 0.25 0.00 0.02 0.00 0.00 0.00 33.88 0.00 4.44 4.42 0.01

  sdb1 0.23 0.00 0.01 0.00 0.00 0.00 54.96 0.00 3.52 3.52 0.00

  sdc 0.07 0.00 0.02 0.00 0.00 0.00 33.07 0.00 5.00 5.00 0.01

  sdd 0.09 247.52 0.04 2.97 0.00 0.98 666.97 0.16 52.45 1.79 0.54

  sdd1 0.07 247.52 0.03 2.80 0.00 0.98 708.08 0.16 55.69 1.90 0.54

  你可以看到所有分区及其性能(在这个例子中,可以看到自启动以来的情况),你可以限制只监控特定的设备/分区,让报告更具可读性。

  当你看到某个分区的负载爬升得非常高时,你可以在客户端上使用nfsiostat找出攻击型NFS客户端(虽然你可能已经知道是谁了),你可以在客户端上使用ssh检查NFS负载,找出有嫌疑的客户端(如观察非常大的读或写操作),例如:

  [root@test64 ~]# ssh laytonj@192.168.1.8 /usr/local/bin/nfsiostat -k 1

  laytonj@192.168.1.8's password:

  Linux 2.6.18-194.el5 (home8) 12/04/2010 _i686_ (1 CPU)

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 32133.69 1320613030.27 0.00 0.00 104036.72 1320612745.12 2500500.00 3200.00 1489400.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

  Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s ops/s rops/s wops/s

  192.168.1.65:/mnt/home1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

  在这个例子中看不到任何实质性的东西,但过程都是这样(只要你可以ssh登录到客户端),如果你有大量的客户端,那你不得不打开许多ssh会话。

  Iostat和nfsiostat结合使用可以更好的监控NFS存储系统,虽然有些过程需要手工处理,但能同时看到服务器和客户端的情况,你可以更快速地找出那些让服务器不堪负荷的攻击性NFS客户端。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24608.html