程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL 調優基礎(三) Linux文件系統,mysql調優

MySQL 調優基礎(三) Linux文件系統,mysql調優

編輯:MySQL綜合教程

MySQL 調優基礎(三) Linux文件系統,mysql調優


Linux的文件系統有點像MySQL的存儲引擎,它支持各種各樣的文件系統。它最上層是通過 virtual files system虛擬文件系統作為一個抽象接口層來對外提供調用的。然後下層的各種文件系統實現這些調用接口就行了。

1. Linux 中的 日志文件系統和非日志文件系統

文件內容的修改涉及到兩部分:實際文件內容的修改 和 文件元(metadata)信息的修改。所以在修改一個成功之後,修改另一個之前,此時系統崩潰,就會導致兩者的不一致。所以提出了日志文件系統的概念。

所謂的日志文件系統(Journaling file system),就是在實際修改文件內容和文件元信息之前,將他們的修改先寫到一個日志中(journal log)。這樣的話,如果發生系統崩潰,就可以使用日志進行恢復。當然,寫日志會對文件系統的性能有一定的影響。除了ext2之外,其它文件系統幾乎都是日志文件系統。

日志文件系統的處理過程是:1)先寫日志;2)然後寫實際的文件系統;3)刪除日志;

日志文件系統又可以分成三種類型:

1)日志模式(journal): 將所有的元數據和數據改變均寫入日志,對性能影響最大;

2)預定模式(ordered): 只記錄元數據的變化, 在數據寫入磁盤後再修改元數據,對性能影響中等;

3)寫回模式(writeback): 只記錄元數據的修改變化,對數據修改順序無要求,對性能影響最小;

我們可以在/etc/fstab 文件中修改文件系統的日志模式。

/dev/sdb1 /testfs ext3 defaults,data=writeback 0 0

Linux 常用文件系統:

ext4, ext4, XFS, ReiserFS, JFS

其中最常用的是 ext4, XFS. 其中redhat7/centos7將XFS作為默認的文件系統。在最新內核的測試中XFS性能也明顯超過ext4。所以對於mysql服務器,最好選擇使用 XFS 文件系統

關於 ssd上的ext4和xfs有一個比較:

https://www.percona.com/blog/2012/03/15/ext4-vs-xfs-on-ssd/

在rhel6.4之前ext4性能比xfs好,因為xfs有lock爭用的bug。但是6.4開始,xfs的bug被fix了。所以xfs性能比ext4好。

在xfs的鎖爭用bug沒有解決時:

    sync                      async
threads throughput            throughput
      XFS         ext4        XFS         ext4
1    1.90/124k   1.41/92k     1.72/112k   1.41/92k
2    1.01/64k    1.65/108k    0.97/62k    1.65/108k
4    0.27/17k    1.55/102k    0.21/13k    1.55/102k
8    0.13/8k     1.45/95k     0.15/9k     1.45/95k
16   0.12/7k     1.45/95k     0.12/7k     1.45/95k 

It’s pretty clear from these results that lock contention is killing XFS as the thread count grows. ext4 performance shows that it uses exclusive locking as well, but it is not degrading like XFS is due to different lock types being used.

但是當xfs的鎖爭用bug解決之後:

    sync                      async
threads throughput            throughput
     vanilla     patched      vanilla      patched
1    1.90/124k   1.83/120k    1.72/112k   1.69/111k
2    1.01/64k    2.85/185k    0.97/62k    2.57/168k
4    0.27/17k    3.68/241k    0.21/13k    3.41/223k
8    0.13/8k     4.42/290k    0.15/9k     4.16/273k
16   0.12/7k     4.95/325k    0.12/7k     4.86/319k

Throughput scales with thread count – each thread runs at 100% CPU utilsation, and XFS gets up to 3x as much throughput as ext4 does. So, basically, XFS is still the file system you want for direct IO。

掛在文件時的優化(noatime,nodiratime):

mount –t ext4 –o rw,noatime,nodiratime /dev/sda6 /data

noatime 會有0-10%的性能提升,一般平均會有3%的性能提升。

noatime:

Do not update inode access times on this filesystem (e.g, for faster access on the news spool to speed up news servers).

nodiratime:

Do not update directory inode access times on this filesystem.

noatime,nodiratime的配置也可以在/etc/fstab中進行。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved