網站性能是客觀的指標,可以具體體現到回應時間、輸送量、併發數、效能計數器等技術指標。
1、效能測試指標1.1 回應時間
指應用執行一個操作需要的時間,指從發出請求到最後收到回應資料所需要的時間。 如下列出了系統常用的操作回應時間表.
操作
回應時間
打開一個網站
幾秒
資料庫查詢一條記錄(有索引)
十幾毫秒
機械磁片一次定址定位
4毫秒
從機械磁片順序讀取1M資料
2毫秒
從SSD磁片順序讀取1M資料
0.3毫秒
從遠端分散式換成Redis讀取一個資料
0.5毫秒
從記憶體讀取1M資料
十幾微妙
JAVA程式本地方法調用
幾微妙
網路傳輸2Kb資料
1微妙
實踐中計算回應時間通常是通過平均時間計算的平均值。
1.2併發數
指系統能夠同時處理的請求的數目,這個數位也反映了系統的負載性能。 對於網站而言,併發數指網站使用者同時提交請求的使用者數目。
網站系統使用者數>網站線上使用者數>網站併發使用者數
1.3輸送量
指單位時間內系統處理的請求數量,體現系統的整體處理能力。 對於網站,可用「請求數/秒」或「頁面數/秒」或「訪問人數/天」或「處理業務數/小時」等來衡量。
TPS(每秒事物數)是輸送量的一個常用量化指標。 刺蝟還有HPS(每秒HTTP請求數)、QPS(每秒查詢數)。
1.4效能計數器
指作業系統的一些資料指標如System load(系統負載),CPU使用率、記憶體使用率、磁片等使用方式。
2、性能優化策略
根據網站分層架構,可分為Web前端性能優化、應用伺服器性能優化、存儲伺服器性能優化。
2.1 Web前端優化2.1.1 瀏覽器訪問優化減少HTTP請求數,主要可通過合併CSS,JavaScript、圖片。 使用瀏覽器端緩存。 在某些時候,靜態資源檔編寫需要及時應用到用戶端瀏覽器,這種情況下,可通過改變檔案名來實現。 啟用頁面壓縮,文字檔的壓縮效率可達80%以上。 CSS放在頁面最上面,JavaScript放在頁面最下面減少Cookie傳輸。 可以考慮使用獨立功能變數名稱來發送Cookie等。 2.1.2 CDN加速
CDN的本質仍然是一個緩存,只是部署在離使用者最近的伺服器上,一般緩存的都是靜態資源。
2.1.3 反向代理
除了能夠保護網站安全的作用以及負載均衡的作用外,反向代理還能夠提供緩存作用(動態資源)。
2.2 應用伺服器性能優化
應用伺服器就是處理網站業務的伺服器,網站的業務代碼都部署在這裡,主要優化手段有緩存、集群、非同步等。
2.2.1 分散式緩存
緩存主要用來存放哪些讀寫比很高、很少變化的資料。
分散式緩存指緩存部署在多個伺服器組成的集群中,以集群方式提供快取服務,其具體架構有兩種,一種是以JBoss Cache偽代碼的需要更新同步的分散式緩存, 一種是以Memcached為代表的不互相通信的分散式緩存。
Jboss Cache 的分散式緩存在集群中的所有伺服器中保存相同的緩存資料,當某台伺服器有緩存更新的時候,會通知集群中其他機器跟新緩存資料。 優點是應用程式可以 從本地 快速的獲取緩存資料,但當集群規模較大的時候,緩存更新資訊需要通過到集群所有機器,其代價可想而知。
大型網站需要的緩存資料一般都很大,可能會有TB的記憶體佔用,這時候就的使用Memcached,是一中互不通信的架構,每台存儲的緩存資料可以不一樣。
2.2.2 非同步作業
為了改善網站的擴充性,可以使用訊息佇列將調用非同步化。
2.2.3 使用集群
在網站高併發訪問的情況下,使用負載均衡技術為一個應用構建一個由多台伺服器組成的集群,將併發訪問請求分發到多台伺服器上處理。
2.2.4 代碼優化
代碼優化主要涉及多執行緒、資源複用(物件集區或單例)、資料結構和垃圾回收。
2.3 存儲性能優化
可以考慮使用分散式存儲、openfiler、磁碟陣列、HDFS(Hadoop)。
原文連結:HTTP://blog.csdn.net/chaofanwei/article/details/27168603