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

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            throughputXFS         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            throughputvanilla     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中進行。

轉載于:https://www.cnblogs.com/zengkefu/p/5683679.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457574.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457574.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457574.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 經典類和新式類

DAY 12. python新式類和舊式類 繼承自object基類的類叫做新式類,否則叫做舊式類,python3中的類默認是新式類,之前版本默認是舊式類 rootkail:~# python python 2.7.15 (default,Jul 28 2018,11:29:29) [GCC 8.1.0] on linux2 Type "he…

Why does pthread_cond_signal not work?【轉】

轉自:http://stackoverflow.com/questions/16819169/why-does-pthread-cond-signal-not-work# 0 down vote favorite I am currently learing all around POSIX threads (pthread). I now have created a simple program which increased a shared value by 7 until…

Android開發技術周報 Issue#72

新聞 Android N 最初預覽版:開發者 API 和工具教程 Gradle依賴的統一管理 理解Java垃圾回收機制 淺談 Android 編程思想和架構 由Android 65K方法數限制引發的思考 Android音頻開發(1):基礎知識 Android音頻開發(…

python 單例模式的四種實現方法

DAY 13. 單例設計 13.1 什么是單例設計 一個類每次實例化返回的都是同一個對象,這種設計模式叫做單例設計,這個類叫做單例類 13.2 實現單例設計的方法 13.2.1 重寫__new__() class Foo:def __new__(cls,*args, **kwargs):# 如果是第一次實例化&…

Redis3.2.5部署(單節點)

1.安裝jdk1.8 [rootsht-logstash-01 ~]# cd /usr/java/ [rootsht-logstash-01 java]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicenseaccept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111…

字節跳動 設計模式 pdf_憑這份pdf我拿下了美團、字節跳動、阿里、小米等大廠的offer...

關于程序員,除了做項目來提高自身的技術之外,還有一種提升自己的專業技能就是:多!看!書!小編整理出一篇Java進階架構師之路的核心知識,同時也是面試時面試官必問的知識點,篇章也是包…

B. One Bomb (#363 Div.2)

B. One Bombtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a description of a depot. It is a rectangular checkered field of n??m size. Each cell in a field can be empty (".") or…

力扣交替打印FooBar

這道題要注意的是兩個線程喚醒和等待的順序,應為第一個線程會比第二個線程更早結束,所以如果第一個線程已經結束,而第二個線程還在等待被喚醒,那第二個線程會一直等待下去,因此第一個線程要先等待后喚醒,這…

項目開發容易出錯情況統計

2016年11月17日 11:30:45 星期四 1.適配: a) APP彈窗大屏幕適配(例如, 是否居中) 2.按鈕狀態: a) 按鈕點擊后沒有disable 如果新頁面加載卡頓導致用戶多次點擊,生成多次請求 b) 按鈕disable后什么時候enabl…

python會不會出4_無極4網人生苦短,Python會不會被取代?國外網友

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。人生苦短,我該不該選擇Python?編程語言幾年一變樣,榜單之爭也是愈演愈烈,還架不住時不時殺出個黑馬……而對于Python,自2010年初以來一直蓬…

android 音頻播放總結 soundlPool,MediaPlay

soundlPool 用于小音頻的播放多個同時播放。 使用步驟: 步驟一: 首先下載音頻文件可以將其放入assets文件夾下或者res下的raw文件夾下,區別在于assets下可以再新建文件夾而raw不行,assets內部單個文件超過1m時可能存在bug而raw不會…

文本分析軟件_十大針對機器學習的文本注釋工具與服務,你選哪個?

房地產和鍵【51CTO.com快譯】目前,從搜索引擎與情感分析,到虛擬助手與聊天機器人,機器學習應用場景中的許多研究領域,都需要通過文本注釋工具與服務來提供準確性。在AI研究與開發行業中,發現或創建可注釋的數據對于項目…

sqlite創建表

create table bike (id varchar(6) primary key, password char(6));

python 垃圾回收機制

DAY 18. python垃圾回收機制 python GC主要有三種方式 引用計數標記清除分代回收 其中,以引用計數為主。 18.1 引用計數(Reference Counting) 《尋夢環游記》中說,人一生會經歷兩次死亡,一次是肉體死的時候&#…

曲線連接線_荷重位移曲線儀操作使用注意事項-荷重位移曲線儀廠家

荷重位移曲線儀廣泛適用于各種按鍵及開關、DOME片、按鍵、微力彈片、硅膠按鍵、汽車開關之荷重-行程測定;Windows中英文雙語軟件,操作簡單方便,軟件流暢穩定,所有測試資料(測試條件,曲線,數據結果&#xff…

進程調度

1、策略 策略決定調度程序在何時讓什么進程運行。調度器的策略往往決定系統的整體印象,并且,還要負責優化使用處理器時間。 1.1 I/o消耗型和處理器消耗型。 進程可以被分為I/O消耗型和處理器消耗型。前者指進程的大部分時間用來提交I/O請求或者等待I/O請…

Django,Ajax,Vue實現文章評論功能

Django評論 評論復雜的地方在于需要實現點擊提交評論后評論內容需要立刻出現在下面,還要保持頁面位置不變,所以提交后不能整體刷新頁面,因為刷新以后頁面肯定在最上面,而評論一般都在最下面,所以要用到Ajax 整個過程用…

回歸分析什么時候取對數_冬蜜什么時候取,冬天取蜂蜜的方法

大家好,我現在分享的是,在冬天是在什么時候取蜜!冬天在我們南方,取蜜時間是十一月到十二月的時候,只要溫度達到15度以上,蜂蜜封蓋了就可以取蜜了,并且在冬天我們只能取一次,最晚取蜜…

Opencv與dlib聯合進行人臉關鍵點檢測與識別

前言 依賴庫:opencv 2.4.9 /dlib 19.0/libfacedetection 本篇不記錄如何配置,重點在實現上。使用libfacedetection實現人臉區域檢測,聯合dlib標記人臉特征點,最后使用opencv的FaceRecognizer實現人臉識別。 準備工作 1、配置好Op…

Category 的一些事

來源:伯樂在線 - Tsui YuenHong 鏈接:http://ios.jobbole.com/90422/ 點擊 → 申請加入伯樂在線專欄作者 新增實踐部分:偏方 Hook 進某些方法來添加功能 Category – 簡介 Category(類別)是 Objective-C 2.0 添加的新特…