国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysqldump造成Buffer Pool污染的研究

2024-07-24 12:49:04
字體:
供稿:網(wǎng)友

前言:

最近Oracle MySQL在其官方Blog上貼出了 5.6中一些變量默認(rèn)值的修改。其中innodb_old_blocks_time 的默認(rèn)值從0替換成了1000(即1s)

關(guān)于該參數(shù)的作用摘錄如下:

how long in milliseconds (ms) a block inserted into the old sublist must stay there after its first access before it can be moved to the new sublist. Increasing this value protects against the buffer pool being filled up by data that is referenced only for a brief period, such as during a full table scan.

其實作用就是:減小單次的大批量數(shù)據(jù)查詢(類似于mysqldump的行為)對于BufferPool(下稱BP)的污染。

說到這里就不得不提一下BP的midpoint insert 機制。

下文就將對于這個機制做一定分析和討論。


一、 Buffer Pool 的insert 機制

BP可以被認(rèn)為是一條長鏈表。被分成young 和 old兩個部分,其中old默認(rèn)占37%的大小(由innodb_old_blocks_pct 配置)??拷敹说腜age表示最近被放問??拷捕说腜age表示長時間未被訪問。而這兩個部分的交匯處成為midpoint。每當(dāng)有新的Page需要加載到BP時,該page都會被插入到midpoint的位置,并聲明為old-page。當(dāng)old部分的page,被訪問到時,該page會被提升到鏈表的頂端,標(biāo)識為young。

由于table scan的操作是先load page,然后立即觸發(fā)一次訪問。所以當(dāng)innodb_old_blocks_time =0 時,會導(dǎo)致table scan所需要的page不讀的作為young page被添加到鏈表頂端。而一些使用較為不頻繁的page就會被擠出BP,使得之后的SQL會產(chǎn)生磁盤IO,從而導(dǎo)致響應(yīng)速度變慢。這也就是標(biāo)題中所提到的BP污染。

 

二、 修改innodb_old_blocks_time 的效果

percona之前也做過相關(guān)測試,其結(jié)論是time=0時,正常訪問的吞吐量下降為10%;當(dāng)time=1000時,吞吐量和沒有備份時的性能一致。

是否真是如此呢,我們來親自測試一下。

下面是測試結(jié)果:

其中concurrency代表sysbench中 --num-threads的數(shù)值。

OPT代表該環(huán)境下,沒有mysqldump時的sysbench QPS。

余下兩列分別代表有mysqldump時的sysbench QPS。

ConcurrencyOPTold_time=0old_time=1000
11739418362141
22970336703981
34734756836540
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁陵县| 聂拉木县| 南宁市| 巴楚县| 海宁市| 沙田区| 吉安市| 营山县| 句容市| 桓台县| 乌兰浩特市| 新余市| 黄冈市| 栾城县| 房山区| 色达县| 登封市| 桐庐县| 平潭县| 玉门市| 洪湖市| 襄垣县| 理塘县| 五家渠市| 通许县| 永平县| 法库县| 垦利县| 化州市| 南部县| 始兴县| 霞浦县| 靖江市| 兴安盟| 浦东新区| 大石桥市| 高州市| 绵竹市| 东乡县| 易门县| 塔城市|