JPOUG Advent Calendar 2013 の19日目です。
18日目は yoshikaw さんのOracle Databaseを扱う上で知っておきたい変数10選 - Keep It Simple, Stupidでした。
Linux で実際に発行された I/O のサイズを調べる方法を紹介します。
- debugfs をマウントする
[root@yazekats-linux ~]# mount -t debugfs debugfs /sys/kernel/debug
- blktrace で I/O をトレースして blkparse で解析する
[root@yazekats-linux ~]# blktrace -d /dev/sda -o -|blkparse -i - -o blkparse.log ^C [root@yazekats-linux ~]# head -10 blkparse.log 8,0 3 1 0.000000000 3099 A W 60535072 + 8 <- (8,2) 59509024 8,0 3 2 0.000000889 3099 Q W 60535072 + 8 [kworker/3:2] 8,0 3 3 0.000003849 3099 G W 60535072 + 8 [kworker/3:2] 8,0 3 4 0.000006983 3099 I W 60535072 + 8 [kworker/3:2] 8,0 3 5 0.000009268 3099 D W 60535072 + 8 [kworker/3:2] 8,0 2 1 0.001078704 0 C W 60535072 + 8 [0] 8,0 2 2 3.648584179 120 A WS 60535056 + 8 <- (8,2) 59509008 8,0 2 3 3.648584950 120 Q WS 60535056 + 8 [kworker/2:1] 8,0 2 4 3.648586931 120 G WS 60535056 + 8 [kworker/2:1] 8,0 2 5 3.648589190 120 I WS 60535056 + 8 [kworker/2:1]
"+" の後の数字がたぶん I/O サイズ(KB)。I/Oサイズは8KB。たぶん。詳しくは後で調べます(^-^;
諸事情により電車の中で30分ほどで書くことになり、簡単で恐縮です。。。
えっ、Oracle と関係ない?
[yazekats@yazekats-linux ~]$ cat /etc/issue Oracle Linux Server release 6.4 Kernel \r on an \m [yazekats@yazekats-linux ~]$ uname -r 2.6.39-400.17.1.el6uek.x86_64