首頁 > 軟體

XFS引數優化及測試

2020-06-16 17:39:18

(一)測試環境

  • 硬體環境

    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


IT145.com E-mail:sddin#qq.com