您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)CentOS系統(tǒng)針對(duì)mysql參數(shù)優(yōu)化是怎么樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
內(nèi)核相關(guān)參數(shù)(/etc/sysctl.conf)
以下參數(shù)可以直接放到sysctl.conf文件的末尾:
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
加快TCP連接的回收:
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
TCP連接接收和發(fā)送緩沖區(qū)大小的默認(rèn)值和最大值:
net.core.wmem_default = 87380
net.core.wmem_max = 16777216
net.core.rmem_default = 87380
net.core.rmem_max = 16777216
減少失效連接所占用的TCP資源的數(shù)量,加快資源回收的效率
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
kernel.shmmax = 4294967295
Linux內(nèi)核參數(shù)中最重要的參數(shù)之一,用于定義單個(gè)共享內(nèi)存段的最大值。
注意:
1. 這個(gè)參數(shù)應(yīng)該設(shè)置的足夠大,以便能在一個(gè)共享內(nèi)存段下容納整個(gè)的Innodb
緩沖池的大小
2. 這個(gè)值的大小對(duì)于64位linux系統(tǒng),可取的最大值為物理內(nèi)存值-1byte,建議
值為大于物理內(nèi)存的一半,一般取值大于Innodb緩沖池的大小即可,可以取物理內(nèi)存-1byte
vm.swappiness = 0
這個(gè)參數(shù)當(dāng)內(nèi)存不足時(shí)會(huì)對(duì)性能產(chǎn)生比較明顯的影響。
Linux系統(tǒng)內(nèi)存交換區(qū):
在Linux系統(tǒng)安裝時(shí)都會(huì)有一個(gè)特殊的磁盤(pán)分區(qū),稱之為系統(tǒng)交換分區(qū)。
使用free-m命令可以看到swap就是內(nèi)存交換區(qū).
作用:
當(dāng)操作系統(tǒng)因?yàn)闆](méi)有足夠的內(nèi)存時(shí)就會(huì)將一些虛擬內(nèi)存寫(xiě)到磁盤(pán)的交換區(qū)中
這樣就會(huì)發(fā)生內(nèi)存交換。
在MySQL服務(wù)器上是否要使用交換分區(qū)有一些爭(zhēng)議:
在MySQL服務(wù)所在的Linux系統(tǒng)上完全禁用交換分區(qū)。
帶來(lái)的風(fēng)險(xiǎn):
1. 降低操作系統(tǒng)的性能
2. 容易造成內(nèi)存溢出,崩潰,或都被操作系統(tǒng)kill掉
結(jié)論:
在MySQL服務(wù)器上保留交換區(qū)還是很必要的,但是要控制何時(shí)使用交換分區(qū)。
Vm.swappiness = 0
就是告訴Linux內(nèi)核除非虛擬內(nèi)存完全滿了,否則不要使用交換區(qū)。
增加資源限制(/etc/security/limit.conf)
這個(gè)文件實(shí)際上是Linux PAM也就是插入式認(rèn)證模塊的配置文件。
打開(kāi)文件數(shù)的限制:
soft nofile 65535
hard nofile 65535
* 表示對(duì)所有用戶有效
soft 指的是當(dāng)前系統(tǒng)生效的設(shè)置
hard 表明系統(tǒng)中所能設(shè)定的最大值
nofile 表示所限制的資源是打開(kāi)文件的最大數(shù)目
65535 限制的數(shù)量
soft不能大于hard
直接加到limit.conf文件的末尾就可以了。
結(jié)論:把可打開(kāi)的文件數(shù)量增加到65535個(gè)以保證可以打開(kāi)足夠多的文件句柄。
注意:這個(gè)文件的修改需要重啟系統(tǒng)才能生效。
磁盤(pán)調(diào)度策略(/sys/block/devname/queue/scheduler)
cat /sys/block/devname/queue/scheduler
調(diào)度策略: noop anticipatory deadline [cfg]
noop(電梯式調(diào)度策略)
NOOP實(shí)現(xiàn)了一個(gè)FIFO隊(duì)列,它像電梯的工作方法一樣對(duì)I/O請(qǐng)求進(jìn)行組織,當(dāng)有一個(gè)新
的請(qǐng)求到來(lái)時(shí),它將請(qǐng)求合并到最近的請(qǐng)求之后,以此來(lái)保證請(qǐng)求同一介質(zhì)。NOOP傾向餓死讀而
利于寫(xiě),因此NOOP對(duì)于閃存設(shè)備、RAM及嵌入式系統(tǒng)是最好的選擇。
deadline(截止時(shí)間調(diào)度策略)
deadline確保了在一個(gè)截止時(shí)間內(nèi)服務(wù)請(qǐng)求,這個(gè)截止時(shí)間是可調(diào)整的,而默認(rèn)讀期限
短于寫(xiě)期限。這樣就防止了寫(xiě)操作因?yàn)椴荒鼙蛔x取而餓死的現(xiàn)象,deadline對(duì)數(shù)據(jù)庫(kù)類應(yīng)用是最
好的選擇。
anticipatory(預(yù)料I/O調(diào)度策略)
本質(zhì)上與deadline一樣,但在最后一次讀操作之后,要等待6ms,才能繼續(xù)進(jìn)行對(duì)其它I/O
請(qǐng)求進(jìn)行調(diào)度。它會(huì)在每個(gè)6ms中插入新的I/O操作,而會(huì)將一些小寫(xiě)入流合并成一個(gè)大寫(xiě)入流,用
寫(xiě)入延時(shí)換區(qū)最大的寫(xiě)入吞吐量。AS適合于寫(xiě)入較多的環(huán)境,比如文件服務(wù)器,AS對(duì)數(shù)據(jù)庫(kù)環(huán)境表
現(xiàn)很差。
修改調(diào)度策略:
echo <schedulername> > /sys/block/devname/queue/scheduler
如 echo deadline /sys/block/devname/queue/scheduler
上述就是小編為大家分享的CentOS系統(tǒng)針對(duì)mysql參數(shù)優(yōu)化是怎么樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。