伺服器過載會有什麼問題
關於Web負載,除了對Web負載的特徵進行分析以便在評測時更好地再現真實負載之外,還要考慮Web伺服器所在的網路環境下負載的情況。人們不僅要求伺服器滿足正常的工作負載要求,而且在高峰時期依然要保持較高的吞吐量。但是,伺服器在高負載的情況下的效能表現往往低於人們的期望。
伺服器過載的情況分為兩種:一種為瞬間過載,即伺服器暫時的、短時間的超載,這種情況主要是由伺服器負載的特點引起的。大量的研究表明,Web請求的網路通訊量分佈是自相似的,即Web請求的通訊量可以在很大範圍內有顯著的變化。這就造成伺服器常常短時間的超載,但這樣情況持續的時間一般很短。一種是伺服器長時間的超載,這種情況一般是由某一特殊事件引起的,例如伺服器受到拒絕服務攻擊或者發生了“活鎖”現象。
第一種伺服器超載情況是不可避免的,但第二種情況則可以透過對伺服器改進來改善。拋開惡意的攻擊不算,仔細分析伺服器處理資訊包的過程可以發現,造成系統在超載情況下效能下降的根本原因是高優先順序處理階段對CPU的不公平搶佔。
因此,壹基比十月認為如果限制高優先順序處理階段對CPU的佔用率,或者限制處理高優先順序的CPU個數,都可以減輕或者消除收包活鎖現象。具體的可以採用以下的方法:
一、採用輪詢機制。為了減少中斷對系統效能的影響,在負載正常的情況下采用“下半處理”的方法就非常有效,而在高負荷情況下,採用這個方法仍然會造成活鎖現象,這時可以採用輪詢機制。雖然這個方法在負載正常的情況下會造成資源的浪費和響應速度降低,但在網路資料頻繁到達伺服器時就要比中斷驅動技術有效的多。
二、減少上下文切換。這種方法不管伺服器在什麼情況下對效能改善都很有效,這時可以採用引入核心級(kerne1—leve1)或硬體級資料流的方法來達到這個目的。核心級資料流是將資料從源透過系統匯流排進行轉發而不需要使資料經過應用程式程式,這個過程中因為資料在記憶體中,因此需要CPU運算元據。
硬體級資料流則是將資料從源透過私有資料匯流排或是雖等DMA透過系統匯流排進行轉發而不需要使資料經過應用程式程式,這個過程不需要CPU運算元據。這樣在資料傳輸過程中不需要使用者執行緒的介入,減少了資料被複製的次數,減少了上下文切換的開銷。
三、減低中斷的頻率(主要是針對高負荷情況的方法)。這裡主要有兩種方法:批中斷和暫時關閉中斷。批中斷可以在超載時有效的抑制活鎖現象,但對伺服器的效能沒有什麼根本性的改進;當系統出現接收活鎖跡象時,可以採用暫時關閉中斷的方法來緩和系統的負擔,當系統快取再次可用時可以再開啟中斷,但這種方法在接收快取不夠大的情況下會造成資料包丟失。
Web伺服器效能是整個Web系統的關鍵環節,提高Web伺服器的效能也是人們長久以來一直關注的課題。這裡透過對Web伺服器的工作原理和現有的最佳化方法和技術的分析,得出了對待Web伺服器效能的提高也應該具體問題具體分析,要在具體的應用環境中,根據其特點來採取相應的最佳化措施。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014415/viewspace-2926003/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 伺服器過載有什麼原因伺服器
- 伺服器過載會出現什麼情況伺服器
- 根證書過期問題大嗎?有什麼影響
- [轉載]什麼是P問題、NP問題和NPC問題
- 伺服器硬碟有問題怎麼辦伺服器硬碟
- DNS解析問題:遞迴伺服器和權威伺服器有什麼區別?DNS遞迴伺服器
- 伺服器過載一般是什麼原因伺服器
- 華納雲:連線Ubuntu伺服器有問題是什麼情況?Ubuntu伺服器
- lombok+JPA可能會出什麼麼問題? - jpabuddyLombok
- 為什麼會有公司花1000萬請麥肯錫解決問題?
- 初學者疑惑:C語言中,函式反覆呼叫會有什麼問題?C語言函式
- SSL證書為什麼會過期?證書過期會有哪些影響?
- STL自帶的swap方法有什麼問題?
- 為什麼會有kafka訊息系統?小問題藏著大細節!Kafka
- 伺服器有什麼用途伺服器
- asp伺服器是什麼有什麼用途伺服器
- 【知識分享】伺服器過載一般是什麼原因伺服器
- 伺服器發包指的是什麼?有什麼作用?伺服器
- 什麼是http代理伺服器,有什麼作用?HTTP伺服器
- 面試官問我:什麼是訊息佇列?什麼場景需要他?用了會出現什麼問題?面試佇列
- 海外伺服器有什麼用途?伺服器
- 中間表是什麼?和報表有什麼關係?會帶來怎樣的問題?又如何解決?
- 為什麼 Python 沒有函式過載?如何用裝飾器實現函式過載?Python函式
- 什麼是P問題、NP問題和NPC問題
- 伺服器負載過高的原因是什麼?如何解決?伺服器負載
- leetcode問題與web開發有什麼關係? - RediitLeetCodeWeb
- 有問有答之 crate 是什麼
- 刀鋒伺服器是什麼意思?有什麼用途伺服器
- 請問getKey()方法是什麼,有什麼用
- 面試官:Java的重寫和過載有什麼區別?面試Java
- RAG能解決大模型的什麼問題?不能解決什麼問題?大模型
- 多次呼叫 BAPI 之後,最後一次性 COMMIT WORK,會有什麼問題嗎?APIMIT
- 【搞定面試官】你還在用Executors來建立執行緒池?會有什麼問題呢?面試執行緒
- Android 圖片載入快取問題:為什麼你的Glide快取沒有起作用?Android快取IDE
- python函式過載是什麼?Python函式
- JS 頁面載入過程問題JS
- 雲伺服器做什麼用的?雲伺服器有什麼優勢伺服器
- 伺服器多IP有什麼用伺服器