您好,登錄后才能下訂單哦!
流量優化:
????????防盜鏈
前端優化:
????????減少http請求
????????添加異步請求
????????啟用瀏覽器緩存和文件壓縮
? ? ? ? cdn加速
????????建立獨立圖片服務器
服務端優化:
????????頁面靜態化
????????并發處理(比如多線程、多進程)
????????隊列處理
數據庫優化
????????數據庫緩存(redis、memcache、mongodb等)
????????分庫分表、分區操作
????????讀寫分離
????????負載均衡
web服務器優化
????????負載均衡
????????????????通過lvs的三種基本模式實現負載均衡
????????????????mycat數據庫中間件實現負載均衡
qps:每秒請求或查詢的數量,每秒響應請求數(如http請求)
吞吐量:單位時間內處理的請求數量(通常由qps與并發數決定)
響應時間:從請求發出到收到并且響應所花時間
pv:綜合瀏覽量,即頁面瀏覽量或點擊量(如果一個用戶刷新一個頁面若干次也只能算一個pv),一個訪客在24小時內訪問的頁面數量。同一個人瀏覽你的網站同一個頁面,只算一次pv
uv:獨立訪客,一定時間范圍內相同訪客多次訪問網站,只計算為一個獨立訪客
日網站帶寬=pv/統計時間(換算到秒)*平均頁面大小(單位kb)*8(峰值一般是平均的倍數,根據實際情況來定)
并發連接數不等于qps,qps是每秒http請求數量,并發連接數是系統同時處理的請求數量
常用性能測試工具:
????????ab、wrk、http_load、web bench、siege、apache jmeter
????????ab全程apache benchmark,模擬多個訪問者同時對某一url地址進行訪問,它的測試目標基于url,可以測試apache、nginx、lighthttp、tomcat、iis等web服務器的壓力
注意事項:
????????測試機器與被測試機器要分開
????????不對線上服務做壓力測試
????????觀察測試工具ab所在機器,以及被測試的前端機的cpu,內存,網絡等都不超過最高限度的75%
防盜鏈(當流量很大,但訪問量沒有響應大的時候,考慮這種情況)
????????可以減輕服務器壓力
????????工作原理:通過referer或者簽名,網站可以檢測目標網頁訪問的來源網頁,如果是資源文件,則可以跟蹤到顯示它的網頁地址,一旦檢測到來源不是本站即進行阻止或者返回指定頁面
????????????????referer:
????????????????????????nginx模塊ngx_http_referer_module用來阻擋來源非法的域名請求。nginx指令valid_referers,全局變量$invalid_referer。
????????????????????????????????
????????????????????????????? ? 為什么加none:因為通過瀏覽器訪問本身就是空,要確保通過瀏覽器也可以訪問
????????????????????????????????(可以通過偽造referer來進行盜鏈)
? ? ? ? ? ? ? ? 加密簽名:
????????????????????????使用第三方模塊HttpAccessKeyModule實現Nginx防盜鏈
????????????????????????????????
????????????????????????????????
????????????????????????????????
減少http請求
????????只有10%-20%響應時間花在接收請求的html文檔上,剩下的80%-90%時間花在html文檔所引用的組件(圖片、js、css、flash等)進行的http請求上
????????改善:
????????????????合并組件數量:
????????????????????????壓縮js、css等(去掉空格、回車)
????????????????????????合并js、css等
????????????????????????圖標放到一個圖片上(圖片地圖)
????????????????圖片使用base64編碼減少頁面請求數:
????????????????????????
http緩存
????????緩存分類:
????????????????200 ok (from memory cache):(瀏覽器調試工具顯示)
????????????????304 not modified:協商緩存,本地緩存失效,會去服務端請求,帶頭信息過去,讓服務器判斷該資源在服務端是否過期,如果沒過期,告訴瀏覽器繼續使用本地緩存。(快速,發送的數據少,只返回基本的響應頭信息,不發送實際響應體)
????????????????200 ok:以上兩種緩存都失敗,服務器返回完整響應。沒用到緩存,相對較慢
????????????????(其中,本地緩存最快,無需請求服務器)
????????適合做緩存的內容:
????????????????不變的圖像,如logo、圖標等
????????????????js、css靜態文件
????????????????可下載的內容,媒體文件
????????建議使用協商緩存:
????????????????html文件(數據可能變化)
? ? ? ? ? ? ? ? 常變動的圖片
????????????????經常修改的js、css文件
????????????????(js、css文件的加載可以加入文件的簽名來拒絕緩存,如index.css?簽名、index.簽名.js)
????????不建議做緩存的內容:
????????????????用戶隱私等敏感數據
????????????????經常改變的的api數據接口
????????nginx本地緩存配置:
????????????????
????????????????
????????????????????????例子:
????????????????????????????????
????????????????
????????????????????????
圖片壓縮:
????????壓縮工具:tinypng、jpegMini、imageOptim
gzip壓縮
cdn(內容分發網絡):
????????
????????cdn服務商:bat、七牛等
動態語言靜態化:
????????將php等動態語言邏輯代碼生成靜態html文件
????????
????????(一般框架中自帶該功能。步驟:判斷是否有xx.html文件,無則生成,有則返回文件內容)
并發處理:
? ? ? ? swoole、golang等
????????????????例子:異步發送郵件、短信等?
數據庫緩存:
????????mysql自帶查詢緩存,但一般不用
????????redis、memcache等
????????redis持久化:aof、快照
????????比如社交系統(微博等)的關注關系、session存入redis、
mysql數據層優化
????????數據表數據類型優化
????????????? ? 如:ip地址,用整型存比字符串型更節省空間(php用ip2long轉換存入數據庫)
????????索引優化
????????sql語句優化
????????存儲引擎優化
????????數據表結構設計的優化
????????數據庫服務器架構的優化
????????(詳情:https://blog.51cto.com/5660061/2386930)
web服務器的負載均衡
????????七層負載均衡:基于url等應用層信息的負載均衡
????????????????如nginx的proxy:
????????????????????????功能強大、性能卓越、運行穩定
????????????????????????配置靈活簡單
? ? ????????????????????能自動剔除工作不正常的后端服務器
? ? ? ? ? ? ? ? ? ? ? ? 上傳文件使用異步模式
? ? ? ? ? ? ? ? ? ? ? ? 支持多種分配策略,可以分配權重,分配方式靈活
????????????????????????
????????????????????????
????????????????????????
????????????????????????
????????????????????????
????????????????????????
? ? ????四層負載均衡:如lvs
????????????????
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。