新聞中心
網(wǎng)站性能是客觀的指標(biāo),可以具體體現(xiàn)到響應(yīng)時(shí)間、吞吐量、并發(fā)數(shù)、性能計(jì)數(shù)器等技術(shù)指標(biāo)。
1、性能測(cè)試指標(biāo) 1.1 響應(yīng)時(shí)間
指應(yīng)用執(zhí)行一個(gè)操作需要的時(shí)間,指從發(fā)出請(qǐng)求到最后收到響應(yīng)數(shù)據(jù)所需要的時(shí)間。如下列出了系統(tǒng)常用的操作響應(yīng)時(shí)間表.
操作
響應(yīng)時(shí)間
打開一個(gè)網(wǎng)站
幾秒
數(shù)據(jù)庫(kù)查詢一條記錄(有索引)
十幾毫秒
機(jī)械磁盤一次尋址定位
4毫秒
從機(jī)械磁盤順序讀取1M數(shù)據(jù)
2毫秒
從SSD磁盤順序讀取1M數(shù)據(jù)
0.3毫秒
從遠(yuǎn)程分布式換成Redis讀取一個(gè)數(shù)據(jù)
0.5毫秒
從內(nèi)存讀取1M數(shù)據(jù)
十幾微妙
Java程序本地方法調(diào)用
幾微妙
網(wǎng)絡(luò)傳輸2Kb數(shù)據(jù)
1微妙
實(shí)踐中計(jì)算響應(yīng)時(shí)間通常是通過(guò)平均時(shí)間計(jì)算的平均值。
1.2并發(fā)數(shù)
指系統(tǒng)能夠同時(shí)處理的請(qǐng)求的數(shù)目,這個(gè)數(shù)字也反映了系統(tǒng)的負(fù)載性能。對(duì)于網(wǎng)站而言,并發(fā)數(shù)指網(wǎng)站用戶同時(shí)提交請(qǐng)求的用戶數(shù)目。
網(wǎng)站系統(tǒng)用戶數(shù)>網(wǎng)站在線用戶數(shù)>網(wǎng)站并發(fā)用戶數(shù)
1.3吞吐量
指單位時(shí)間內(nèi)系統(tǒng)處理的請(qǐng)求數(shù)量,體現(xiàn)系統(tǒng)的整體處理能力。對(duì)于網(wǎng)站,可用“請(qǐng)求數(shù)/秒”或“頁(yè)面數(shù)/秒”或“訪問(wèn)人數(shù)/天”或“處理業(yè)務(wù)數(shù)/小時(shí)”等來(lái)衡量。
TPS(每秒事物數(shù))是吞吐量的一個(gè)常用量化指標(biāo)。刺猬還有HPS(每秒HTTP請(qǐng)求數(shù))、QPS(每秒查詢數(shù))。
1.4性能計(jì)數(shù)器
指操作系統(tǒng)的一些數(shù)據(jù)指標(biāo)如System load(系統(tǒng)負(fù)載),CPU使用率、內(nèi)存使用率、磁盤等使用情況。
2、性能優(yōu)化策略
根據(jù)網(wǎng)站分層架構(gòu),可分為Web前端性能優(yōu)化、應(yīng)用服務(wù)器性能優(yōu)化、存儲(chǔ)服務(wù)器性能優(yōu)化。
2.1 Web前端優(yōu)化 2.1.1 瀏覽器訪問(wèn)優(yōu)化 減少HTTP請(qǐng)求數(shù),主要可通過(guò)合并CSS,JavaScript、圖片。 使用瀏覽器端緩存。在某些時(shí)候,靜態(tài)資源文件編寫需要及時(shí)應(yīng)用到客戶端瀏覽器,這種情況下,可通過(guò)改變文件名來(lái)實(shí)現(xiàn)。 啟用頁(yè)面壓縮,文本文件的壓縮效率可達(dá)80%以上。 CSS放在頁(yè)面最上面,JavaScript放在頁(yè)面最下面 減少Cookie傳輸。可以考慮使用獨(dú)立域名來(lái)發(fā)送Cookie等。 2.1.2 CDN加速
CDN的本質(zhì)仍然是一個(gè)緩存,只是部署在離用戶最近的服務(wù)器上,一般緩存的都是靜態(tài)資源。
2.1.3 反向代理
除了能夠保護(hù)網(wǎng)站安全的作用以及負(fù)載均衡的作用外,反向代理還能夠提供緩存作用(動(dòng)態(tài)資源)。
2.2 應(yīng)用服務(wù)器性能優(yōu)化
應(yīng)用服務(wù)器就是處理網(wǎng)站業(yè)務(wù)的服務(wù)器,網(wǎng)站的業(yè)務(wù)代碼都部署在這里,主要優(yōu)化手段有緩存、集群、異步等。
2.2.1 分布式緩存
緩存主要用來(lái)存放哪些讀寫比很高、很少變化的數(shù)據(jù)。
分布式緩存指緩存部署在多個(gè)服務(wù)器組成的集群中,以集群方式提供緩存服務(wù),其具體架構(gòu)有兩種,一種是以JBoss Cache偽代碼的需要更新同步的分布式緩存,一種是以Memcached為代表的不互相通信的分布式緩存。
Jboss Cache 的分布式緩存在集群中的所有服務(wù)器中保存相同的緩存數(shù)據(jù),當(dāng)某臺(tái)服務(wù)器有緩存更新的時(shí)候,會(huì)通知集群中其他機(jī)器跟新緩存數(shù)據(jù)。優(yōu)點(diǎn)是應(yīng)用程序可以從本地快速的獲取緩存數(shù)據(jù),但當(dāng)集群規(guī)模較大的時(shí)候,緩存更新信息需要通過(guò)到集群所有機(jī)器,其代價(jià)可想而知。
大型網(wǎng)站需要的緩存數(shù)據(jù)一般都很大,可能會(huì)有TB的內(nèi)存占用,這時(shí)候就的使用Memcached,是一中互不通信的架構(gòu),每臺(tái)存儲(chǔ)的緩存數(shù)據(jù)可以不一樣。
2.2.2 異步操作
為了改善網(wǎng)站的擴(kuò)展性,可以使用消息隊(duì)列將調(diào)用異步化。
2.2.3 使用集群
在網(wǎng)站高并發(fā)訪問(wèn)的情況下,使用負(fù)載均衡技術(shù)為一個(gè)應(yīng)用構(gòu)建一個(gè)由多臺(tái)服務(wù)器組成的集群,將并發(fā)訪問(wèn)請(qǐng)求分發(fā)到多臺(tái)服務(wù)器上處理。
2.2.4 代碼優(yōu)化
代碼優(yōu)化主要涉及多線程、資源復(fù)用(對(duì)象池或單例)、數(shù)據(jù)結(jié)構(gòu)和垃圾回收。
2.3 存儲(chǔ)性能優(yōu)化
可以考慮使用分布式存儲(chǔ)、openfiler、磁盤陣列、HDFS(Hadoop)。
當(dāng)前題目:大型網(wǎng)站技術(shù)架構(gòu)(四)網(wǎng)站的高性能架構(gòu)
瀏覽地址:http://fisionsoft.com.cn/article/cjcppe.html