ext4は tune2fs(8)で lifetime writesを教えてくれるが、、、
$ sudo tune2fs -l /dev/sda1 | grep ^Lifetime
Lifetime writes: 184 MB
残念ながら nilfs-tune(8)はそのものズバリの出力をしてくれない。
nilfs-tuneの出力をいじってみよう。
Last sequence#がセグメント単位での最新の書き込み番号らしい。
$ sudo nilfs-tune -l /dev/dm-0 | grep '^Last sequence #:' | awk '{print $4}'
4927
$ sudo nilfs-tune -l /dev/dm-0 | grep '^Block size:' | awk '{print $3}'
4096
$ sudo nilfs-tune -l /dev/dm-0 | grep '^# of blocks per segment:' | awk '{print $6}'
2048
492740962048 (bytes) = 38.4 (GB)、ってことだ。
コマンド一発で出るようにしてみましょうか。
$ ./nilfs_lifetimewrites.sh /dev/dm-0
38.4 GB written.
スクリプトはこちら。
#!/bin/sh
TMPDIR=/tmp
TMPFILE=$TMPDIR/tmp-nilfstune.txt
if [ $# -lt 1 ]; then
echo usage: $0 device-name
exit 255
fi
sudo nilfs-tune -l $1 >$TMPFILE
if [ $? -ne 0 ]; then
echo nilfs-tune exited by $?, exiting
exit -1
fi
LASTSEQ=`grep '^Last sequence #:' < $TMPFILE | awk '{print $4}'`
BLKSIZE=`grep '^Block size:' < $TMPFILE | awk '{print $3}'`
BLKASEG=`grep '^# of blocks per segment:' < $TMPFILE | awk '{print $6}'`
TOTALWRITESGB=`echo "scale=1; $LASTSEQ * $BLKSIZE * $BLKASEG /1024 /1024 /1024" | bc`
echo $TOTALWRITESGB GB written.