文章图片标题

XFS参数优化及测试

分类:linux系统 作者:为者常成 评论:0 点击: 388 次 日期:2016-06-29


(一)测试环境

  • 硬件环境

    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

  • 软件环境

    操作系统: Linux release 7.1.1503
    kernel版本:3.10.0-229.el7.x86_64

(二)系统配置

  • 系统分区

    测试均在测试分区/sdm1上进行,默认不采用外部日志。
    外部日志仅在测试外部日志分区时作为对比测试项。

udast

  • 其他配置

    关闭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 ~]# filebenchfilebench> load fileserverfilebench> set $dir=/mnt/testfilebench> run 60

udast

采用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也可以。
udast

journal_dev

测试组一:^journal_dev

$ mkfs.xfs -f /dev/sdm1$ mount /dev/sdm1 /mnt$ filebenchfilebench> load fileserverfilebench> set $dir=/mnt/testfilebench> 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$ filebenchfilebench> load fileserverfilebench> set $dir=/mnt/testfilebench> run 60

从测试结果来看,外部设备是普通HDD的话,对性能提升不大,推荐使用SSD/Flash设备作为外部设备。
udast

barrier

/dev/sdm1 on /mnt type xfs
agcount = 4

测试一:barrier

$ mount /dev/sdm1 /mnt

测试二:nobarrier

$ mount -o nobarrier /dev/sdm1 /mnt

udast
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$ filebenchfilebench> load filemicro_seqreadfilebench> set $dir=/mnt/testfilebench> run 60

测试二:noatime

$ mount -o noatime /dev/sdm1 /mnt$ filebenchfilebench> load filemicro_seqreadfilebench> set $dir=/mnt/testfilebench> run 60

对文件系统读操作进行优化,不记录读文件的访问时间,可以看到在小文件顺序读测试中,效果明显,noatime能减轻读操作对磁盘的频繁写入。
udast

其他选项

block-size
logbufs
logbsize
lazy-count
sunit
swidth
Swalloc
O_DIRECT

更多内容请长按二维码关注(更有不定期发红包活动吆^0^):
致儒先生

转载自:http://www.linuxidc.com/Linux/2016-06/132384.htm




声明: 除非注明,本文属( 为者常成 )原创,转载请保留链接: http://www.tomrrow.com/archives-7379.html