(一)测试环境
-
硬件环境
Inspur NF5270M3, CPU E5-2650 v2@2.60GHz(2Sockect * 8Core * 2HT)
8 * 16GB of DDR3@1.33G RAM (NUMA)
ASPEED Graphics Family (rev 21)(used in text-only mode)
HGST HUS724030ALA640 7200 RPM 2.7TB SATA HDD
-
软件环境
操作系统:CentOS Linux release 7.1.1503
kernel版本:3.10.0-229.el7.x86_64
(二)系统配置
-
系统分区
测试均在测试分区/sdm1上进行,默认不采用外部日志。
外部日志仅在测试外部日志分区时作为对比测试项。
硬件环境
Inspur NF5270M3, CPU E5-2650 v2@2.60GHz(2Sockect * 8Core * 2HT)
8 * 16GB of DDR3@1.33G RAM (NUMA)
ASPEED Graphics Family (rev 21)(used in text-only mode)
HGST HUS724030ALA640 7200 RPM 2.7TB SATA HDD
软件环境
操作系统:CentOS Linux release 7.1.1503
kernel版本:3.10.0-229.el7.x86_64
-
系统分区
测试均在测试分区/sdm1上进行,默认不采用外部日志。
外部日志仅在测试外部日志分区时作为对比测试项。
-
其他配置
关闭CPU frequency/voltage scaling
系统工作在文本模式,没有启动X图形界面
(三) 参数调优及结论分析
agcount
共五组测试,默认地,agcount=4
$ mkfs.xfs -f -d agcount=2 /dev/sdm1
$ mkfs.xfs -f -d /dev/sdl1
$ mkfs.xfs -f -d agcount=8 /dev/sdm1
$ mkfs.xfs -f -d agcount=16 /dev/sdm1
$ mkfs.xfs -f -d agcount=32 /dev/sdm1
$ mount /dev/sdm1 /mnt
[root@localhost ~]# filebench
filebench> load fileserver
filebench> set $dir=/mnt/test
filebench> run 60
采用fs_mark这个测试工具,测试写文件系统的速度。
fs_mark -n 10000 -s 100 -L 1 -S 0 -D 100 -N 100 -d /mnt/test -t 32
如图,可以看到写journal模式最差,writeback略好于ordered。如果你的硬盘有电池备份,你大可使用writeback,或者ordered也可以。
journal_dev
测试组一:^journal_dev
$ mkfs.xfs -f /dev/sdm1
$ mount /dev/sdm1 /mnt
$ filebench
filebench> load fileserver
filebench> set $dir=/mnt/test
filebench> run 60
测试组二:journal_dev
$ mkfs.xfs -l logdev=/dev/sdk1,size=65536b -f /dev/sdm1
$ mount -o logdev=/dev/sdk1 /dev/sdm1 /mnt
$ xfs_info /dev/sdm1
log =external bsize=4096 blocks=65536, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
$ filebench
filebench> load fileserver
filebench> set $dir=/mnt/test
filebench> run 60
从测试结果来看,外部设备是普通HDD的话,对性能提升不大,推荐使用SSD/Flash设备作为外部设备。
barrier
/dev/sdm1 on /mnt type xfs
agcount = 4
测试一:barrier
$ mount /dev/sdm1 /mnt
测试二:nobarrier
$ mount -o nobarrier /dev/sdm1 /mnt
fs_mark,32个线程(-t 32),fsync(打开)
fs_mark -n 10000 -s 100 -L 1 -S 1 -D 100 -N 100 -d /sdl1 -t 32
有电池备份可以使用nobarrier选项以提高性能。
noatime
测试一:reltime
$ mount /dev/sdm1 /mnt
$ filebench
filebench> load filemicro_seqread
filebench> set $dir=/mnt/test
filebench> run 60
测试二:noatime
$ mount -o noatime /dev/sdm1 /mnt
$ filebench
filebench> load filemicro_seqread
filebench> set $dir=/mnt/test
filebench> run 60
对文件系统读操作进行优化,不记录读文件的访问时间,可以看到在小文件顺序读测试中,效果明显,noatime能减轻读操作对磁盘的频繁写入。
其他选项
block-size
logbufs
logbsize
lazy-count
sunit
swidth
Swalloc
O_DIRECT
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-06/132384.htm