程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL單機load過高問題討論

MySQL單機load過高問題討論

編輯:MySQL綜合教程

MySQL單機load過高問題討論   有一個朋友問我: "hi,我想問下你們遇到單機load過高的情況 采取什麼緊急措施啊?" 我問他是不是mysql db server?   他說是。 我給他如下建議: 1 先看下是不是mysqld進程造成的load高? 2 如果是的話,去看下當前線程有沒有比較慢的sql   朋友再問: 嗯 都沒有呢,這個如果由於業務的原因導致load高呢   我給出自己的建議: 1  並發量過高 2 業務原因,是crontab 任務,可以停止就停止掉   朋友再問:不是 sql的原因啊 db機器一般出現load高都是因為io,cpu這些導致的 這些很大部分都是由於業務繁忙處理不過來吧 我回復 : 1 嗯,不是慢sql導致io cpu爆增的,我還沒碰到過,可能是我們這邊單機性能太好了, [做人要坦誠特別是技術討論] 2 如果是io,cpu,那也是有事務操作吧 3 看看db參數設置是否合理,如果參數合理的話,估計就是到了單機性能的瓶頸了   朋友問:額 沒有遇到過 .... 這,那沒有遇到過db機器load高需要處理的啊?   我回復: 遇到很多,大部分都是慢sql造成的   朋友再問:嗯 一般不急?   我回復: 1 嗯,不會啊,我們事先上應用之前都會做壓力測試,峰值測試 2 業務量不會超過預計的峰值 3 你們單台load過高,現在mysql不都是多台嗎?分布式,讀寫負載均衡,一台load過高,那另外幾台呢?   朋友再問: 我假設某個業務 突然一天訪問量很高(超過之前預估),這個時候又只訪問一個主,而業務肯定不能停的,機器明顯感覺處理不過來,load急速上升,有什麼辦法處理嗎?我們的不是不是分布式的,現在的分布式都有負載均衡,對這樣的情況太好處理了。   我回復: 1 這個時候業務不能停,單機硬件升級更不是可行方案。 2 在發現cpu過高了,就馬上去准備加新的db機器,如果新的db機器在單台db爆掉之前准備好的話,直接添加上去,分擔app訪問壓力。 3 這個操作不會對業務產生影響,我們一般用的都是vip吧,在vip下再加一台db,應該是很方便的。   朋友再問: 我在想這樣的問題還真是有點難處理啊?   我表示疑惑:為什麼,你們不是用vip訪問db? 朋友說:不是,都是直接寫真實ip上去連接應用的。   說道這裡,如果沒有vip,而且是單台db,到時候瞬間爆掉了,我只能表示我水平有限暫時也沒有別的好招了,只有暫停業務並且重新架構db了。 不過我還是給他一些自己的建議,希望能帶給他一些幫組: 1 上新的app之前,做好db的壓力測試和峰值測試。 2  要做db的ha方案,並且測試通過。 3  db的ip已經app的ip已經要用類似vip的處理方式,以便方便擴展。 4  db要做好備份機制,並隨時抽查備份的有效性。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved