网站性能优化--实例分析篇
轉自:http://blog.sina.com.cn/s/blog_466c66400100bkis.html
--提升性能的同時為你節約10倍以上成本
From: http://blog.sina.com.cn/iyangjian
一,自選股分析
二,NBA比賽分析
三,播客分析
四,開心網分析
-----------------------------------------------------------------------------------------
下面的圖片都是在教育網訪問的情況,我故意放大了某些缺陷,這樣可以很好的模擬沒有部署服務的地區對用戶體驗的影響。我只能針對我熟悉和了解的項目進行分析,另外還有我們經常訪問的網站也會被拿來做素材分析。我們老大也說問題暴露出來,能推動解決的話也很好,大家別拍我。
一,自選股分析
某天我終于在教育網部署了一臺行情服務,興致沖沖的回家一試,貌似沒啥變化,該慢還慢。打開頁面過程持續了幾十秒,然后終于露出了行情,我再電擊每個組合 的時候就出現了上面的一幕??戳讼耭irebug,最慢資源排名前三依次為:高效計數服務,secure-cn統計服務,動態池服務。
高效計數服務是早期我參與的項目,那時候資源有限,全部部署在了網通。
secure-cn統計服務: 這個服務不慢是不正常的,到處都嵌,還不能不嵌。
動態池數據庫很牛,但在偏遠地區也鞭長莫及。這個缺點比較典型:
一,沒有在教育網部署。
二,沒有保持長連接。
三,沒有使用cahce
四,沒有使用壓縮
五,長達2.46K的http 請求header,捎帶大量cookie,見下面。
解決方法:我分析了下,下面這個數據變化很慢的,主要放一些市盈率和用戶股票列表。市盈率可以通過去年的每股收益來計算,以年計,可以變通一下。用戶股票 列表我也好幾個月沒更新了,大家并不是總更新。所以這部分數據是可以被設置一個很長的cache的,如果用戶更新了股票列表,我們也只需要在maxage 版本號上加1就ok了。另外,用戶點了一個組合,接看來也都要看幾個別的組合,沒有維持長連接顯然不合理的。在沒有部點的idc,壓縮就能明顯的提升響應 速度,這里就沒考慮。那個cookie太長點了吧,真的用的了那么長嗎。
http://vip.stock.finance.sina.com.cn/portfolio/stock.php?rn=1228707043897&pid=1245111&type=complete
----------------------------------------------------------------------------------------
GET /portfolio/stock.php?rn=1228707043897&pid=1245111&type=complete HTTP/1.1
Host: vip.stock.finance.sina.com.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: CurrentBar=attend; CurrentTab=state; CombinationSelected=154148; CommisionCookie=0; StampCookie=0; FeeCookie=0; BX=7t1oh653u6qvb&b=3&s=4k; SINA_NEWS_CUSTOMIZE_city=%u5317%u4EAC; userId=C7DHwoAi-ryCr69CGgyc3czekbyphdy5h
Cache-Control: max-age=0
HTTP/1.x 200 OK
Date: Mon, 08 Dec 2008 03:32:52 GMT
Server: Apache
Cache-Control: no-cache
Expires: Mon, 08 Dec 2008 03:34:52 GMT
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=GBK
----------------------------------------------------------------------------------------
如果不是這幾個資源的引用,這個頁面的速度將非???。
這里引用了某些未在教育網部署的服務,導致半天出不了數據。
由于引入了mark.sina.com.cn的數據導致整個頁面卡在那里。引用別人數據的時候你了解過他們是怎么分布自己服務的嗎?可能稍有不慎拖垮整個頁面。
二,NBA比賽分析
這里的js真的有必要每次都發起請求嗎?連續請求3同域個資源,為什么不維持下長連接?
這些圖片的304響應為什么都在秒級以上?
三,播客分析
這些圖片和視頻由于解析錯誤,教育網用戶被解析到廣州服務器組,導致不可訪問。
四,開心網分析
打開開心網,看到最多的就是人物圖片,我就僅僅針對圖片進行下分析:
1,瀏覽一個新人的頁面,大概要下載30~40張小圖片。使用單一的pic.kaixin001.com域名,不能提高并發,可以考慮多域名取模。
2,圖片請求帶了cookie,上行帶寬浪費點無所謂,但是會影響響應速度和用戶體驗。
3, /logo/10/51/50_105146_1.jpg ,他們設置了一個比較大的maxage,通過改名來實現更新大可不必,我用我的方法更好。
4,每次點刷新頁面,都會重新加載很多圖片,雖然很多是304,我覺得絕大部分就不應該發這個請求。
5,他用的是ChinaCache的CDN,Server: nginx,我不知道ChinaCache對這個server修改到什么程度。統計發現這個人物小圖片大都在2k左右。很多才1k多。沒有必要把他們當作圖片處理。盡量不產生磁盤i/o,包括fstat這樣的系統調用,甚至sendfile這樣的zero copy系統調用,我覺得都浪費. 同時還要保證圖片更新立刻被感應到。??
其他方面還有很多可以改進的,想讓他們的頁面響應速度上一個等級,節約更多帶寬和服務器資源并非難事。
總結
以上是生活随笔為你收集整理的网站性能优化--实例分析篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【编程题】【Scratch二级】2021
- 下一篇: PHP自学笔记 ---李炎恢老师PHP第