標籤:百度公司 伺服器 運行環境 資料庫 小型機
導致宕機的原因:
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/
3.
檔案系統
ext3、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
本文出自 “xinsz08の平行時空” 部落格,請務必保留此出處http://xinsz08.blog.51cto.com/10565212/1915967
mysql硬體最佳化