MySQL 調優基礎(三) Linux檔案系統

來源:互聯網
上載者:User

標籤:

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                      asyncthreads throughput            throughput      XFS         ext4        XFS         ext41    1.90/124k    1.41/92k    1.72/112k   1.41/92k2    1.01/64k    1.65/108k    0.97/62k    1.65/108k4    0.27/17k    1.55/102k    0.21/13k    1.55/102k8    0.13/8k     1.45/95k     0.15/9k     1.45/95k16   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                      asyncthreads throughput            throughput     vanilla     patched      vanilla      patched1    1.90/124k   1.83/120k    1.72/112k   1.69/111k2    1.01/64k    2.85/185k    0.97/62k    2.57/168k4    0.27/17k    3.68/241k    0.21/13k    3.41/223k8    0.13/8k     4.42/290k    0.15/9k     4.16/273k16   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中進行。

 

MySQL 調優基礎(三) Linux檔案系統

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.