欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL服務(wù)器 IO 100%的分析與優(yōu)化方案

 更新時間:2018年10月21日 11:29:11   作者:wangdong  
這篇文章主要給大家介紹了關(guān)于MySQL服務(wù)器 IO 100%的相關(guān)資料,文中通過示例代碼介紹的介紹非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

壓力測試過程中,如果因為資源使用瓶頸等問題引發(fā)最直接性能問題是業(yè)務(wù)交易響應(yīng)時間偏大,TPS逐漸降低等。而問題定位分析通常情況下,最優(yōu)先排查的是監(jiān)控服務(wù)器資源利用率,例如先用TOP 或者nmon等查看CPU、內(nèi)存使用情況,然后在排查IO問題,例如網(wǎng)絡(luò)IO、磁盤IO的問題。 如果是磁盤IO問題,一般問題是SQL語法問題、MYSQL參數(shù)配置問題、服務(wù)器自身硬件瓶頸導(dǎo)致IOPS吞吐率問題。

本文主要給大家介紹的是關(guān)于MySQL服務(wù)器 IO 100%的分析與優(yōu)化方案,下面話不多說了,來一起看看詳細(xì)的介紹吧

【問題】

有臺MySQL 5.6.21的數(shù)據(jù)庫實例以寫入為主,IO %util接近100%

寫入IOPS很高

【分析過程】

1、通過iotop工具可以看到當(dāng)前IO消耗最高的mysql線程

2、查看線程49342的堆棧,可以看到正在進(jìn)行redo log的刷新,對應(yīng)的是9號文件

3、9號文件對應(yīng)的是redo log的第一個文件

為什么mysql進(jìn)程會頻繁的刷新redo log文件,要結(jié)合redolog的刷盤策略來分析,關(guān)鍵是innodb_flush_log_at_trx_commit參數(shù),

默認(rèn)是1,最安全,但在寫壓力大的情況下,也會帶來較大的性能影響,每次事務(wù)提交時MySQL都會把log buffer的數(shù)據(jù)寫入log file,并且flush(刷到磁盤)中去。

結(jié)合這個集群的寫入場景來看,大部分都是小事務(wù)的寫入,每次事務(wù)提交都會觸發(fā)刷盤動作,這種場景下通過增大innodb_log_buffer_size和innodb_log_file_size的優(yōu)化效果不明顯

【優(yōu)化方案】

1、應(yīng)用層面,對于寫壓力大的系統(tǒng),可以將單條的insert語句優(yōu)化為小批量的insert語句,這樣事務(wù)commit的次數(shù)減少,redo log刷盤減少,性能理論上會有提升

2、MySQL層面,對于日志類型的系統(tǒng),如果允許宕機(jī)的情況下少量數(shù)據(jù)丟失,可以將innodb_flush_log_at_trx_commit參數(shù)調(diào)整為2,

當(dāng)設(shè)置為2時,則在事務(wù)提交時只做write操作,只保證寫到系統(tǒng)的page cache,因此實例crash不會丟失事務(wù),但宕機(jī)則可能丟失事務(wù)

在這臺服務(wù)器上測試,將參數(shù)調(diào)整為2時,IO的請求從200M/S降到約10M/S壓力會減少10倍以上

3、系統(tǒng)層面,更換性能更佳的磁盤

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • mysql varchar類型求和實例操作

    mysql varchar類型求和實例操作

    在本文里我們給大家分享了關(guān)于mysql varchar類型求和實例操作以及相關(guān)知識點,需要的朋友們學(xué)習(xí)參考下。
    2019-03-03
  • Mysql的復(fù)合索引如何生效

    Mysql的復(fù)合索引如何生效

    本文主要介紹了Mysql的復(fù)合索引如何生效,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 年底了,你的mysql密碼安全嗎

    年底了,你的mysql密碼安全嗎

    這篇文章主要介紹了MySQL密碼安全的相關(guān)知識,幫助大家更好的使用數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-01-01
  • InnoDB的關(guān)鍵特性-插入緩存,兩次寫,自適應(yīng)hash索引詳解

    InnoDB的關(guān)鍵特性-插入緩存,兩次寫,自適應(yīng)hash索引詳解

    下面小編就為大家?guī)硪黄狪nnoDB的關(guān)鍵特性-插入緩存,兩次寫,自適應(yīng)hash索引詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • MySQL清空所有表的數(shù)據(jù)方法示例

    MySQL清空所有表的數(shù)據(jù)方法示例

    本文主要介紹了MySQL清空所有表的數(shù)據(jù)方法示例,要清空MySQL數(shù)據(jù)庫中所有表的數(shù)據(jù),但保留表結(jié)構(gòu),下面就介紹了幾種常用的方法,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • MYSQL之on和where的區(qū)別解讀

    MYSQL之on和where的區(qū)別解讀

    這篇文章主要介紹了MYSQL之on和where的區(qū)別解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MySQL自增列插入0值的解決方案

    MySQL自增列插入0值的解決方案

    基于業(yè)務(wù)邏輯的要求,需要在MySQL的自增列插入0值,針對此需求,本文給予詳細(xì)的解決方案,感興趣的你可以參考下哈,希望可以幫助到你
    2013-03-03
  • Mysql一些復(fù)雜的sql語句(查詢與刪除重復(fù)的行)

    Mysql一些復(fù)雜的sql語句(查詢與刪除重復(fù)的行)

    這篇文章主要介紹了Mysql一些復(fù)雜的sql語句(查詢與刪除重復(fù)的行),需要的朋友可以參考下
    2017-05-05
  • MySQL連接池DataSource的使用及實踐

    MySQL連接池DataSource的使用及實踐

    DruidDataSource作為一款優(yōu)秀的數(shù)據(jù)庫連接池組件,不僅提供了高效的連接管理,還包含了豐富的監(jiān)控和診斷功能,本文主要介紹了MySQL連接池DataSource的使用及實踐,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07

最新評論