2.2 inode size

  这是一个逻辑概念,即一个inode所对应的文件相应占用多大物理空间。mkfs.ext3 -i指定,可用文件系统文件大小平均值来设定,可减少磁盘寻址和元数据操作时间。

  2.3 reserved block

  mkfs.ext3 -m指定,缺省为5%,可调小该值以增大部分可用存储空间。

  2.4 disable journal

  对数据安全要求不高的应用(如web cache),可以关闭日志功能,以提高I/O性能。

  tune2fs -O^has_journal /dev/sdb

  3、mount参数

  3.1 noatime, nodirtime

  访问文件目录,不修改访问文件元信息,对于频繁的小文件负载,可以有效提高性能。

  3.2 async

  异步I/O方式,提高写性能。

  3.3 data=writeback (if journal)

  日志模式下,启用写回机制,可提高写性能。数据写入顺序不再保护,可能会造成文件系统数据不一致性,重要数据应用慎用。

  3.4 barrier=0 (if journal)

  barrier=1,可以保证文件系统在日志数据写入磁盘之后才写commit记录,但影响性能。重要数据应用慎用,有可能造成数据损坏。

  4、小结

  以/dev/sdb为例,优化操作方法如下,参数请自行调整。

  sdparm -s WCE=1, RCD=0 -S /dev/sdb
  echo deadline > /sys/block/sdb/queue/scheduler
  echo 500 > /sys/block/sdb/queue/iosched/read_expire
  echo 1000 > /sys/block/sdb/queue/iosched/write_expire
  blockdev --setra 256 /dev/sdb

  mkfs.ext3 -b 4096 -i 16384 -m 2 /dev/sdb1
  tune2fs -O^has_journal /dev/sdb1

  mount /dev/sdb1 /cache1 -o defaults,noatime,nodirtime,async,data=writeback,barrier=0 (if with journal)
  mount /dev/sdb1 /cache1 -o defaults,noatime,nodirtime,async (if without journal)