MySQL服務(wù)器的SSD性能問(wèn)題分析和測(cè)試詳解
【問(wèn)題】
我們有臺(tái)HP的服務(wù)器,SSD在寫IOPS約5000時(shí),%util達(dá)到80%以上,那么這塊SSD的性能究竟有沒(méi)有問(wèn)題,為解決這個(gè)問(wèn)題做了下面測(cè)試。

【工具】
blktrace是linux下用來(lái)排查IO性能的工具。它可以記錄IO經(jīng)歷的各個(gè)步驟,并計(jì)算出IO請(qǐng)求在各個(gè)階段的消耗,下面是關(guān)鍵的一些步驟:
Q2G – 生成IO請(qǐng)求所消耗的時(shí)間,包括remap和split的時(shí)間;
G2I – IO請(qǐng)求進(jìn)入IO Scheduler所消耗的時(shí)間,包括merge的時(shí)間;
I2D – IO請(qǐng)求在IO Scheduler中等待的時(shí)間;
D2C – IO請(qǐng)求在driver和硬件上所消耗的時(shí)間;
Q2C – 整個(gè)IO請(qǐng)求所消耗的時(shí)間(G2I + I2D + D2C = Q2C),相當(dāng)于iostat的await。
其中D2C可以作為硬件性能的指標(biāo),I2D可以作為IO Scheduler性能的指標(biāo)。
【測(cè)試一、比較HP SSD Smart Path開啟前后SSD的寫入性能】
1、HP SSD Smart Path開啟,SSD控制器Caching關(guān)閉,Cache Ratio: 100% Read / 0% Write
測(cè)試結(jié)果如下,主要關(guān)注D2C(IO請(qǐng)求在SSD上消耗的時(shí)間)的AVG值,約為0.217ms

2、HP SSD Smart Path關(guān)閉,SSD控制器Caching開啟,Cache Ratio: 10% Read / 90% Write
測(cè)試結(jié)果如下,主要關(guān)注D2C(IO請(qǐng)求在SSD上消耗的時(shí)間)的AVG值,約為0.0906ms

【結(jié)論】
前者在硬件上的消耗時(shí)間是后者的約2.4倍,對(duì)于寫入為主的系統(tǒng),建議HP SSD Smart Path關(guān)閉,SSD控制器Caching開啟
【測(cè)試二、比較noop和deadline兩種I/O調(diào)度算法的性能】
目前磁盤的調(diào)度算法有如下四種,我們系統(tǒng)中的配置值為deadline,很多資料上建議SSD配置為noop
1、Anticipatory,適用于個(gè)人PC,單磁盤系統(tǒng);
2、CFQ(Complete Fair Queuing),默認(rèn)的IO調(diào)度算法,完全公平的排隊(duì)調(diào)度算法
3、Deadline,按照截止期限來(lái)循環(huán)在各個(gè)IO隊(duì)列中進(jìn)行調(diào)度
4、noop,簡(jiǎn)單的FIFO隊(duì)列進(jìn)行調(diào)度
下面都在HP SSD Smart Path關(guān)閉的情況下測(cè)試,
1、deadline, 主要關(guān)注G2I和I2D

2、修改為noop

【結(jié)論】
noop的IO Scheduler在等待和消耗的時(shí)間比deadline稍好,但差異不是很大。如果需要評(píng)估,還需要進(jìn)一步詳細(xì)的在各個(gè)場(chǎng)景下的測(cè)試。
下圖是網(wǎng)上資料對(duì)不同調(diào)度算法的測(cè)試比較:

【測(cè)試三、比較這臺(tái)服務(wù)器SSD與相同配置SSD的消耗時(shí)間】
AVG D2C為0.0906ms,0.0934ms,差異不大,說(shuō)明這臺(tái)服務(wù)器的SSD從響應(yīng)時(shí)間上正常

總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
詳解如何用SQL取出字段內(nèi)是json的數(shù)據(jù)
數(shù)據(jù)庫(kù)中會(huì)遇到字段里面存的JSON結(jié)果的數(shù)據(jù),那么如果我們想直接取到JSON里的值該怎么辦呢?其實(shí)SQL自帶的函數(shù)就可解決本文就詳細(xì)的給大家介紹了如何用SQL取出字段內(nèi)是json的數(shù)據(jù),需要的朋友可以參考下2023-10-10
CentOS下將MySQL 5.1升級(jí)到MySQL 5.5的步驟
這篇文章主要介紹了CentOS下將MySQL 5.1升級(jí)到MySQL 5.5的步驟,需要的朋友可以參考下2015-08-08
Mysql設(shè)置主鍵自動(dòng)增長(zhǎng)起始值的方案總結(jié)
在MySQL?中,當(dāng)主鍵定義為自增長(zhǎng)后,這個(gè)主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)定義自動(dòng)賦值,下面這篇文章主要給大家介紹了關(guān)于Mysql設(shè)置主鍵自動(dòng)增長(zhǎng)起始值的相關(guān)資料,需要的朋友可以參考下2022-09-09
django2.2版本連接mysql數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了django2.2版本如何連接mysql數(shù)據(jù)庫(kù),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
MySQL和PolarDB的相同點(diǎn)及不同點(diǎn)解讀
這篇文章主要介紹了MySQL和PolarDB的相同點(diǎn)及不同點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
MySQL中SHOW TABLE STATUS的使用及說(shuō)明
這篇文章主要介紹了MySQL中SHOW TABLE STATUS的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
MySQL修改innodb_data_file_path參數(shù)的一些注意事項(xiàng)
這篇文章主要給大家介紹了關(guān)于MySQL修改innodb_data_file_path參數(shù)的一些注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

