内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

MySQL中Innodbpageclean線程基礎(chǔ)知識有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹“MySQL中Innodb page clean線程基礎(chǔ)知識有哪些”,在日常操作中,相信很多人在MySQL中Innodb page clean線程基礎(chǔ)知識有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL中Innodb page clean線程基礎(chǔ)知識有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創(chuàng)新互聯(lián)建站服務(wù)項目包括陽原網(wǎng)站建設(shè)、陽原網(wǎng)站制作、陽原網(wǎng)頁制作以及陽原網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,陽原網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到陽原省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

一、page clean線程概念

Innodb中page clean線程將臟數(shù)據(jù)寫入到磁盤,臟數(shù)據(jù)寫盤后相應(yīng)的redo就可以覆蓋,然后達到redo循環(huán)使用的目的。在5.7中參數(shù)可以開啟多個page clean線程服務(wù)于多個innodb buffer實例如下:

The innodb_page_cleaners default value was
changed from 1 to 4 in MySQL 5.7. If the number of page cleaner threads exceeds the numberof buffer pool instances, innodb_page_cleaners is automatically set to the same value asinnodb_buffer_pool_instances.

實際上在內(nèi)部實現(xiàn)中如果page clean線程為4個那么包含一個協(xié)調(diào)工作線程和三個工作線程,這個協(xié)調(diào)工作線程也要完成一部分工作。在MySQL中我們可以通過語句查看到這些工作線程:

|     17 |        57982 | innodb/page_cleaner_thread      |    NULL | BACKGROUND | NULL   | NULL         ||     18 |        57983 | innodb/page_cleaner_thread      |    NULL | BACKGROUND | NULL   | NULL         ||     19 |        57984 | innodb/page_cleaner_thread      |    NULL | BACKGROUND | NULL   | NULL         ||     20 |        57985 | innodb/page_cleaner_thread      |    NULL | BACKGROUND | NULL   | NULL         |

實際上在我淺析分析中發(fā)現(xiàn),所有的工作線程都是不斷輪序每一個和buffer instance對應(yīng)的槽(slot),直到所有的buffer instance都已經(jīng)進行了刷臟工作為止,并沒有固定那個工作線程服務(wù)于那個buffer instance實例。

二、刷新方式

總的來說page clean線程刷新的方式分為三種如下:

1、 活躍刷新

一般來講我們線上的數(shù)據(jù)庫一般都處于活躍狀態(tài),只要有DML/DDL等用到語句都會處于活躍狀態(tài),但是SELECT不包含在活躍狀態(tài)下。這種狀態(tài)下刷新會開啟一個協(xié)調(diào)工作線程和多個工作線程同時工作,這種狀態(tài)其刷新的塊數(shù)算法為(page_cleaner_flush_pages_recommendation函數(shù)):

  • (根據(jù)參數(shù)計算出來的頁數(shù)量 +以往每秒刷新頁的數(shù)量+根據(jù)target lsn 計算出來的一個需要刷新的塊數(shù))/3

實際上這里需要關(guān)注的就是(根據(jù)參數(shù)計算出來的頁數(shù)量),算法大概如下(af_get_pct_for_dirty函數(shù)):

如果innodb_max_dirty_pages_pct_lwm沒有開:
       如果臟數(shù)據(jù)比率大于等于innodb_max_dirty_pages_pct的設(shè)置:
                則返回100%
如果innodb_max_dirty_pages_pct_lwm開啟:
        如果臟數(shù)據(jù)比率大于等于innodb_max_dirty_pages_pct_lwm:
                  則返回(臟數(shù)據(jù)比率*100)/(innodb_max_dirty_pages_pct+1)這樣一個百分比

我們計上面的百分比為A,除了百分比A還和innodb_adaptive_flushing、innodb_adaptive_flushing_lwm計算出來的百分比有關(guān),我們記做B(af_get_pct_for_lsn函數(shù)計算),但是由于參數(shù)innodb_cleaner_lsn_age_factor默認設(shè)置為high_checkpoint,所以這個百分比比較小,具體算法見后文,其最后取值

  • 根據(jù)參數(shù)計算出來的頁數(shù)量 = MAX(A,B)*innodb_io_capacity

2、空閑刷新

一般情況下除了活躍刷新就是空閑刷新,空閑的情況下因為服務(wù)器IO應(yīng)該比較空閑,所以Innodb使用協(xié)調(diào)工作線程本身進行刷新,刷新的塊數(shù)計算比較簡單就是innodb_io_capacity設(shè)置的值。

3、 同步刷新

同步刷新則是堵塞刷新,所有需要寫臟數(shù)據(jù)庫的用戶線程都會堵塞,這是很嚴重的情況。在checkpoint的時候
會檢查或者DML語句執(zhí)行過程中都會檢查redo是否處于一個安全的位置,這是調(diào)用log_free_check函數(shù)進行,如果認為臟的塊數(shù)太多,redo已經(jīng)處于不安全的位置(log_checkpoint_margin),那么同步刷新會被喚醒。

關(guān)于這部分在源碼部分還會提到。

三、關(guān)于一個警告

警告如下:

page_cleaner: 1000ms  intended loop took **ms. The settings might not be optimal.((flushed="**" , during the time.)

實際上這個警告來自于兩次刷新時間的檢測:

  • 本次刷新時間 - 上次刷新時間 > 1秒(睡眠時間)+3秒 則報警告

這個警告一般是IO能力不足,或者參數(shù)不夠優(yōu)化的結(jié)果,有了上面的基礎(chǔ)我們知道這里應(yīng)該做如下操作:

  • innodb_io_capacity 應(yīng)該降低

  • innodb_max_dirty_pages_pct 應(yīng)該降低

  • innodb_max_dirty_pages_pct_lwm 如果設(shè)置了應(yīng)該考慮降低

    • innodb_io_capacity_max 考慮降低涉及到上面說的百分比B的計算(af_get_pct_for_lsn函數(shù))

降低的目的在于減少每次刷新的量,讓每次刷新塊數(shù)更加平均。從而避免page clean 線程爆發(fā)性的刷新臟數(shù)據(jù)庫,從而堵塞IO通道。如果慢慢調(diào)整后還是不行則考慮IO確實扛不住了。

到此,關(guān)于“MySQL中Innodb page clean線程基礎(chǔ)知識有哪些”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

文章名稱:MySQL中Innodbpageclean線程基礎(chǔ)知識有哪些-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.rwnh.cn/article20/ceiijo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站企業(yè)網(wǎng)站制作、域名注冊、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
尉犁县| 迭部县| 肇东市| 台中市| 罗江县| 宜兰县| 安阳市| 弋阳县| 玉溪市| 东莞市| 武清区| 益阳市| 宿松县| 内江市| 都昌县| 灵山县| 兴山县| 泰宁县| 白银市| 五指山市| 淮阳县| 于都县| 玉林市| 沙河市| 宜宾县| 唐山市| 沈丘县| 利津县| 临西县| 张家川| 宣化县| 阿鲁科尔沁旗| 界首市| 漯河市| 巴彦县| 方城县| 镇巴县| 讷河市| 法库县| 石泉县| 萍乡市|