致使宕機的緣由:web
1. 運行環境: 35%,運行環境能夠看作是支持數據庫服務器運行的系統和資源集合,包括操做系統,硬盤以及網絡面試
2. 性能:35%數據庫
3. 複製 20%服務器
4. 各類類型的數據庫丟失或者損壞以及其餘問題。 10%網絡
致使宕機的事件排行架構
1. 在運行環境的問題上,最廣泛的問題就是空間耗盡併發
2. 在性能問題上,最廣泛的宕機緣由是運行很糟糕的SQL,還有服務器bug和錯誤的行爲致使的app
3. 索引設計也是影響宕機的緣由ide
4. 複製問題一般是因爲主備數據不一致高併發
5. 數據丟失一般是因爲誤刪除致使的。
若是你面試時候遇到面試題:MySQL數據庫怎麼優化,這時你應該從五個方面來回答:
1.硬件優化2.軟件優化 3.SQL優化 4.架構優化 5. 流程制度化
硬件方面的優化:
1、服務器級別優化
百度公司的優化已經作的很好了,若是如今他們再去優化時候,就只能從硬件優化了
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. 其餘:網卡等(多塊網卡)
2、操做系統級別優化
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/
3.
文件系統
ext三、ext4仍是使用XFS
準確來講XFS要優於ext系列
4. 避免NUMA問題
numactl --interleave=all便是容許全部的處理器能夠交叉訪問全部的內存
5. /tmp分區
tmpfs /dev/shm tmpfs defaults 00
設置tmpdir=/tmp以後,某些習慣性把文件寫到tmp下的人要改一改習慣了,由於這些文件佔用的是內存不是磁盤,並且若是不重啓的話是一直佔用
6. CPU
關閉服務器的節能模式
查看kondemand進程運行狀況:
ps -ef |grepkondemand