溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL5.7關(guān)閉NUMA方法

發(fā)布時(shí)間:2020-08-08 18:19:00 來(lái)源:ITPUB博客 閱讀:494 作者:chenfeng 欄目:MySQL數(shù)據(jù)庫(kù)
非一致存儲(chǔ)訪問(wèn)結(jié)構(gòu) (NUMA : Non-Uniform Memory Access) 也是最新的內(nèi)存管理技術(shù)。它和對(duì)稱多處理器結(jié)構(gòu) (SMP : Symmetric Multi-Processor) 是對(duì)應(yīng)的。

MySQL在NUMA架構(gòu)上會(huì)出現(xiàn)的問(wèn)題:
1).CPU規(guī)模因摩爾定律指數(shù)級(jí)發(fā)展,而總線發(fā)展緩慢,導(dǎo)致多核CPU通過(guò)一條總線共享內(nèi)存成為瓶頸
2).于是NUMA出現(xiàn)了,CPU平均劃分為若干個(gè)Chip(不多于4個(gè)),每個(gè)Chip有自己的內(nèi)存控制器及內(nèi)存插槽
3).CPU訪問(wèn)自己Chip上所插的內(nèi)存時(shí)速度快,而訪問(wèn)其他CPU所關(guān)聯(lián)的內(nèi)存(下文稱Remote Access)的速度相較慢三倍左右
4).于是Linux內(nèi)核默認(rèn)使用CPU親和的內(nèi)存分配策略,使內(nèi)存頁(yè)盡可能的和調(diào)用線程處在同一個(gè)Core/Chip中
5).由于內(nèi)存頁(yè)沒(méi)有動(dòng)態(tài)調(diào)整策略,使得大部分內(nèi)存頁(yè)都集中在CPU 0上
6).又因?yàn)镽eclaim默認(rèn)策略優(yōu)先淘汰/Swap本Chip上的內(nèi)存,使得大量有用內(nèi)存被換出
7).當(dāng)被換出頁(yè)被訪問(wèn)時(shí)問(wèn)題就以數(shù)據(jù)庫(kù)響應(yīng)時(shí)間飆高甚至阻塞的形式出現(xiàn)了


因此MySQL單機(jī)單實(shí)例,建議關(guān)閉NUMA,關(guān)閉的方法有三種:
1.硬件層,在BIOS中設(shè)置關(guān)閉;
2.OS內(nèi)核,啟動(dòng)時(shí)設(shè)置numa=off;
3.可以用numactl命令將內(nèi)存分配策略修改為interleave(交叉)

登錄Linux系統(tǒng),修改/etc/init.d/mysqld文件,加上numactl --interleave all
vi /etc/init.d/mysqld
找到如下行
# Give extra arguments to mysqld with the my.cnf file. This script
      # may be overwritten at next upgrade.
      $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
      wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?


將$bindir/mysqld_safe --datadir="$datadir"這一行修改為:
      /usr/bin/numactl --interleave all $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
      wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?


然后重啟MySQL服務(wù).
#service mysqld restart

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI