4 回答

TA貢獻2012條經(jīng)驗 獲得超12個贊
第一,確認服務器硬件是否足夠支持當前的流量。 普通的P4服務器一般最多能支持每天10萬獨立IP,如果訪問量比這個還要大,那么必須首先配置一臺更高性能的專用服務器才能解決問題,否則怎么優(yōu)化都不可能徹底解決性能問題。
第二,優(yōu)化數(shù)據(jù)庫訪問。 服務器的負載過大,一個重要的原因是CPU負荷過大,降低服務器CPU的負荷,才能夠有效打破瓶頸。而使用靜態(tài)頁面可以使得CPU的負荷最小化。前臺實現(xiàn)完全的靜態(tài)化 當然最好,可以完全不用訪問數(shù)據(jù)庫,不過對于頻繁更新的網(wǎng)站,靜態(tài)化往往不能滿足某些功能。 緩存技術 就是另一個解決方案,就是將動態(tài)數(shù)據(jù)存儲到緩存文件中,動態(tài)網(wǎng)頁直接調(diào)用這些文件,而不必再訪問數(shù)據(jù)庫,WordPress和Z-Blog都大量使用這種緩存技術 。我自己也寫過一個Z-Blog的計數(shù)器插件,也是基于這樣的原理。 如果確實無法避免對數(shù)據(jù)庫的訪問,那么可以嘗試優(yōu)化數(shù)據(jù)庫的查詢SQL.避免使用Select *from這樣的語句,每次查詢只返回自己需要的結果,避免短時間內(nèi)的大量SQL查詢。

TA貢獻1786條經(jīng)驗 獲得超13個贊
幾點需要注意:
盡量使用緩存,包括用戶緩存,信息緩存等,多花點內(nèi)存來做緩存,可以大量減少與數(shù)據(jù)庫的交互,提高性能。
用jprofiler等工具找出性能瓶頸,減少額外的開銷。
優(yōu)化數(shù)據(jù)庫查詢語句,減少直接使用hibernate等工具的直接生成語句(僅耗時較長的查詢做優(yōu)化)。
優(yōu)化數(shù)據(jù)庫結構,多做索引,提高查詢效率。
統(tǒng)計的功能盡量做緩存,或按每天一統(tǒng)計或定時統(tǒng)計相關報表,避免需要時進行統(tǒng)計的功能。
能使用靜態(tài)頁面的地方盡量使用,減少容器的解析(盡量將動態(tài)內(nèi)容生成靜態(tài)html來顯示)。
解決以上問題后,使用服務器集群來解決單臺的瓶頸問題。
基本上以上述問題解決后,達到系統(tǒng)最優(yōu)。
至于樓上有人提到別用JAVA來做,除非是低層的連接數(shù)過大(如大量的端口占用需求),這種情況下考慮直接C來寫,其他的可以用JAVA來做。
- 4 回答
- 0 關注
- 999 瀏覽
添加回答
舉報