web系統性能方案全面總結
全面列舉下web系統中前后臺用到的各種性能提升方案: 尤其適合PHP系統
只是列舉了下, 后續慢慢來分開寫吧, 很多東西我們已經用到了.
一. 服務器端:
數據庫層:
1. 數據庫性能優化:(設計方案,索引,查詢緩存,反范式化設計)
2. 使用NoSQL數據庫(mongoDB, 這個OSC多的是)
邏輯處理層:
3. web壓力測試(吞吐率, ab或者siege工具)
4. 動態內容緩存(文件緩存,APC緩存,擴展k/v緩存)
5. 靜態化動態內容
6. 分布式緩存(memcache, redis)
7. opcode編譯緩存(APC, xcache)
8. 瀏覽器緩存(Expire header)
宿主環境層(web服務器,Apache):
9. web服務器緩存(mod_disk_cache, mod_file_cache:文件描述符緩存)
10. 傳輸加速(apache:mod_deflate啟用, php自主gzip壓縮)
11. web組件分離 (均衡web負載, 最大化瀏覽器多線程下載)
12. xdebug瓶頸分析
二.前臺:
1. Ajax
優化方案:
2. 減少http請求(多圖合一, 合并靜態組件, 圖片延時加載)
3. 使用內容分發網絡(和web組建分離類似, 激發瀏覽器并發, 分擔web服務器負載)
4. 啟動瀏覽器緩存(添加Expire頭信息)
5. 壓縮靜態組件(等同服務器壓縮傳輸)
6. 將css放在頁面頂部
7. 將js放在頁面底部
8. 避免css表達式
9. 外部引用js和css
10.減少DNS查詢(DNS緩存,TTL設置, Keep-alive, 使用更少的域名, 同域名內靜態文件加載使用/代替域名)
11.簡化壓縮靜態js和css
12.避免重定向(這里指靜態資源的獲取過程)
13.去除多余的js
14.配置ETags
15.緩存ajax結果
16.DNS預取(<link rel="dns-prefetch" href="http://預取域名">)
17.資源預取(內聯img標簽, <link rel="prefetch" href="圖片地址">)
18.漸進的JPEG(導出jpeg圖片時勾選對應選項)
三. 分布式:
1. web負載均衡(URL重定向, DNS解析, 代理服務器)
2. 內容分發與同步(組件分離限制突破)
3. 分布式文件系統
3. 數據庫負載均衡(讀寫分離,垂直分區,水平分區)
4. 分布式計算(Gearman)
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!