這篇文章主要介紹“針對MySQL的Linux性能調(diào)優(yōu)技巧分享”,在日常操作中,相信很多人在針對MySQL的Linux性能調(diào)優(yōu)技巧分享問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”針對MySQL的Linux性能調(diào)優(yōu)技巧分享”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的玉山網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
文件系統(tǒng)(Filesystem)
1)使用ext4或者xfs文件系統(tǒng),mount選項(xiàng)使用noatime選項(xiàng)。 系統(tǒng)默認(rèn)記錄文件創(chuàng)建、修改和上一次訪問等信息,記錄上last access time需要一定的開銷。使用noatime選項(xiàng),不記錄last access time,可以提升系統(tǒng)的性能。
2)IO調(diào)度算法選擇NOOP或則Deadline。
echo deadline > /sys/block/sda/queue/scheduler add "elevator=deadline" to grub.conf
內(nèi)存優(yōu)化(Memory&Swap)
優(yōu)先使用內(nèi)存
盡可能使用內(nèi)存,而少使用swap。只有當(dāng)內(nèi)存不夠用的時候,系統(tǒng)才會使用swap。
echo 0 > /proc/sys/vm/swappiness add "vm.swappiness = 0" to /etc/sysctl.conf
屏蔽NUMA特性
設(shè)置numactl的interleave參數(shù)值為all,即是允許所有的處理器可以交叉訪問所有的內(nèi)存,一致性內(nèi)存訪問(UMA, Uniform Memory Access)方式。
numactl --interleave=all
Node Interleaving: Enable or Disable?詳細(xì)講述了交叉訪問模式的作用。
The MySQL “swap insanity” problem and the effects of the NUMA architecture深度分析MySQL對于swap的使用和NUMA架構(gòu)對MySQL的性能影響。
NUMA(Non-Uniform Memory Access)非一致性內(nèi)存訪問架構(gòu),是一種多核處理器的內(nèi)存設(shè)計(jì)方案。針對每個處理器,NUMA會把全局的存儲器分為本地內(nèi)存(local memory)和非本地內(nèi)存(no-local memory)。處理器訪問本地內(nèi)存速度比非本地內(nèi)存的速度快很多。
CPU優(yōu)化
檢查CPU是否開啟了節(jié)能選項(xiàng),ondemand表示處于節(jié)能狀態(tài)。[Centos 5.x]
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor ondemand ps ax | grep kndemand
2778 ? S< 0:00 [kondemand/0]
2779 ? S< 0:00 [kondemand/1]
2780 ? S< 0:00 [kondemand/2]
2781 ? S< 0:00 [kondemand/3]
2782 ? S< 0:00 [kondemand/4]
2783 ? S< 0:00 [kondemand/5]
2784 ? S< 0:00 [kondemand/6]
2785 ? S< 0:00 [kondemand/7]
上面的的進(jìn)程狀態(tài)顯示8個cores均開啟了節(jié)能模式。
另外,通過/proc/cpuinfo中cpu的當(dāng)前的時鐘頻率與“model name”中數(shù)字是否一致可以得知cpu是否處于節(jié)能狀態(tài)。如下,“model name”顯示的2.13GHz,而“cpu Mhz”顯示的1867.000MHz,cpu沒有達(dá)到最大的時鐘頻率,處于節(jié)能狀態(tài)。
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU E5506 @ 2.13GHz
stepping : 5
cpu MHz : 1867.000
cache size : 4096 KB
Centos6.x 編譯內(nèi)核的時候沒有加上cpufreq performance模塊,因此不能使用”cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor”檢查cpu是否處于節(jié)能工作狀態(tài)。
watch grep \"cpu MHz\" /proc/cpuinfo
檢查cpu的工作頻率。
到此,關(guān)于“針對MySQL的Linux性能調(diào)優(yōu)技巧分享”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!