頻繁使用MySQL批糟,磁盤IO高峰或爆滿,innodb_buffer_pool_size解決方案

原因:最近項目優(yōu)化過程中看铆,偶然發(fā)現(xiàn)本地服務器每過10s就會有一次磁盤爆滿的現(xiàn)象跃赚。在我們的項目中發(fā)現(xiàn)本地項目中存在一個用作“同步數(shù)據(jù)”的定時任務每過10s就查詢數(shù)據(jù)庫表,并把這些信息發(fā)送HTTP請求性湿。

方案:頻繁的數(shù)據(jù)庫請求導致本地的服務器每過10s就產(chǎn)生一次高峰纬傲。在優(yōu)化這個定時任務前,了解到MySQL中的innodb_buffer_pool_size參數(shù)肤频,這個參數(shù)用來設(shè)置Innodb緩沖池大小且默認值為128M叹括。

查看了服務器上的MySQL的innodb_buffer_pool_size參數(shù),大小居然只有8M宵荒。汁雷。。

修改

直接說結(jié)論报咳,innodb_buffer_pool_size的值官方建議在32位機器下設(shè)置為2-3.5G侠讯。我們的服務器是16G,本次設(shè)置成了3G暑刃,就已經(jīng)解決了磁盤爆滿問題厢漩。(數(shù)據(jù)量沒有非常大)

下面是官方關(guān)于innodb_buffer_pool_size屬性的原文:

InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes androw data. The bigger you set this the less disk I/O is needed to access data in tables. On a dedicated database server you may set this parameter up to 80% of the machine physical memory size. Do not set it too large, though, because competition of the physical memory may cause paging in the operating system. Note that on 32bit systems you might be limited to 2-3.5G of user level memory per process, so do not set it too high.

方式一、臨時有效(本次啟動)

  • 進入cmd岩臣,輸入mysql -uroot -p溜嗜,輸入密碼登錄MySQL。查看原先緩沖池大屑芑选:
    show variables like 'innodb_buffer_pool_size';


    134217728就是我的my.ini文件(windows系統(tǒng))中設(shè)置的128M
  • 輸入 set global innodb_buffer_pool_size=緩存池大小炸宵。
    這里的單位是B,所以1M是1024 * 1024 * 1 = 1,048,576谷扣,1G是1024 * 1024 * 1024 * 1 = 1,073,741,824土全。如果需要3G空間就是1024 * 1024 * 1024 * 3 = 3221225472

注意:

  • 如果新值小于my.ini中的值,這里不會設(shè)置成功。
  • 值不是innodb_buffer_pool_instances 或者innodb_buffer_pool_chunk_size 倍數(shù)時裹匙,會自動補正野哭。(下面會介紹這兩個參數(shù))
    設(shè)置成10000B,小于my.ini中的值幻件,不會設(shè)置成功

方式二拨黔、永久生效

修改C:\ProgramData\MySQL\MySQL Server 8.0下的my.ini文件。注意ProgramData是隱藏的绰沥。


my.ini文件
  • 注意文件的編碼格式篱蝇,用記事本打開寫可能變成utf-8格式,在網(wǎng)上看見有人說這里用utf-8可能會出現(xiàn)問題徽曲,保險起見還是ANSI格式零截。

拓展

這里還需要注意

  • innodb_buffer_pool_instances

innodb_buffer_pool_instances定義 InnoDB緩沖池的實例數(shù),也就是將innodb_buffer_pool_size分成幾個實例秃臣,官方給出的解釋中涧衙,這個參數(shù)的作用為,
innodb_buffer_pool_instances對于緩沖池在數(shù)千兆字節(jié)范圍內(nèi)的系統(tǒng)奥此,通過減少爭用不同線程對緩存頁面進行讀寫的爭用弧哎,將緩沖池劃分為多個單獨的實例可以提高并發(fā)性。設(shè)置緩沖池大小innodb_buffer_pool_size為1G以上時稚虎,默認值是8撤嫩;1G以下時,默認值是1蠢终。

The number of regions that the InnoDB buffer pool is divided into. For systems with buffer pools in the multi-gigabyte range, dividing the buffer pool into separate instances can improve concurrency, by reducing contention as different threads read and write to cached pages.

  • innodb_buffer_pool_chunk_size

用來定義InnoDB緩沖池大小調(diào)整操作的塊大小序攘,my.ini文件中并沒有此項配置,只能在運行時通過show variables like 'innodb_buffer_pool_chunk_size' 查看寻拂,并在運行時通過set global innodb_buffer_pool_chunk_size=塊大小 來設(shè)置程奠。
官方中的解釋為 innodb_buffer_pool_size / innodb_buffer_pool_chunk_size 不應該大于1000。

官方解釋https://dev.mysql.com/doc/refman/5.7/en/innodb-buffer-pool-resize.html#innodb-buffer-pool-chunk-size

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末祭钉,一起剝皮案震驚了整個濱河市瞄沙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌朴皆,老刑警劉巖帕识,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異遂铡,居然都是意外死亡,警方通過查閱死者的電腦和手機晶姊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門扒接,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事钾怔〖詈簦” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵宗侦,是天一觀的道長愚臀。 經(jīng)常有香客問我,道長矾利,這世上最難降的妖魔是什么姑裂? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮男旗,結(jié)果婚禮上舶斧,老公的妹妹穿的比我還像新娘。我一直安慰自己察皇,他們只是感情好茴厉,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著什荣,像睡著了一般矾缓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稻爬,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天而账,我揣著相機與錄音,去河邊找鬼因篇。 笑死泞辐,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的竞滓。 我是一名探鬼主播咐吼,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼商佑!你這毒婦竟也來了锯茄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤茶没,失蹤者是張志新(化名)和其女友劉穎肌幽,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抓半,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡喂急,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了笛求。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廊移。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡糕簿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狡孔,到底是詐尸還是另有隱情懂诗,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布苗膝,位于F島的核電站殃恒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辱揭。R本人自食惡果不足惜离唐,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望界阁。 院中可真熱鬧侯繁,春花似錦、人聲如沸泡躯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽较剃。三九已至咕别,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間写穴,已是汗流浹背惰拱。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留啊送,地道東北人偿短。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像馋没,于是被迫代替她去往敵國和親昔逗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容