隨着數據量的增大,數據庫的性能問題也是個值得關注的問題,不少公司對mysql性能方面沒有太太重視,致使服務浪費過多資源、mysql服務性能差從而直接影響用戶體驗,這裏咱們簡單的先來聊聊什麼影響了mysql性能,從而能關注這些問題。html
硬件資源方面的影響有哪些?mysql
使用傳統機器硬盤sql
RAID增長傳統機器硬盤的性能shell
固態存儲(SSD閃存)數據庫
網絡存儲SAN和NAScentos
網絡存儲使用的場景(並不適合)服務器
網絡性能的限制網絡
延遲多線程
帶寬併發
網絡質量
建議
總結:
centos系統參數優化
內核相關參數(/etc/sysctl.conf)
# net.core.somaxconn是Linux中的一個kernel參數,表示socket監聽(listen)的backlog上限。什麼是backlog呢?backlog就是socket的監聽隊列,當一個請求(request)還沒有被處理或創建時,他會進入backlog。而socket server能夠一次性處理backlog中的全部請求,處理後的請求再也不位於監聽隊列中。當server處理請求較慢,以致於監聽隊列被填滿後,新來的請求會被拒絕 net.core.somaxconn = 65535 net.core.netdex_max_backlog = 65535 net.ipv4.tcp_max_syn_backlog = 65535
加快TCP鏈接,快速回收TCP鏈接資源 net.ipv4.tcp_fun_timeout = 10 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_te_recycle = 1
加快資源回收效率 net.ipv4.tcp_keepalive_time = 120 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3
kernel.shmmax = 4294967295 這個參數應該設置的足夠大,以便能在一個共享內存段下容納下整個innodb緩衝池的大小 vm.swappiness = 0 MYsql上保留內存交換分區仍是有必要的
增長資源限制(/etc/security/limit.conf) * soft nofile 65535 * hard nofile 65535 * 表示對全部用戶有效 soft 指的是當前系統生效的配置 hard 代表系統中所能設定的最大值 nofile 表示所限制的資源是打開文件的最大數目 65535 就是限制的數量
磁盤調度策略(/sys/block/devname/queue/scheduler) cat /sys/block/sda/queue/scheduler noop anticipatory deadline [cfq] noop(電梯式調度策略) deadline(截止時間調度策略) 對數據庫最好選擇 anticipatory(預料I/O) 改變磁盤調度策略(/sys/block/devname/queue/scheduler) echo deadline > /sys/block/devname/queue/scheduler
文件系統對性能的影響
XFS對性能最好
data = writeback | ordered | journal 經常使用的文件系統的配置 /dev/sda1/ext4 noatime,nodiratime,data=writeback 1 1