華為云計算 云知識 MySQL數(shù)據(jù)庫頻繁出現(xiàn)OOM問題該如何化解
MySQL數(shù)據(jù)庫頻繁出現(xiàn)OOM問題該如何化解

公司一些數(shù)據(jù)庫開始出現(xiàn)不規(guī)律的OOM( “out of memory” ,超出內(nèi)存空間,即內(nèi)存不足。),好幾次出現(xiàn)業(yè)務(wù)不可用場景,而且時長都超過半小時,莫著急,小編今天帶您快速了解,MySQL數(shù)據(jù)庫頻繁出現(xiàn)OOM問題該如何化解。

MySQL數(shù)據(jù)庫頻繁出現(xiàn)OOM問題該如何化解

大神:你把7天以內(nèi)的內(nèi)存使用歷史記錄說一下。

小明:這7天的內(nèi)存持續(xù)增高。

大神:首先,你使用MySQL自身提供的performance_schema,分析哪塊內(nèi)存區(qū)域消耗最大且持續(xù)增長;

其次,看看最 近是否有業(yè)務(wù)變更,以及新模塊涉及的語句是什么。

小明:大神,根據(jù)你的建議,我們找到一個重大突破口,發(fā)現(xiàn)這么一個問題:表數(shù)量較大(1w+),innodb memory

持續(xù)增長,慢語句中發(fā)現(xiàn)大量重復(fù)頻繁元數(shù)據(jù)查詢語句。

大神:自建數(shù)據(jù)庫絕大部分環(huán)境都會忽略掉一個設(shè)置,即內(nèi)存管理器使用系統(tǒng)自帶的glibc庫,在一些情況下內(nèi)存存在持續(xù)增長并達(dá)到最大值,而且很長時間內(nèi)不會釋放一個潛在問題。如果表數(shù)量較大,且頻繁查詢元數(shù)據(jù)會造成內(nèi)存

碎片無法及時清理,并最終導(dǎo)致系統(tǒng)出現(xiàn)OOM。

小明:納尼,還有這種情況,我這就去查查。出問題的數(shù)據(jù)庫確實是這么一個組合: MySQL數(shù)據(jù)庫某分支版本+安裝采用系統(tǒng)自帶內(nèi)存管理器+一個新模塊上線+不定期的查詢元數(shù)據(jù),綜合導(dǎo)致了OOM問題。

大神:OOM問題在數(shù)據(jù)運維中經(jīng)常會出現(xiàn),影響較大,需要規(guī)避,而華為 云數(shù)據(jù)庫MySQL 就很好地做到了這一點。

它不是簡單的將數(shù)據(jù)庫服務(wù)化,而是采用了jemalloc內(nèi)存管理器,不存在內(nèi)存回收問題,且內(nèi)存管理性能更優(yōu);

同時內(nèi)核對innodb_buffer_pool_size進(jìn)行了內(nèi)控,可以避免用戶設(shè)置超過實際物理內(nèi)存的失誤,這也是華為云數(shù)

據(jù)庫穩(wěn)定背后的一個細(xì)節(jié)體現(xiàn)。

小明:聽起來很膩害的樣子!我得趕緊試一下。

大神:華為 云數(shù)據(jù)庫 將操作系統(tǒng)、數(shù)據(jù)庫版本、數(shù)據(jù)庫默認(rèn)設(shè)置、內(nèi)核優(yōu)化形成一個最優(yōu)組合呈現(xiàn)給用戶,讓用戶即開

即用,簡單省心。就像4s店提車一樣,可以立馬上路。

小明:問題已解決,客戶系統(tǒng)運行穩(wěn)定,華為云數(shù)據(jù)庫MySQL真牛!不過,是否還會有復(fù)發(fā)的風(fēng)險呢?

大神:華為云數(shù)據(jù)庫MySQL會給用戶提供合理的默認(rèn)設(shè)置,但OOM的另外一個關(guān)鍵在于“怎么用”,這里我給你一個

錦囊妙計,你可以根據(jù)以下公式來推算和配置數(shù)據(jù)庫合適的總內(nèi)存,這樣就可以避免OOM問題。

公式來推算和配置數(shù)據(jù)庫合適的總內(nèi)存

小明:太好了,以后可以少加班了。

大神:認(rèn)準(zhǔn)華為云數(shù)據(jù)庫MySQL,化解OOM不在話下,高效安全又可靠。

以上就是供應(yīng)商-華為云為您整理的MySQL數(shù)據(jù)庫頻繁出現(xiàn)OOM問題該如何化解,您可以前往華為云幫助中心:云數(shù)據(jù)庫 MySQL了解更詳細(xì)的解答,也可前往云社區(qū)參與討論。