1分で試せるディスクI/Oチェック

うーむ、ディスクのエイジング的なことがしたいと思って、思いつく限りで1分でかけそうなエイジングスクリプトを書いてみた。
動けばいい適当スクリプトなので、スコープとかその辺はあえて適当で。

これ、意味あるのか・・・・
とりあえず、loadavgはかなり上がるな。

#!/usr/bin/perl

$a = 1;
$b = 1000;

print "test start!\n";

while ($a != $b) {
    print "create 100M file: $a\/$b\n";
    `dd if=/dev/zero of=$a bs=1M count=100`;
    $a++;
}

$a = 1;

while ($a != $b) {
    print "delete: $a\/$b\n";
    `rm -f $a`;
    $a++;
}

print "test finish!\n";

実行するとこんな感じ。

・・・・
create 100M file: 808/1000
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 4.6236 seconds, 22.7 MB/s
create 100M file: 809/1000
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.70688 seconds, 148 MB/s
create 100M file: 810/1000
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.544506 seconds, 193 MB/s
create 100M file: 811/1000
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.553215 seconds, 190 MB/s
create 100M file: 812/1000
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.985928 seconds, 106 MB/s
create 100M file: 813/1000
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 4.80139 seconds, 21.8 MB/s
create 100M file: 814/1000
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 3.33673 seconds, 31.4 MB/s
create 100M file: 815/1000
・・・・

topとかはこんな感じ。

top - 22:35:01 up  8:21, 12 users,  load average: 12.66, 11.31, 9.02
Tasks: 107 total,   2 running, 105 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.7%us,  9.9%sy,  0.0%ni,  0.0%id, 87.4%wa,  0.3%hi,  1.7%si,  0.0%st
Mem:   2059384k total,  2010732k used,    48652k free,     8552k buffers
Swap:        0k total,        0k used,        0k free,  1635688k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
14937 root      18   0  4892 1572 1500 D  2.3  0.1   0:00.07 dd
 5924 root      10  -5     0    0    0 D  1.3  0.0   0:24.13 kjournald

vmstatはこんな感じ。
やばいやばい、むしろCPUのエイジングみたいになってる。
まぁ、気にしない。

# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1 11      0  52596   8668 1635680    0    0 18755 22377  558  599  3 20 34 43  0
 1 11      0  53084   8468 1635028    0    0    12 43928 1148  316  0 53  0 47  0
 1 11      0  52740   8476 1634096    0    0     8 46112 1166  395  1 51  0 48  0
 0 13      0  49024   8432 1635148    0    0     8 69484 1179  275  0 35  0 65  0
 0 13      0  48976   8388 1635080    0    0     0 67948 1133  184  0 10  0 90  0
 0 13      0  48952   8404 1635332    0    0     4 48124 1124  186  0  8  0 92  0
 0 12      0  53596   8420 1631152    0    0     0 63332 1119  177  0  8  0 92  0
 0 13      0  48856   8388 1636116    0    0     4 55344 1138  287  0 10  0 90  0
 0 13      0  49124   8424 1636172    0    0    16 48652 1120  159  0  5  0 95  0
 0 13      0  49144   8456 1636292    0    0     0 65400 1123  174  1 14  0 85  0
 0 13      0  48912   8472 1636480    0    0     0 48112 1127  193  0  7  0 93  0
 0 12      0  53660   8472 1632072    0    0     0 65548 1130  172  0  4  0 96  0
 0 12      0  52984   8432 1633632    0    0     0 54284 1112  169  1  9  0 90  0
 1  9      0  51792   8432 1635556    0    0     8 27924 1129  370  0 34  0 66  0

ふむふむ、やはりloadavgの上昇はディスクのI/Owaitに大きく依存しているように見える。