網站性能優化整理筆記

優化網站響應時間方法css

一、減小http請求mysql

能夠下降網站的響應時間和減小傳輸的數據,主要方法:web

    1)將多個圖片合併成一個文件,減小圖片下載的請求sql

    2)合併js腳本和css樣式文件數據庫

    3)利用瀏覽器的緩存功能,避免重複下載相同的文件apache

二、動態內容靜態化瀏覽器

針對一些內容不常常改變,能夠將動態內容靜態化,從而下降服務器的響應時間緩存

三、優化數據庫安全

四、使用負載均衡服務器

單臺web服務器處理能力有限,單臺服務器承受壓力達到極限時,須要更多的服務器分擔工做。實現負載均衡的方法:http重定向、基於DNS的輪詢解析、反向代理服務器。目的是把流量分配到更多的服務器,從而下降單臺服務器的壓力

五、使用緩存

緩存把須要花費昂貴開銷的計算結果保存起來,在之後須要時直接取出,從而避免重複計算

Mysql響應速度提升方案:HandlerSocket

HandlerSocket概述:HandlerSocket是mysql的一個插件,集成在mysqld進程中,經過合併寫入、簡單協議等手段提升數據訪問性能

HandlerSocket工做原理:HandlerSocket繞過mysql的sql解析層,直接訪問mysql存儲層

Mysq穩定性提升方案:主從複製

mysq主從複製的優勢:

1)增長健壯性。主服務器出現問題時,切換到從服務器做爲備份

2)優化響應時間。不要同時在主從服務器上進行更新,這樣可能引發衝突

3)在從服務器備份過程當中,主服務器繼續處理更新

主從複製工做原理:經過3個實現過程,一個過程發生在主服務器上,兩個過程發生在從服務器上

1)主服務器將用戶對數據庫更新的操做以二進制格式保存在binlog日誌文件中,而後由binlog dump線程將日誌文件傳輸給從服務器

2)從服務器經過一個I/O線程將主服務器的二進制文件更新操做複製到一個relay log的中繼日誌文件中

3)從服務器經過另外一個sql線程將relay log中繼日誌文件的操做依次在本地執行,從而實現了主從之間的數據同步

主從複製配置:

1)確認主從服務器的Mysql版本

2)在主服務上爲從服務器設置一個鏈接帳戶,授予REPLICATION SLAVE權限:GRANT REPLICATION SLAVE ON *.* TO 'username'@'%.mydomain.com' IDENTIFIED BY 'password'; 

3)配置主服務器:打開二進制文件,指定惟一Server ID

4)重啓主服務器

5)配置從服務器:提供一個惟一Server ID,不能跟主服務器的server id一致,重啓mysql服務器

6)啓動從服務器

7)指定主服務器信息:不須要中止服務器,能夠爲從服務器指定不一樣的主服務器,CHANGE MASTER TO MASTER_HOST='主服務器的ip地址',

-> MASTER_USER='主服務器帳戶名',

-> MASTER_PASSWORD='主服務帳戶密碼',

-> MASTER_LOG_FILE='二進制文件名'

-> MASTER_LOG_POS=0(從日誌的開始位置開始讀)

8)查看從服務器的設置是否正確:show slave status\G

web應用加速方案(反向代理)

代理服務器概述:介於客戶端和web服務器之間的另外一臺服務器稱爲代理服務器。具備緩存功能,有很大的存儲空間,不斷將新取得的數據存到本地的存儲器上,若是已經存在用戶請求的數據會直接將數據發送給用戶,從而顯著提升瀏覽速度和效率

代理服務器工做流程:瀏覽器不直接到web服務器取回網頁,而向代理服務器發出請求,信號先送到代理服務器,由代理度武器取回瀏覽器鎖須要信息並傳送給瀏覽器

代理服務器做用

1)利用反向代理服務器的安全特性處理事務

2)利用高速緩存特性在高併發量的服務器上加速

反向代理服務器:Nginx(也是高性能web服務器)、Squid(功能很是強大,能夠作傳統代理、訪問控制、身份驗證、流量管理。squid體積很是龐大,配置過於複雜)、Varnish(專一於反向代理,更簡單、效率更高)

異步計算方案:Gearman

web應用比較耗時的操做:

1)剪裁用戶上傳的圖片,或者生成縮略圖

2)用戶上傳文件分發到多臺服務器上

3)對上傳視頻進行轉碼

Geraman概述:Gearman是一個分發任務的程序框架。包含3部分:Client(建立併發起一個Job請求)、Job Server(找到合適的worker,並把job交給worker)、Worker(執行job,全部job都是由worker完成)。可使用Gearman異步發送郵件

Geraman工做流程:Client負責把一個job發送給job server,job server從worker羣中找到合適的worker併發送job。worker負責處理job,完成後把結果發送給job server,接着job server 把worker發送的結果返回給client。另外gearman支持異步模式,client沒必要等待worker返回處理結果而直接返回,從而實現異步計算

須要瞭解並掌握的知識

一、吞吐率:單位時間內服務器處理的請求數

二、壓力測試:測試工具LoadRunner、Jmeter、ab

ab是apache附帶的壓力測試軟件,容易使用,ab經常使用的參數:

1)-n:在測試會話中執行的請求個數,默認執行一個請求

2)-c:要建立的併發用戶數,默認建立一個用戶數

3)-t:等待web服務器響應的最大時間(秒),默認沒有時間限制

4)-k:使用Keep-Alive特性

5)-c:對請求附加一個Cookie

三、持久鏈接:又稱爲長鏈接,指tcp鏈接中持續發送多分數據而不斷開的鏈接,與之對應的稱爲短鏈接,就是鏈接後發送一次數據便斷開鏈接。

相關文章
相關標籤/搜索