Ubuntu 12.04でデフラグする(e4defrag編)
※2012年9月28日、間違えていた部分を修正。Thanks!、id:omasanoriさん。
Ubuntu 12.04からe4defragというext4用のデフラグツールが利用できるようになった。
$ e4defrag Usage : e4defrag [-v] file...| directory...| device... : e4defrag -c file...| directory...| device...
デバイスも対象に出来るらしい。
-vオプションを付けると、extentsがいくつに減ったか表示される。
-cは断片化状況を表示するオプションで、sudoと-vと一緒に使う。
e4defragはfake-defragと同じくfallocateを使用している。Ubuntu 12.04では11.10にあったfallocateのバグは修正されているようだが、精度が11.04の頃並に低下しているので、断片化を完全に解消することは難しいような気がする。
-cを付けてファイルを対象に実行すると、次のように表示される。
$ sudo e4defrag -cv ubuntu-12.04-beta2-desktop-amd64.iso.bak <File> [ext 1]: start 36286464: logical 0: len 12288 [ext 2]: start 36319232: logical 12288: len 2048 ※長いので省略 [ext 30]: start 36945920: logical 176128: len 2048 [ext 31]: start 36944933: logical 178176: len 843 Total/best extents 31/1 Average size per extent 23099 KB Fragmentation score 0 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag] This file (ubuntu-12.04-beta2-desktop-amd64.iso.bak) does not need defragmentation. Done.
断片化の数スコアが0〜30、31〜55だとデフラグの必要が無く、56以上だとデフラグが必要と言われるらしい。
それをデフラグするとこうなる。
$ sudo e4defrag -v ubuntu-12.04-beta2-desktop-amd64.iso.bak ext4 defragmentation for ubuntu-12.04-beta2-desktop-amd64.iso.bak [1/1]ubuntu-12.04-beta2-desktop-amd64.iso.bak: 100% extents: 31 -> 25 [ OK ] Success: [1/1]
extentsの数が31から25に減った。なんという低性能。無いよりマシだけど、これはひどいと言わざるを得ない。