XFSパラメータの最適化とテスト


(一)テスト環境

  • ハードウェア環境InspurNF 5270 M 3,CPU E [email protected](2Sockect * 8Core * 2HT) 8 * 16GB of [email protected] 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

  • (二)システム構成

  • システムパーティションテストは、テストパーティション/sdm 1で行われ、デフォルトでは外部ログは使用されません.外部ログは、外部ログパーティションのテスト時にのみ比較テスト項目として使用されます.
  • その他の構成はCPU frequency/voltage scalingシステムを閉じてテキストモードで動作し、Xグラフィックインタフェース
  • を起動しない.

    (三)パラメータ調整及び結論分析


    agcount


    合計5組のテスト、デフォルト、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よりやや優れていることがわかります.ハードディスク(HDD)にバッテリバックアップがある場合は、writebackやorderedを大きく使用することもできます.

    journal_dev


    テストグループ1:^journal_dev
    $ mkfs.xfs -f /dev/sdm1
    $ mount /dev/sdm1 /mnt
    $ filebench
    filebench> load fileserver
    filebench> set $dir=/mnt/test
    filebench> run 60
    

    テストグループ2: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
    テスト1:barrier
    $ mount /dev/sdm1 /mnt
    

    テスト2: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


    テスト1:reltime
    $ mount /dev/sdm1 /mnt
    $ filebench
    filebench> load filemicro_seqread
    filebench> set $dir=/mnt/test
    filebench> run 60
    

    テスト2: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