服務(wù)器負(fù)載過高怎么辦 怎樣處理服務(wù)器負(fù)載量過大?
怎樣處理服務(wù)器負(fù)載量過大?一,確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量。二,優(yōu)化數(shù)據(jù)庫訪問。服務(wù)器的負(fù)載過大,一個(gè)重要的原因是CPU負(fù)荷過大,降低服務(wù)器CPU的負(fù)荷,才能夠有效打破瓶頸。而使用靜態(tài)頁面可以
怎樣處理服務(wù)器負(fù)載量過大?
一,確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量。
二,優(yōu)化數(shù)據(jù)庫訪問。服務(wù)器的負(fù)載過大,一個(gè)重要的原因是CPU負(fù)荷過大,降低服務(wù)器CPU的負(fù)荷,才能夠有效打破瓶頸。而使用靜態(tài)頁面可以使得CPU的負(fù)荷最小化。前臺(tái)實(shí)現(xiàn)完全的靜態(tài)化當(dāng)然最好,可以完全不用訪問數(shù)據(jù)庫,不過對于頻繁更新的網(wǎng)站,靜態(tài)化往往不能滿足某些功能。緩存技術(shù)就是另一個(gè)解決方案,就是將動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)到緩存文件中,動(dòng)態(tài)網(wǎng)頁直接調(diào)用這些文件,而不必再訪問數(shù)據(jù)庫,WordPress和Z-Blog都大量使用這種緩存技術(shù)。如果確實(shí)無法避免對數(shù)據(jù)庫的訪問,那么可以嘗試優(yōu)化數(shù)據(jù)庫的查詢SQL.避免使用Select *from這樣的語句,每次查詢只返回自己需要的結(jié)果,避免短時(shí)間內(nèi)的大量SQL查詢。三,禁止外部的盜鏈。外部網(wǎng)站的圖片或者文件盜鏈往往會(huì)帶來大量的負(fù)載壓力,因此應(yīng)該嚴(yán)格限制外部對于自身的圖片或者文件盜鏈,好在目前可以簡單地通過refer來控制盜鏈,Apache自己就可以通過配置來禁止盜鏈,IIS也有一些第三方的ISAPI可以實(shí)現(xiàn)同樣的功能。當(dāng)然,偽造refer也可以通過代碼來實(shí)現(xiàn)盜鏈,不過目前蓄意偽造refer盜鏈的還不多,可以先不去考慮,或者使用非技術(shù)手段來解決,比如在圖片上增加水印。四,控制大文件的下載。大文件的下載會(huì)占用很大的流量,并且對于非SCSI硬盤來說,大量文件下載會(huì)消耗CPU,使得網(wǎng)站響應(yīng)能力下降。因此,盡量不要提供超過2M的大文件下載,如果需要提供,建議將大文件放在另外一臺(tái)服務(wù)器上。網(wǎng)站訪問IP過萬,服務(wù)器租用帶寬要多少?
計(jì)算服務(wù)器的負(fù)載能力,是互聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)維護(hù)的基礎(chǔ)問題,也是一個(gè)很實(shí)際的問題。租用帶寬超過實(shí)際需求,帶來資金方面的浪費(fèi);租用帶寬過小,業(yè)務(wù)受到影響。吞吐量如何計(jì)算?
我們先看下吞吐量的計(jì)算公式:吞吐量=并發(fā)請求數(shù)*每個(gè)請求的響應(yīng)數(shù)據(jù)量。從這個(gè)公式,我們可以看出,吞吐量與并發(fā)請求數(shù)、請求響應(yīng)的數(shù)據(jù)量相關(guān)。注意這里是并發(fā)請求數(shù)不是用戶數(shù),并發(fā)用戶數(shù)不一定和并發(fā)請求數(shù)是相等的。單位時(shí)間內(nèi)1個(gè)用戶可以發(fā)起多個(gè)用戶請求。也就是說,吞吐量與并發(fā)用戶數(shù)、應(yīng)用本身有很大的關(guān)系。1個(gè)用戶看直播和訪問網(wǎng)頁需要的流量是不相同的,看直播的流量遠(yuǎn)大于看網(wǎng)頁的流量。
回到問題。網(wǎng)站訪問ip過萬,對互聯(lián)網(wǎng)系統(tǒng)來說是一個(gè)不大的量。我們要算帶寬負(fù)載,需要搞清楚服務(wù)器業(yè)務(wù)集中的時(shí)段。10000個(gè)用戶訪問集中在10小和5小時(shí),并發(fā)是不同的。知道了集中時(shí)段,我們可以算出并發(fā)請求數(shù)。并發(fā)請求數(shù)的計(jì)算公式為:并發(fā)請求數(shù)=ip數(shù)/集中訪問小時(shí)數(shù)/3600*單用戶并發(fā)數(shù)。10000個(gè)用戶訪問,我們按業(yè)務(wù)每天集中在4小時(shí)完成、單用戶并發(fā)請求數(shù)1計(jì)算,結(jié)果是多少呢?小于1,也就是1秒就1個(gè)訪問。每個(gè)請求的數(shù)據(jù)量按100KB計(jì)算,那么服務(wù)器的吞吐率就是100KB/s,購買云服務(wù)器的最小帶寬1M也夠用了。
另外這里還有一個(gè)用戶體驗(yàn)的問題,一般的服務(wù)器響應(yīng)時(shí)間設(shè)計(jì)為小于3s,如果我們要做到更好的用戶體驗(yàn),就要相應(yīng)增大帶寬。假設(shè)設(shè)計(jì)為1s,訪問的網(wǎng)頁內(nèi)容大小為200KB,1M(128MB/S)的帶寬就不能滿足體驗(yàn)的要求,就要租用2M的帶寬。一般購買服務(wù)器帶寬的時(shí)候,在滿足最大吞吐量的基礎(chǔ)上,冗余30%的寬帶來應(yīng)對突發(fā)情況。
結(jié)論:服務(wù)器的帶寬負(fù)載與并發(fā)請求數(shù),應(yīng)用自身、用戶體驗(yàn)等有密切關(guān)系。網(wǎng)站10000IP的訪問量,采購最小的服務(wù)器即可滿足要求。
為什么服務(wù)器的宕機(jī)一般都發(fā)生在凌晨使用率最低的時(shí)候?
來自16年經(jīng)驗(yàn)老程序員的靠譜回答。
主要有以下幾個(gè)原因
1.凌晨時(shí)服務(wù)器很忙
首先,確實(shí)服務(wù)器的宕機(jī)一般都發(fā)生在凌晨使用率最低的時(shí)候,但是這個(gè)使用率只是針對用戶而言的。
實(shí)際上,在凌晨的時(shí)候,服務(wù)器是很忙的。主要忙哪些事情呢?主要是一些定時(shí)任務(wù),還有數(shù)據(jù)庫備份等。很多比較耗時(shí)的操作比如報(bào)表統(tǒng)計(jì)都會(huì)安排在半夜,以免半天影響正常業(yè)務(wù),所以這個(gè)時(shí)候,服務(wù)器都是在高負(fù)荷運(yùn)轉(zhuǎn)的,容易產(chǎn)生事故。
2.一般晚上的時(shí)候會(huì)上線新功能
同理,發(fā)布新代碼或者更改功能,也會(huì)選擇在晚上的業(yè)務(wù)低峰期。無論前期的測試工作做的多么到位,也難免會(huì)隱藏一些bug,到了凌晨,這些bug(比如死循環(huán))已經(jīng)跑了一段時(shí)間了,在無人值守的情況下就可能觸發(fā)各種故障。
如果上線時(shí)間比較短還好,遇到更新比較大的情況下,程序員奮戰(zhàn)到大半夜,這個(gè)情況下人是很疲憊的,更容易忙中出錯(cuò)。
3.無人值守導(dǎo)致修復(fù)變慢
比如死循環(huán)和內(nèi)存泄漏,是需要經(jīng)過一段時(shí)間才能表現(xiàn)出來的。白天有人實(shí)時(shí)監(jiān)控,自然出現(xiàn)故障的幾率比較小,就算出現(xiàn)故障了,也能很快修復(fù),讓用戶無法覺察。
4.凌晨是黑客作案高峰期
夜黑風(fēng)高,殺人越貨。這個(gè)時(shí)間點(diǎn)是正常人休息時(shí)間,而黑客則選擇在這個(gè)時(shí)候活動(dòng),不論是安全攻擊,或者是DDOS,都可能造成服務(wù)器故障。
開服不到一個(gè)月的時(shí)間,魔獸懷舊服第一大服變鬼區(qū),你有何看法?
魔獸世界這款游戲可以說是很多朋友們的青春回憶,在當(dāng)年那個(gè)時(shí)代約上幾個(gè)好友,整晚整晚的砍魔獸,可以說是一件非??鞓返氖虑?,后來隨著魔獸的不斷更新很我們再也玩不到那個(gè)版本的魔獸了,不過網(wǎng)易為了挽回這些老玩家特意搞了一個(gè)魔獸懷舊服,本來很多玩家朋友們都認(rèn)為這個(gè)懷舊服可能再次爆滿,誰知道魔獸懷舊版第一大服剛開服一個(gè)月就變成了鬼區(qū),這又是怎么一回事呢?
阿拉希盆地是魔獸懷舊服的首個(gè)服務(wù)器,當(dāng)初這個(gè)服務(wù)器開服的時(shí)候很多玩家都特別看好,都紛紛在這個(gè)服務(wù)器創(chuàng)建自己的角色,剛開始的時(shí)候服務(wù)器人經(jīng)常爆滿,甚至有的時(shí)候排隊(duì)能排到1萬多人,但是沒過多長時(shí)間,也就不到一個(gè)月的時(shí)間,這個(gè)服務(wù)器就變成了鬼服。
原來這個(gè)服務(wù)器在剛開服的時(shí)候,金幣價(jià)格是非常高的,很多工作室都在這個(gè)服務(wù)器打金幣換成人民幣,但是隨著魔獸世界時(shí)光徽章的出現(xiàn),服務(wù)器之中金幣的價(jià)格一落千丈,跟其他老服務(wù)器都差不多了,所以想要靠打擊力來賺錢就不劃算了,這一下工作室還有一些專門打金幣的玩家,就離開了這個(gè)服務(wù)器去繼續(xù)尋找新的服務(wù)器了。
如果魔獸懷舊服僅僅靠這些工作室,還有打金幣玩家維持的話,那么魔獸懷舊版也支持不了多長時(shí)間,想要讓這款游戲更加長久的運(yùn)營下去,還是要靠我們這些真正愛魔獸世界這款游戲的玩家們。
各位網(wǎng)友,你們有何看法呢?