導緻當機的原因:
1. 運作環境: 35%,運作環境可以看做是支援資料庫伺服器運作的系統和資源集合,包括作業系統,硬碟以及網絡
2. 性能:35%
3. 複制 20%
4. 各種類型的資料庫丢失或者損壞以及其他問題。 10%
導緻當機的事件排行
1. 在運作環境的問題上,最普遍的問題就是空間耗盡
2. 在性能問題上,最普遍的當機原因是運作很糟糕的SQL,還有伺服器bug和錯誤的行為導緻的
3. 索引設計也是影響當機的原因
4. 複制問題通常是由于主備資料不一緻
5. 資料丢失通常是由于誤删除導緻的。
如果你面試時候遇到面試題:MySQL資料庫怎麼優化,這時你應該從五個方面來回答:
1.硬體優化2.軟體優化 3.SQL優化 4.架構優化 5. 流程制度化
硬體方面的優化:
一、伺服器級别優化
百度公司的優化已經做的很好了,如果現在他們再去優化時候,就隻能從硬體優化了
1. 伺服器選型
SUN小型機、DELL730xd、HPDL380、IBM3850、雲服務等
DELLR710
2. CPU個數、記憶體大小
大記憶體,高IO,是現代基于web的資料庫的必備 (百度的伺服器記憶體 :96G ---128個,2個執行個體 ,CPU
8到16顆)
3.
磁盤:SAS、SSD、FIO卡
減小尋道時間、旋轉時間、傳輸時間
ssd
(高并發)>sas(線上普通業務)>sata (線下業務)
4. RAID卡電池,RAID級别
WriteBack, ReadAheadNone,Direct,NoWrite Cache
if Bad BBU
RAID0 >raid10
>raid5>raid1
5. 其他:網卡等(多塊網卡)
二、作業系統級别優化
1. I/O排程政策
NOOP、CFQ、Deadline、Anticipatory
臨時生效:echo “dadline” >/sys/block/sda/queue/scheduler
永久生效:/etc/grub.conf中kernel後加elevator=deadline(需要重新開機)
2. SWAP使用政策
echo"vm.swappiness=10">>/etc/sysctl.conf
https://www.percona.com/blog/2014/04/28/oom-relation-vm-swappiness0-new-kernel/
檔案系統
ext3、ext4還是使用XFS
準确來說XFS要優于ext系列
4. 避免NUMA問題
numactl --interleave=all即是允許所有的處理器可以交叉通路所有的記憶體
5. /tmp分區
tmpfs /dev/shm tmpfs defaults 00
設定tmpdir=/tmp之後,某些習慣性把檔案寫到tmp下的人要改一改習慣了,因為這些檔案占用的是記憶體不是磁盤,而且如果不重新開機的話是一直占用
6. CPU
關閉伺服器的節能模式
檢視kondemand程序運作情況: