xfs文件系統優化

某雲一直在xfs做爲其底層文件系統,性能不錯。我本身也試了一下,默認參數下性能不如ext4文件系統。上網找了一些文章,作了一下調優。發現性能日新月異。node

性能的奧祕在於格式化時候的參數:

mkfs.xfs -f -i size=512-l size=128m,lazy-count=1-d agcount=16/dev/sdb1
  • -i size=512 : 默認的值是256KB,這裏的設置是爲了selinux的,這個設置針對inode size,selinux使用xfs的Extend Attribute,首先要寫到inode中,若是容量不夠(默認是256KB的時候就不夠,剛剛多一點點),就寫到block中,這會損失性能,當須要使用selinux的時候。這彷佛對通常用戶沒什麼做用,由於通常用戶都不用selinux的,你們對linux系統的安全性仍是挺信任的,不過,說實話,我不信任,何況RedHat 的FC已經默認配置了selinux,這很好。作了這個改動,方便之後我在系統中配置selinux而不擔憂性能的損失。linux

  • -l size=128m : 注意是小寫的m,不是大寫的。默認值的是10m(bsize=4096 x blocks=2560)。這個值能夠設置成32m(分區容量不小於250M)/64m(分區容量不小於500M)/128m(分區容量不小於700M),對於分區容量的限制,我這裏列出的只是大概,最大可設128m。修改這個參數成128m,能夠顯著的提升xfs文件系統刪除文件的速度,固然還有其它,如拷貝文件的速度。 這個參數須要大內存的支持,內存太少的機器大概不能設置這麼高。(標準是什麼?512M?1G?我不瞭解,因此我上面說要本身實際的測試一下。)安全

  • -l lazy-count=value This changes the method of logging various persistent counters in the superblock. Under metadata intensive workloads, these counters are updated and logged frequently enough that the superblock updates become a serialisation point in the filesystem. The value can be either 0 or 1.With lazy-count=1, the superblock is not modified or logged on every change of the persis-tent counters. Instead, enough information is kept in other parts of the filesystem to be able to maintain the persistent counter values without needed to keep them in the superblock. This gives significant improvements in performance on some configurations. The default value is 0 (off) so you must specify lazy-count=1 if you want to make use of this feature.性能

  • -d agcount=4 :默認值是根據容量自動設置的。能夠設置成1/2/4/16等等,這個參數能夠調節對CPU的佔用率,值越小,佔用率越低。這是理論上的,在個人機器上,agcount=1反而比agcount=2的cpu佔用率還高,我想這是由於個人cpu是雙核的緣由吧。要注意,cpu的佔用率低,那每一秒處理的數據量也會下降一些。我比較了agcount=2和4,發現仍是4比較好。這樣一來,這個參數的設置,就是須要本身去選擇的了。測試

通過以上優化,通過測試,性能有了大幅度提高。優化

相關文章
相關標籤/搜索