MySQL5.7關閉NUMA方法
非一致儲存訪問結構 (NUMA : Non-Uniform Memory Access) 也是最新的記憶體管理技術。它和對稱多處理器結構 (SMP : Symmetric Multi-Processor) 是對應的。
MySQL在NUMA架構上會出現的問題:
1).CPU規模因摩爾定律指數級發展,而匯流排發展緩慢,導致多核CPU透過一條匯流排共享記憶體成為瓶頸
2).於是NUMA出現了,CPU平均劃分為若干個Chip(不多於4個),每個Chip有自己的記憶體控制器及記憶體插槽
3).CPU訪問自己Chip上所插的記憶體時速度快,而訪問其他CPU所關聯的記憶體(下文稱Remote Access)的速度相較慢三倍左右
4).於是Linux核心預設使用CPU親和的記憶體分配策略,使記憶體頁儘可能的和呼叫執行緒處在同一個Core/Chip中
5).由於記憶體頁沒有動態調整策略,使得大部分記憶體頁都集中在CPU 0上
6).又因為Reclaim預設策略優先淘汰/Swap本Chip上的記憶體,使得大量有用記憶體被換出
7).當被換出頁被訪問時問題就以資料庫響應時間飆高甚至阻塞的形式出現了
因此MySQL單機單例項,建議關閉NUMA,關閉的方法有三種:
1.硬體層,在BIOS中設定關閉;
2.OS核心,啟動時設定numa=off;
3.可以用numactl命令將記憶體分配策略修改為interleave(交叉)
登入Linux系統,修改/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服務.
#service mysqld restart
MySQL在NUMA架構上會出現的問題:
1).CPU規模因摩爾定律指數級發展,而匯流排發展緩慢,導致多核CPU透過一條匯流排共享記憶體成為瓶頸
2).於是NUMA出現了,CPU平均劃分為若干個Chip(不多於4個),每個Chip有自己的記憶體控制器及記憶體插槽
3).CPU訪問自己Chip上所插的記憶體時速度快,而訪問其他CPU所關聯的記憶體(下文稱Remote Access)的速度相較慢三倍左右
4).於是Linux核心預設使用CPU親和的記憶體分配策略,使記憶體頁儘可能的和呼叫執行緒處在同一個Core/Chip中
5).由於記憶體頁沒有動態調整策略,使得大部分記憶體頁都集中在CPU 0上
6).又因為Reclaim預設策略優先淘汰/Swap本Chip上的記憶體,使得大量有用記憶體被換出
7).當被換出頁被訪問時問題就以資料庫響應時間飆高甚至阻塞的形式出現了
因此MySQL單機單例項,建議關閉NUMA,關閉的方法有三種:
1.硬體層,在BIOS中設定關閉;
2.OS核心,啟動時設定numa=off;
3.可以用numactl命令將記憶體分配策略修改為interleave(交叉)
登入Linux系統,修改/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服務.
#service mysqld restart
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2142705/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL5.7 MASTER-SLAVE 線上關閉和啟動GTIDMySqlAST
- Oracle相關NUMA特性淺析Oracle
- win10關閉防火牆提示怎麼關閉_win10關閉防火牆提示徹底關閉操作方法Win10防火牆
- win10關閉windows defender方法 win10 如何關閉 defenderWin10Windows
- You Buy a NUMA System, Oracle Says Disable NUMAOracle
- win10關閉防火牆方法_w10如何關閉防火牆Win10防火牆
- win10安全提示關閉方法_win10如何關閉安全警告Win10
- Linux 7關閉防火牆方法Linux防火牆
- CentOS7關閉防火牆方法CentOS防火牆
- 關閉PHP錯誤提示的方法PHP
- linux關閉雙顯示卡的方法Linux
- Win7關閉休眠的方法Win7
- win10如何徹底關閉小娜_win10徹底關閉微軟小娜關閉的方法Win10微軟
- win10怎麼關閉defender_win10關閉Windows defender的方法Win10Windows
- win10如何關閉superfetch_win10關閉superfetch的方法Win10
- win10 windows update怎麼關閉_win10 windows update關閉方法Win10Windows
- win10如何關閉建議_win10關閉建議的方法Win10
- computer browser關閉原因解決方法
- win10字型平滑怎麼關閉_win10關閉字型平滑的方法Win10
- win10怎麼關閉防火牆 win10關閉防火牆的方法Win10防火牆
- 怎麼關閉win10鎖屏介面 windows關閉鎖屏介面的方法Win10Windows
- win10如何關閉滑鼠喚醒_win10關閉滑鼠喚醒方法Win10
- win10 關閉護眼模式方法 win10 怎麼關閉黑暗模式Win10模式
- win10 關閉睿頻方法 win10怎麼關閉cpu睿頻Win10
- win10關閉預設共享方法_win10要如何關閉預設共享Win10
- 如何關閉win10時間軸_win10時間線關閉的方法Win10
- html包裝器如何關閉顯示警告訊息?animate關閉警告模式的方法HTML模式
- win10 彈窗廣告關閉方法 win10 彈出廣告怎麼關閉Win10
- win10 關閉通知聲音方法 win10怎麼關閉聲音提示Win10
- win10 445埠如何關閉 win10系統關閉445埠的方法Win10
- win10 關閉桌面音量提示方法 win10如何關閉系統聲音Win10
- win10啟動管理器關閉的方法_win10關閉啟動管理器的方法Win10
- ORACLE 歸檔日誌開啟關閉方法Oracle
- 強行關閉病毒程式的兩種方法
- oracle自動啟動和關閉的方法Oracle
- 關閉資料庫比較好的方法資料庫
- 關閉Windows vista SuperFetch的方法Windows
- 迅雷自動續費關閉方法2則