溫馨提示×

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

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

CentOS系統(tǒng)針對(duì)mysql參數(shù)優(yōu)化是怎么樣的

發(fā)布時(shí)間:2021-11-04 18:34:48 來(lái)源:億速云 閱讀:145 作者:柒染 欄目:建站服務(wù)器

這期內(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è)資訊頻道。

向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