1 web前端的性能優化css
1.1瀏覽器訪問優化html
1.1.1 監測http請求前端
主要手段:合併css,js,圖片web
1.1.2 使用瀏覽器緩存算法
主要手段:緩存css,js,logo;當靜態文件變化時,應該批量更新,集中更新緩存,形成服務器負載聚增、網絡堵塞;數據庫
設置http頭部Cache-Control 和Expires屬性瀏覽器
1.1.3 啓用壓縮緩存
主要手段:對靜態文件css,js,html啓用GZip壓縮,可是對於圖片儘可能不要壓縮;安全
1.1.4 css放在頁面最上面、js放到頁面最下面性能優化
1.1.5 減小Cookie傳輸
1.2 CDN加速
內容分發網絡,將數據緩存在離用戶最近的地方,使用戶以最快速度獲取數據
1.3 反向代理
代理服務器保證安全,還能夠設置緩存功能加速web請求
2.應用服務器性能優化
2.1 分佈式緩存
2.1.1 緩存的基本原理
緩存指保存在訪問速度較高的存儲介質中,同時也避免可重複計算
2.1.2合理使用緩存
頻繁修改的數據
沒有熱點的訪問
數據不一致與髒讀:緩存要設置失效時間
緩存可用性:分佈式部署緩存服務器,一臺服務器出現問題時,不至於緩存失效,致使數據庫訪問壓力聚增
緩存預熱:熱點數據,利用LRU(最近最久未用算法)對不斷訪問的數據篩選淘汰
緩存穿透
2.1.3 分佈式緩存架構
JBoss Cache 更新同步的分佈式緩存
Memcached 不互相通訊的分佈式緩存
2.2 異步操做
消息隊列,異步
2.3 集羣
在高併發的狀況下,使用負載均衡技術,爲一個應用搭建多臺服務器集羣,能夠避免單一服務器壓力過大
2.4 代碼優化
2.4.1 多線程
對象設計爲無狀態,使用局部對象,併發訪問資源時使用鎖
2.4.2 資源複用
減小資源開銷大的建立和銷燬,如數據庫鏈接,網絡通訊鏈接、線程、複雜對象等。兩種方式,單例和對象池
2.4.3 數據結構
原始字符串-md5->信息指紋-hash計算->HashCode
2.4.4 垃圾回收
3.存儲服務器性能優化
3.1機械硬盤和固態硬盤
3.2 B+樹 LSM樹
3.3 RAID 和HDFS