日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL刷脏页

發布時間:2023/12/20 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL刷脏页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL刷臟頁

InnoDB 在處理更新語句的時候,只做了寫日志這一個磁盤操作。這個日志叫作 redo log(重做日志),在更新內存寫完 redo log 后,就返回給客戶端,本次更新成功。

內存里的數據寫入磁盤的過程,術語就是 flush。

當內存數據頁跟磁盤數據頁內容不一致的時候,我們稱這個內存頁為“臟頁”。內存數據寫入到磁盤后,內存和磁盤上的數據頁的內容就一致了,稱為“干凈頁”

什么情況會引發數據庫的 flush 過程呢?

1、InnoDB 的 redo log 寫滿了。這時候系統會停止所有更新操作,把 checkpoint 往前推進,redo log 留出空間可以繼續寫。

2、系統內存不足。當需要新的內存頁,而內存不夠用的時候,就要淘汰一些數據頁,空出內存給別的數據頁使用。如果淘汰的是“臟頁”,就要先將臟頁寫到磁盤。

3、MySQL認為系統“空閑”的時候。

4、MySQL 正常關閉的情況。這時候,MySQL 會把內存的臟頁都 flush 到磁盤上,這樣下次 MySQL 啟動的時候,就可以直接從磁盤上讀數據,啟動速度會很快。

InnoDB 刷臟頁的控制策略

-- 當刷新臟數據時,控制MySQL每秒執行的寫IO量 select @@innodb_io_capacity

innodb_io_capacity值建議設置成磁盤的 IOPS。磁盤的 IOPS 可以通過 fio 這個工具來測試

fio -filename=$filename -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=500M -numjobs=10 -runtime=10 -group_reporting -name=mytest

控制刷臟頁的速度,會參考哪些因素呢?

InnoDB 的刷盤速度要參考這兩個因素:一個是臟頁比例,一個是redo log寫盤速度。

參數 innodb_max_dirty_pages_pct 是臟頁比例上限,默認值是 75%。InnoDB 會根據當前的臟頁比例(假設為 M),算出一個范圍在 0 到 100 之間的數字,計算這個數字的偽代碼類似這樣:

F1(M) {if M>=innodb_max_dirty_pages_pct thenreturn 100;return 100*M/innodb_max_dirty_pages_pct; }

InnoDB 每次寫入的日志都有一個序號,當前寫入的序號跟 checkpoint 對應的序號之間的差值,我們假設為 N。InnoDB 會根據這個 N 算出一個范圍在 0 到 100 之間的數字,這個計算公式可以記為 F2(N)。F2(N) 算法比較復雜,你只要知道 N 越大,算出來的值越大就好了。

然后,根據上述算得的 F1(M) 和 F2(N) 兩個值,取其中較大的值記為 R,之后引擎就可以按照 innodb_io_capacity 定義的能力乘以 R% 來控制刷臟頁的速度。

InnoDB 會在后臺刷臟頁,而刷臟頁的過程是要將內存頁寫入磁盤。所以,無論是你的查詢語句在需要內存的時候可能要求淘汰一個臟頁,還是由于刷臟頁的邏輯會占用 IO 資源并可能影響到了你的更新語句,都可能是造成你從業務端感知到 MySQL“抖”了一下的原因。

要盡量避免這種情況,你就要合理地設置 innodb_io_capacity 的值,并且 平時要多關注臟頁比例,不要讓它經常接近 75% 。

其中,臟頁比例是通過Innodb_buffer_pool_pages_dirty/Innodb_buffer_pool_pages_total得到的,具體的命令參考下面的代碼:

use performance_schema; select VARIABLE_VALUE from global_status where VARIABLE_NAME = 'Innodb_buffer_pool_pages_dirty'; select VARIABLE_VALUE from global_status where VARIABLE_NAME = 'Innodb_buffer_pool_pages_total'; select (select VARIABLE_VALUE from global_status where VARIABLE_NAME = 'Innodb_buffer_pool_pages_dirty') / (select VARIABLE_VALUE from global_status where VARIABLE_NAME = 'Innodb_buffer_pool_pages_total');

一旦一個查詢請求需要在執行過程中先 flush 掉一個臟頁時,這個查詢就可能要比平時慢了。而 MySQL 中的一個機制,可能讓你的查詢會更慢:在準備刷一個臟頁的時候,如果這個數據頁旁邊的數據頁剛好是臟頁,就會把這個“鄰居”也帶著一起刷掉;而且這個把“鄰居”拖下水的邏輯還可以繼續蔓延,也就是對于每個鄰居數據頁,如果跟它相鄰的數據頁也還是臟頁的話,也會被放到一起刷。

在 InnoDB 中,innodb_flush_neighbors 參數就是用來控制這個行為的,值為 1 的時候會有上述的“連坐”機制,值為 0 時表示不找鄰居,自己刷自己的。

找“鄰居”這個優化在機械硬盤時代是很有意義的,可以減少很多隨機 IO。機械硬盤的隨機 IOPS 一般只有幾百,相同的邏輯操作減少隨機IO就意味著系統性能的大幅度提升。

而如果使用的是 SSD 這類 IOPS 比較高的設備的話,我就建議你把 innodb_flush_neighbors 的值設置成 0。因為這時候 IOPS 往往不是瓶頸,而“只刷自己”,就能更快地執行完必要的刷臟頁操作,減少 SQL 語句響應時間。

在 MySQL 8.0 中,innodb_flush_neighbors 參數的默認值已經是 0 了。

總結

以上是生活随笔為你收集整理的MySQL刷脏页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久婷婷综合色丁香五月 | 免费成人av网址 | 亚洲一级成人 | 中文字幕精品久久久久人妻红杏1 | 人人爽人人澡 | 亚洲经典视频 | 吞精囗交69激情欧美 | 久久久免费看片 | 精品中文字幕在线观看 | 奇米四色网 | 99国产精品视频免费观看一公开 | 久久午夜电影网 | 婷婷狠狠爱| 人人狠狠综合久久亚洲 | 日日日日日日 | 非洲黑人狂躁日本妞 | 两个人做羞羞的视频 | 偷拍视频一区二区 | 激情综合网激情 | 6080av| 日韩最新网址 | 午夜激情av | 国产日韩中文字幕 | 国产一级做a爱免费视频 | 日本在线观看 | 一级日韩毛片 | 国精产品一区一区三区mba下载 | 无码人妻精品一区二区 | 色婷婷777777仙踪林 | 好大好爽视频 | 国产三级国产精品国产专区50 | 91av不卡| 亚洲第一看片 | 午夜av福利 | www.国产精品.com | 搞逼综合网 | 欧美 日韩 人妻 高清 中文 | 中文字幕乱码亚洲无线三区 | 中日韩男男gay无套 人人草人人干 | 成人动漫免费在线观看 | 韩国伦理在线视频 | 亚洲黄片一区 | 亚洲色图美腿丝袜 | 天堂网久久 | 环太平洋3:泰坦崛起 | 欧美三级影院 | 国产欧美日韩在线视频 | 免费毛片视频网站 | 亚洲欧美中文日韩在线 | 午夜久久乐 | 51热门大瓜今日大瓜 | 大陆农村乡下av | 天天躁日日躁狠狠躁欧美 | 少妇全黄性生交片 | 亚洲欧洲国产精品 | 中文字幕在线看高清电影 | 日本成人在线网站 | 99ri视频| 国产日韩欧美视频 | 国产一级二级视频 | 午夜肉伦伦影院 | 日韩成人高清在线 | 久久久久在线观看 | 中文字幕在线日亚洲9 | 秋霞午夜视频 | 最新天堂在线视频 | 日韩电影网址 | 一区三区视频 | 国产高潮在线 | 国产福利视频网站 | 都市豪门艳霸淫美妇 | 午夜毛片在线观看 | 超碰人人人人人人 | 亚洲免费片 | 免费激情片 | 国产99久久久国产精品免费看 | 色婷婷热久久 | 国产精彩视频一区二区 | 亚洲国产精品久久人人爱 | 一区二区三区四区国产精品 | 成人国产精品 | 特级大胆西西4444人体 | 国产超碰精品 | 国产系列精品av | 日韩在线导航 | 亚洲成人高清在线 | chinese麻豆新拍video | 日韩在线中文 | 韩国三级做爰高潮 | 丝袜 亚洲 另类 国产 制服 | 熟妇人妻va精品中文字幕 | 91久久精品日日躁夜夜躁欧美 | 欧美黄色片免费看 | 久热av在线 | 天码人妻一区二区三区在线看 | 风间由美av | 一区二区免费视频 | 日本a级在线 | 麻豆视频免费 |