1、如何進行網站性能優化
內容頁面優化就一個要點:你的訪客要看到什麼內容你就做什麼內容。建議你以一個訪客的角度來看你自己的網站,內容是否完善、頁面是否好看、框架是否清晰……做好這些就算是內容優化了。
2、如何提高網站並發訪問性能
1、HTML靜態化
其實大家都知道,效率最高、消耗最小的就是純靜態化的html頁面,所以我們盡可能使我們的網站上的頁面採用靜態頁面來實現,這個最簡單的方法
其實也是最有效的方法。但是對於大量內容並且頻繁更新的網站,我們無法全部手動去挨個實現,於是出現了我們常見的信息發布系統CMS,像我們常訪問的各個
門戶站點的新聞頻道,甚至他們的其他頻道,都是通過信息發布系統來管理和實現的,信息發布系統可以實現最簡單的信息錄入自動生成靜態頁面,還能具備頻道管
理、許可權管理、自動抓取等功能,對於一個大型網站來說,擁有一套高效、可管理的CMS是必不可少的。
除了門戶和信息發布類型的網站,對於交互性要求很高的社區類型網站來說,盡可能的靜態化也是提高性能的必要手段,將社區內的帖子、文章進行實時的靜態化、有更新的時候再重新靜態化也是大量使用的策略,像Mop的大雜燴就是使用了這樣的策略,網易社區等也是如此。
同時,html靜態化也是某些緩存策略使用的手段,對於系統中頻繁使用資料庫查詢但是內容更新很小的應用,可以考慮使用html靜態化來實現。
比如論壇中論壇的公用設置信息,這些信息目前的主流論壇都可以進行後台管理並且存儲在資料庫中,這些信息其實大量被前台程序調用,但是更新頻率很小,可以
考慮將這部分內容進行後台更新的時候進行靜態化,這樣避免了大量的資料庫訪問請求。
2、圖片伺服器分離
大家知道,對於Web伺服器來說,不管是Apache、IIS還是其他容器,圖片是最消耗資源的,於是我們有必要將圖片與頁面進行分離,這是基
本上大型網站都會採用的策略,他們都有獨立的、甚至很多台的圖片伺服器。這樣的架構可以降低提供頁面訪問請求的伺服器系統壓力,並且可以保證系統不會因為
圖片問題而崩潰。
在應用伺服器和圖片伺服器上,可以進行不同的配置優化,比如apache在配置ContentType的時候可以盡量少支持、盡可能少的LoadMole,保證更高的系統消耗和執行效率。
3、資料庫集群、庫表散列
大型網站都有復雜的應用,這些應用必須使用資料庫,那麼在面對大量訪問的時候,資料庫的瓶頸很快就能顯現出來,這時一台資料庫將很快無法滿足應用,於是我們需要使用資料庫集群或者庫表散列。
在資料庫集群方面,很多資料庫都有自己的解決方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是類似的方案,您使用了什麼樣的DB,就參考相應的解決方案來實施即可。
上面提到的資料庫集群由於在架構、成本、擴張性方面都會受到所採用DB類型的限制,於是我們需要從應用程序的角度來考慮改善系統架構,庫表散列是常用並且最有效的解決方案。
我們在應用程序中安裝業務和應用或者功能模塊將資料庫進行分離,不同的模塊對應不同的資料庫或者表,再按照一定的策略對某個頁面或者功能進行更小的資料庫散列,比如用戶表,按照用戶ID進行表散列,這樣就能夠低成本的提升系統的性能並且有很好的擴展性。
sohu的論壇就是採用了這樣的架構,將論壇的用戶、設置、帖子等信息進行資料庫分離,然後對帖子、用戶按照板塊和ID進行散列資料庫和表,最終可以在配置文件中進行簡單的配置便能讓系統隨時增加一台低成本的資料庫進來補充系統性能。
4、緩存
緩存一詞搞技術的都接觸過,很多地方用到緩存。網站架構和網站開發中的緩存也是非常重要。這里先講述最基本的兩種緩存。高級和分布式的緩存在後面講述。
架構方面的緩存,對Apache比較熟悉的人都能知道Apache提供了自己的緩存模塊,也可以使用外加的Squid模塊進行緩存,這兩種方式均可以有效的提高Apache的訪問響應能力。
網站程序開發方面的緩存,Linux上提供的Memory
Cache是常用的緩存介面,可以在web開發中使用,比如用Java開發的時候就可以調用MemoryCache對一些數據進行緩存和通訊共享,一些大
型社區使用了這樣的架構。另外,在使用web語言開發的時候,各種語言基本都有自己的緩存模塊和方法,PHP有Pear的Cache模塊,Java就更多
了,.net不是很熟悉,相信也肯定有。
5、鏡像
鏡像是大型網站常採用的提高性能和數據安全性的方式,鏡像的技術可以解決不同網路接入商和地域帶來的用戶訪問速度差異,比如ChinaNet和
ENet之間的差異就促使了很多網站在教育網內搭建鏡像站點,數據進行定時更新或者實時更新。在鏡像的細節技術方面,這里不闡述太深,有很多專業的現
成的解決架構和產品可選。也有廉價的通過軟體實現的思路,比如Linux上的rsync等工具。
6、負載均衡
負載均衡將是大型網站解決高負荷訪問和大量並發請求採用的高端解決辦法。
負載均衡技術發展了多年,有很多專業的服務提供商和產品可以選擇,我個人接觸過一些解決方法,其中有兩個架構可以給大家做參考。
(1)、硬體四層交換
第四層交換使用第三層和第四層信息包的報頭信息,根據應用區間識別業務流,將整個區間段的業務流分配到合適的應用伺服器進行處理。
第四層交換功能就像是虛IP,指向物理伺服器。它傳輸的業務服從的協議多種多樣,有HTTP、FTP、NFS、Telnet或其他協議。這些業
務在物理伺服器基礎上,需要復雜的載量平衡演算法。在IP世界,業務類型由終端TCP或UDP埠地址來決定,在第四層交換中的應用區間則由源端和終端IP
地址、TCP和UDP埠共同決定。
在硬體四層交換產品領域,有一些知名的產品可以選擇,比如Alteon、F5等,這些產品很昂貴,但是物有所值,能夠提供非常優秀的性能和很靈活的管理能力。「Yahoo中國」當初接近2000台伺服器,只使用了三、四台Alteon就搞定了。
(2)、軟體四層交換
大家知道了硬體四層交換機的原理後,基於OSI模型來實現的軟體四層交換也就應運而生,這樣的解決方案實現的原理一致,不過性能稍差。但是滿足一定量的壓力還是游刃有餘的,有人說軟體實現方式其實更靈活,處理能力完全看你配置的熟悉能力。
軟體四層交換我們可以使用Linux上常用的LVS來解決,LVS就是Linux Virtual
Server,他提供了基於心跳線heartbeat的實時災難應對解決方案,提高系統的強壯性,同時可供了靈活的虛擬VIP配置和管理功能,可以同時滿
足多種應用需求,這對於分布式的系統來說必不可少。
一個典型的使用負載均衡的策略就是,在軟體或者硬體四層交換的基礎上搭建squid集群,這種思路在很多大型網站包括搜索引擎上被採用,這樣的架構低成本、高性能還有很強的擴張性,隨時往架構裡面增減節點都非常容易。
對於大型網站來說,前面提到的每個方法可能都會被同時使用到,這里介紹得比較淺顯,具體實現過程中很多細節還需要大家慢慢熟悉和體會。有時一個很小的squid參數或者apache參數設置,對於系統性能的影響就會很大。
7、最新:CDN加速技術
什麼是CDN?
CDN的全稱是內容分發網路。其目的是通過在現有的Internet中增加一層新的網路架構,將網站的內容發布到最接近用戶的網路「邊緣」,使用戶可以就近取得所需的內容,提高用戶訪問網站的響應速度。
CDN有別於鏡像,因為它比鏡像更智能,或者可以做這樣一個比喻:CDN=更智能的鏡像+緩存+流量導流。因而,CDN可以明顯提高
Internet網路中信息流動的效率。從技術上全面解決由於網路帶寬小、用戶訪問量大、網點分布不均等問題,提高用戶訪問網站的響應速度。
CDN的類型特點
CDN的實現分為三類:鏡像、高速緩存、專線。
鏡像站點(Mirror Site),是最常見的,它讓內容直接發布,適用於靜態和准動態的數據同步。但是購買和維護新伺服器的費用較高,還必須在各個地區設置鏡像伺服器,配備專業技術人員進行管理與維護。對於大型網站來說,更新所用的帶寬成本也大大提高了。
高速緩存,成本較低,適用於靜態內容。Internet的統計表明,超過80%的用戶經常訪問的是20%的網站的內容,在這個規律下,緩存服務
器可以處理大部分客戶的靜態請求,而原始的伺服器只需處理約20%左右的非緩存請求和動態請求,於是大大加快了客戶請求的響應時間,並降低了原始伺服器的
負載。
CDN服務一般會在全國范圍內的關鍵節點上放置緩存伺服器。
專線,讓用戶直接訪問數據源,可以實現數據的動態同步。
CDN的實例
舉個例子來說,當某用戶訪問網站時,網站會利用全球負載均衡技術,將用戶的訪問指向到距離用戶最近的正常工作的緩存伺服器上,直接響應用戶的請求。
當用戶訪問已經使用了CDN服務的網站時,其解析過程與傳統解析方式的最大區別就在於網站的授權域名伺服器不是以傳統的輪詢方式來響應本地
DNS的解析請求,而是充分考慮用戶發起請求的地點和當時網路的情況,來決定把用戶的請求定向到離用戶最近同時負載相對較輕的節點緩存伺服器上。
通過用戶定位演算法和伺服器健康檢測演算法綜合後的數據,可以將用戶的請求就近定向到分布在網路「邊緣」的緩存伺服器上,保證用戶的訪問能得到更及時可靠的響應。
由於大量的用戶訪問都由分布在網路邊緣的CDN節點緩存伺服器直接響應了,這就不僅提高了用戶的訪問質量,同時有效地降低了源伺服器的負載壓力。
3、如何優化網站伺服器提升網站訪問速度
網站運營的任何時期,網站訪問速度都是至關重要的部分,它是網站友好體驗中最基本的一項,如果訪問體驗都令人不滿意,那麼後期所做的營銷推廣模式都有可能徒勞無功,因為網路中客戶的選擇成本很低,加上普遍客戶的耐心都不高,頁面訪問超過6秒客戶就會選擇離開,這對於一些流量本來就不高的企業網站來說無疑是雪上加霜。網站訪問速度既然如此重要,今天筆者也要跟大家分享幾個關於提升速度體驗的方法,雖然網上有很多類似的文章和觀點,但是大多數都是網站內部去解析,今天筆者要從伺服器方面聊聊如何優化網站伺服器提升網站訪問速度。
大多數網站運營優化人員都知道通過頁面優化來提升訪問速度,當你已經完成了優化操作之後,發現沒有什麼大的改善,此時你就應該去思考是不是其它因素導致訪問速度緩慢。比如:長期使用的伺服器性能下降所致,為了保障業務不受影響,你或許應該對正在使用的伺服器進行升級和優化了。
一、升級正在使用中的伺服器
進行伺服器升級工作之前,要考慮多方面的問題,是升級已有的伺服器還是購置新的伺服器設備須根據實際情況抉擇。首先來說升級現有的伺服器設備,一般來說網站運營到後期隨著業務不斷增加,多平台應用的開發對於伺服器性能的要求也逐步提升,長而久之伺服器遇到性能瓶頸也是情理之中的事情,對於這種情況,我們可以通過升級伺服器(例如增加硬體設備或網路帶寬)等相關配置來滿足不斷擴大的業務需求,那麼伺服器性能瓶頸問題就可以得到解決。再來說說購置新的伺服器設備,也許有人會問為什麼要重新購置呢,升級已有的伺服器不可以嗎?
這里筆者也當然想替大家節省一筆開支,但是根本問題在於大多數企業選購伺服器時並不合理,加上網站建設之初為節約成本而選擇了擴展性較差的伺服器,導致即便是我們對現有的伺服器進行升級,其性能提升的強度依然不夠。此時,就需要重新購置伺服器配合了,對於伺服器的購置也有很多技巧,這里簡單的做個推薦,如果用戶群體是國內的建議選擇國內知名的伺服器供應商,若客戶群體是遍布全球,大家可以選擇香港伺服器或美國伺服器,除此之外,更重要的是要根據自身行業的特性做出合理的選擇。
二、優化正在使用的伺服器
不管是完成升級後的伺服器,還是新購置的伺服器,我們都要對其進行優化,從而提升伺服器的性能以及利用率。下面從四個方面跟大家談談如何優化伺服器:
要點一:盡可能的減少HTTP請求數
從客戶訪問網站頁面到整個頁面內容完全展現出來,這其中要花費較多的時間來下載各種Scripts、CSS樣式表、Flash以及圖片,而每一類下載都相當於一次HTTP請求,這樣的請求越多網站被完全載入出來所花的時間會越長,意味著客戶端的訪問會很慢,那麼此時就需要盡可能的減少HTTP請求數,通常我們可以直接把css和js寫入到頁面中,避免了外部的調用;或者我們可以把CSS文件和JS文件分來,在後台再進行合並,這樣客戶端瀏覽器相當於一次請求。總而言之,減少HTTP請求數我們可以通過減少外部各類文件的數量調用次數來達到其目的。
要點二:降低DNS查詢時間
眾所周知網路伺服器端的域名和IP地址是相互對應的,當客戶端發出請求時,計算機還需要通過域名和IP地址的相互轉換來判斷,而這個轉換工作便是域名解析DNS,通常DNS的查詢需要10~20毫秒時間,客戶端瀏覽器也只會等待DNS查詢結束之後才會載入此域名下的內容。因此,我們要加快頁面的訪問速度,就可以從降低DNS查詢時間方面去做改善。
要點三:啟用伺服器Gzip壓縮功能
對於大中型網站來說,頁面的內容多且比較多樣化,單個頁面的大小可能是幾百K以上了,客戶端訪問的時候下載會比較慢,此時我們可以採用伺服器Gzip頁面壓縮功能,可以將一個大小為100K的頁面文件壓縮成25K以下,這樣就可以減少網路傳輸的數量從而提高客戶端訪問速度。一般伺服器都是可以使用Gzip壓縮功能的,並且能夠針對JS文件、CSS文件和Html進行壓縮,多方面去進行優化網站訪問速度。
要點四:推薦大中型網站使用CDN加速工具
CDN加速是目前大型網站普遍使用的頁面加速方式,它對於網站優化幾乎沒有影響的,基本原理是將網站鏡像備份到很多伺服器節點上,使伺服器節點周圍的用戶訪問速度更快,從而提升客戶端高速訪問網站的體驗;但是並不是所有的網站都適合使用CDN加速,一般對於小規模站點個人站的話,就不需要使用CDN加速,畢竟從長期來看這可是一筆不小的開支;建議圖片站以及多媒體站點可使用CDN加速。
至此,以上為大家講到了可以通過優化和升級伺服器兩個方面提升網站訪問速度,如果你的網站目前的訪問體驗不佳,可以嘗試進行以上操作,相信能夠幫助大家改善此類問題。
4、如何優化網路
其一:盡量關閉那些特別佔用資源的程序,如:殺毒軟體掃描時候
其二:
好象有個什麼軟體叫作:e! My'Net'Assistant
能優化上網速度~~~
介紹如下:
e! My'Net'Assistant是一個集網路優化調整和網路安全維護的設置與管理的軟體。e! My'Net'Assistant為用戶提供:網路速度優化設置(可以用於Modem,ADSL,VDSL,LAN,PLC,Cable Modem,衛星傳輸等主流上網方式的性能優化,經過實測,1MB的ADSL,優化前下載速度有 100KB/S 已經很快了,優化後速度可以達到150甚至5xxKB/S,其性能可以提高100%—500%)、網路信息安全維護(IE插件免疫,常見木馬分析,常見病毒檢測,彈出廣告攔截,惡意網站免疫)、系統常規設置、系統文件及注冊表備份與還原、系統進程,服務,網路管理與監控等幾十項功能模塊。
全面提升網路性能,維護系統安全;讓網路管理更有效,讓上網更方便;加速!可以更快就不要等待;鎖定!不想被用的就全部禁止;提升!讓電腦性能飆到最高點!
簡潔、合理的軟體界面布局,全智能化和向導式的網路優化設置功能,使你操作起來輕松自如,一切就這么簡單。現在,就開始行動......原來電腦性能可以更好的!
1.領先的網路優化項目,全面提升網路性能:軟體開發組通過對WINDOWS操作系統環境(9X/Me/NT/2000/XP/2003)下的500台電腦的實際評測分析,自主分析評測出絕對領先的多達29項的網路優化項目,通過智能化的自動優化向導,將網路系統參數設置得更合理,讓用戶的網路性能發揮到最高點;為方便高級用戶,軟體內置了詳細的自定義手工優化系統,可以更精確的設置各個項目;最安全、最先進的系統同步備份與還原功能,可以讓用戶輕松的將系統恢復到優化以前的狀態,以保障系統的優化安全。
2.全新、快速的MaxMTU檢測演算法,讓用戶可以輕松檢測出自己的TCP/IP最大傳輸單元:MaxMTU是指TCP/IP的最大傳輸單元,在TCP/IP協議中,將要傳輸的數據分成較小的組進行傳輸。MaxMTU的正確設置在一定程度上關繫到網路優化的成敗。而本軟體的MaxMTU偵測模塊可以高效准確的檢測出正確的MaxMTU值,徹底解決同類軟體檢測MaxMTU波動性較大的弊病,同時在檢測過程中對系統資源(如CPU)的佔用率極低。
3.高效的網路信息檢測技術:可以非常准確的檢測出當前用戶的詳細的網路信息。
4.去除上網瀏覽網頁時彈出的煩人的IE插件安裝窗口:軟體中內置的"IE插件免疫"功能,可以有效屏蔽四百多種國內外常見的ActiveX控制項,包括:國內、國外、聊天、影音、游戲、安全、日常(如:3721上網助手、3721網路實名、CNNIC通用域名、百度IE搜索伴侶、3721中文郵、Flash Player)等等插件,還用戶一個干凈、清潔的網上沖浪環境。
5.常見木馬與病毒檢測分析:通過獨特方式對系統各方面進行掃描檢測分析,以找出系統中的隱患,維護系統的安全,真正做到「我的電腦,我控制」。
6.彈出廣告與惡意網站的剋星:通過簡單實用的方式真正屏蔽網站中的彈出廣告;自動免疫屏蔽惡意網站,用戶還可以通過此功能屏蔽不良網站,以達到阻止孩子訪問不良網站的目的,使他們免受有害信息的侵襲。
7.系統常規設置與優化:用戶可以輕松的進行包括:界面、圖標菜單、用戶許可權、IE常規等個性化設置;可以自動修復被惡意篡改的IE瀏覽器,分析IE地址欄中的已訪問網址並進行自定義刪除。
8.實用工具選項:從實用出發,為用戶量身定作包括:系統備份與還原、系統進程管理、內存整理、網路監控、軟體卸載、自動運行管理、網路校時與自動關機等實用工具,正真做到「有之必能用之」。
9.最安全、最先進的系統同步備份與還原功能:由軟體開發組獨創的最安全、最先進的系統同步備份與還原功能,可以讓用戶輕松的將系統恢復到優化與設置以前的狀態,以保障系統的優化與設置安全。
5、如何對網站進行系統優化:整體布局篇
建站之前網站的定位。網站建設之前你一定要清楚建這個網站的目的,電子商務網上商城銷售服裝,企業網站宣傳公司產品,個人博客分享經驗心得想清楚建站目的之後,就是分析網站的用戶群體了,針對不同的用戶群體,確定網站的整體風格。關於網站運營策劃,我會在後續文章中再談,這里就不多說了。分析用戶群體搜索習慣,確定網站關鍵詞。網站定位清楚之後,就要分析用戶群體的搜索習慣,他們會通過百度、Google搜索哪些詞語,用戶群體搜索量最大、競爭度相對較大的詞就是主關鍵詞,圍繞主關鍵詞發展來的詞語就是次關鍵詞(或者叫長尾關鍵詞)。比喻上文分析我公司關鍵詞排名下降中,提到的我公司的一個網站,主要是從事簡訊營銷的,在分析潛在客戶的搜索習慣後,我們確定網站的主關鍵詞是簡訊群發群發簡訊簡訊營銷,長尾關鍵詞是簡訊群發軟體簡訊群發軟體下載等。我們要把這些關鍵詞都記錄下來,包括競爭度大小、搜索量等。關於關鍵詞競爭度分析,武漢SEO博客會在後面文章單獨講。關鍵詞布局。這個環節在SEO整體布局中很重要。一般的布局思想是,主關鍵詞放在首頁,因為用戶需求大,競爭度大,長尾關鍵詞放欄目頁,相對競爭度大難以做排名的關鍵詞,我們還可以單獨做一個專題頁。一般首頁主推2~3個主關鍵詞,每個欄目頁主推1~2個常委關鍵詞,不過這也要看具體的情況。各個頁面的SEO。根據確定的、不同頁面的關鍵詞,進行系統的優化,包括Tittle,Keywords,Description,H1、H2、H3等標簽,圖片ALT屬性各個頁面要相互鏈接,主關鍵詞指向首頁,長尾關鍵詞指向相應的欄目頁,欄目頁之間也要相互鏈接,同時要注意鏈接錨文本的多樣化。外部推廣,主要增加外鏈。網站排名上升(關鍵詞排名),必須要有外部鏈接的輔助的。還是那句老話,內容為王,外鏈為皇。至於網站推廣的一些常用方法,我也會在後續文章中介紹,這里提醒兩點,是需要大家在做外鏈的時候要注意的:一是外鏈錨文本的多樣化,二是外鏈的增長速度,健康的外鏈是呈J型增長的,這樣增長的外鏈才不會被搜索引擎認為是作弊。網站的系統優化主要就包括這么多吧,當然其中還涉及到不少其他的問題,像伺服器的穩定性、各部門之間的協調配合等。
6、如何優化web網站的性能
提升頁面載入速度
1、圖片大小越小打開速度越快
2、網頁中代碼不要臃腫所以不要有無用代碼
3、js css使用外部引入
4、如果js css 不是顯示用戶看到的信息 而是一些特效的話放在最後載入。
7、網站打開速度慢怎麼辦,如何優化
網站打開速度慢的原因及解決方案:
一、網路傳輸質量
網路傳輸質量包含網站伺服器和用戶端的兩個方面網路帶寬質量,因為國內網路運營商分了電信、移動、聯通等不同的網路運營服務商,若伺服器和用戶處在不同網路運營商的帶寬環境下,會造成網路傳輸的跨網延遲。
針對這一現象,目前比較好的辦法就是採用DNS或CDN這類能夠智能根據用戶所在地區、網路線路進行智能匹配的系統,從而降低非必要的網路延遲,匹配對應的同網響應IP。
二、DNS解析時間
DNS解析包含往復解析的次數及每次解析所花費的時間,它們兩者的積即是DNS解析所耗費的時間,許多人都無視了DNS的重要性,其實DNS對網站解析速度也是十分重要的,一旦為網站提供DNS解析服務的伺服器遭受攻擊,所有訪問該網站域名的請求均無法正常傳達至網站伺服器。
另外DNS解析功能的細分提供能力也在一定程度上,影響著DNS解析的結果,因此針對這一問題,可以選擇一些像DNS.COM這類專業的DNS解析服務商,從而來保障域名解析的穩定。
三、伺服器性能
包含伺服器端與客戶機端的硬體裝備程度,相同的網路環境下,雙核的伺服器的運算才幹必定要強一些,毫無疑問的,相同的網路環境下,你用一台賽揚的機器和奔四雙核處置器的電腦,打開相同的頁面,速度,也必定不相同。
這個問題沒啥其他解決辦法,只能掏錢更新設備了。
四、伺服器軟體
軟體多少、安穩和軟體是否正確配置,都會影響到伺服器環境,致使影響到網路速度。伺服器裝置軟體防火牆,會獻身一些網路速度,所以VPS、或獨立伺服器用戶裝一個防火牆足矣。
五、頁面內容
頁面文件的巨細是網站是否能疾速翻開最重要一個要素,若是說伺服器等硬體方面咱們決議不了,我強烈主張從這兒下手,不管是表格仍是DIV+CSS,恰當的優化代碼,都能削減頁面巨細。
盡量優化代碼,用最少的代碼,冗餘代碼也是拖慢網站速度之一。
六、許多資料庫操作
小網站在履行許多資料庫操作時,也會影響網站翻開速度,這兒使asp+access布局的網站尤為顯著,尤其是一起有許多用戶提交談論時,就操作資料庫鎖死,致使網站打不開。
針對數據優化,這個就比較專業了,在這里就不詳細列舉,大家可以網上找一些相關教程說明。
七、頁面使用過多腳本
網站上運用許多JS是大忌,不只搜索引擎無法錄入,一起會不斷提交懇求添加伺服器擔負,例如滑鼠特效、節目的特效、狀態欄的特效等等。這些特效的原理是先由伺服器下載到你本地的機器,然後在你本地機器上運轉發生,然後你才幹看到的。特效做的多了,在你本地機器上就要運轉大半天才幹悉數完結,而若是你的主機裝備通常的話,那就更慢了。
所以網站內容主張一定要少用javascript特效,或盡量採用合並單獨的JS文件的形式減少重復讀取JS內容的調用次數。
八、頁面上用大圖像和FLASH
咱們曉得圖像是拖慢網速最重要一個要素,圖像通過處置,可以使圖像空間變小,不然許多的圖像一開始都會佔用許多空間又使網站翻開速度變得很慢,相同FLASH也是一個道理。
九、過多引證了其他網站的內容
包含你引證其他網站的圖像、視頻文件等,若是直接在頁面引證另外網站的東西,而那個網站的速度又慢,或許那個網站的該頁面現已不存在了,那麼你翻開的速度就會十分慢。
8、網站性能優化怎麼辦
一、前端優化
網站性能優化是一個很綜合的話題,涉及到伺服器的配置和網站前後端程序等各個方面,我只是從實際經歷出發,分享一下自己所嘗試過的網站性能優化方法。之所以在標題上掛一個web2.0,是因為本文更偏重於中小網站的性能優化,我所使用的系統也是典型web2.0的LAMP架構。
首先講講前端的優化,用戶訪問網頁的等待時間,有80%是發生在瀏覽器前端,特別是頁面和頁面中各種元素(圖片、CSS、Javascript、 flash…)的下載之上。因此在很多情況下,相對於把大量的時間花在艱苦而繁雜的程序改進上,前端的優化往往能起到事半功倍的作用。雅虎最近將內部使用的性能測試工具yslow向第三方公開,並發布了著名的網站性能優化的十三條規則,建議你下載並安裝yslow,並作為測評網站優化效果的工具。下面我挑其中特別有價值的具體說明一下優化的方法:
對於第一次訪問您網站,尚未在瀏覽器cache中緩存您網站內容的用戶,我們可以做的事情包括:
1)減少一個頁面訪問所產生的http連接次數
對於第一次訪問你網站的用戶,頁面所產生的http連接次數是影響性能的一個關鍵瓶頸。
對策:
- 盡量簡潔的頁面設計,最大程度減少圖片的使用,通過放棄一些不必要的頁面特效來減少javascript的使用。
- 使用一些優化技巧,比如利用圖片的背景位移減少圖片的個數;image map技術;使用Inline images將css圖片捆綁到網頁中。
- 盡量合並js和css文件,減少獨立文件個數。
2) 使用gzip壓縮網頁內容
使用gzip來壓縮網頁中的靜態內容,能夠顯著減少用戶訪問網頁時的等待時間(據說可達到60%)。主流的web伺服器都支持或提供gzip壓縮,如果使用apache伺服器,只需要在配置文件中開啟 mod_gzip(apache1.x)或mod_deflate(apache2.x)即可。凡是靜態的頁面,使用gzip壓縮都能夠顯著提高伺服器效率並減少帶寬支出,注意圖片內容本身已經是壓縮格式了,務必不要再進行壓縮。
3)將CSS放在頁面頂端,JS文件放在頁面底端
CSS的引用要放在html的頭部header中,JS文件引用盡量放在頁面底端標簽的後面,主要的思路是讓核心的頁面內容盡早顯示出來。不過要注意,一些大量使用js的頁面,可能有一些js文件放在底端會引起一些難以預料的問題,根據實際情況適當運用即可。
4)使JS文件內容最小化
具體來說就是使用一些javascript壓縮工具對js腳本進行壓縮,去除其中的空白字元、注釋,最小化變數名等。在使用gzip壓縮的基礎上,對js內容的壓縮能夠將性能再提高5%。
5)盡量減少外部腳本的使用,減少DNS查詢時間
不要在網頁中引用太多的外部腳本,首先,一次dns的解析過程會消耗20-120毫秒的時間;其次,如果在頁面中引用太多的外部文件(如各種廣告、聯盟等代碼),可能會因為外部文件的響應速度而將你的網站拖得很慢。如果不得不用,那麼就盡量將這些腳本放在頁腳吧。不過有一點需要提及,就是瀏覽器一般只能並行處理同一域名下的兩個請求,而對於不同子的域名則不受此限制,因此適當將本站靜態內容(css,js)放在其他的子域名下(如 static.xxx.com)會有利於提高瀏覽器並行下載網頁內容的能力。
對於您網站的經常性訪問用戶,主要的優化思路就是最大限度利用用戶瀏覽器的cache來減少伺服器的開銷。
1)在header中添加過期時間(Expires Header)
在header中給靜態內容添加一個較長的過期時間,這樣可以使用戶今後訪問只讀取緩存中的文件,而不會與伺服器產生任何的交互。不過這樣做也存在一些問題,當圖片、CSS和js文件更新時,用戶如果不刷新瀏覽器,就無法獲得此更新。這樣,我們在對圖片、css和js文件修改時,必須要進行重命名,才能保證用戶訪問到最新的內容。這可能會給開發造成不小的麻煩,因為這些文件可能被站點中的許多文件所引用。flickr提出的解決辦法是通過url rewrite使不同版本號的URL事實上指向同一個文件,這是一個聰明的辦法,因為url級別的操作效率是很高的,可以給開發過程提供不少便利。
要理解為什麼這樣做,必須要了解瀏覽器訪問url時的工作機制:
a. 第一次訪問url時,用戶從伺服器段獲取頁面內容,並把相關的文件(images,css,js…)放在高速緩存中,也會把文件頭中的expired time,last modified, ETags等相關信息也一同保留下來。
b. 用戶重復訪問url時,瀏覽器首先看高速緩存中是否有本站同名的文件,如果有,則檢查文件的過期時間;如果尚未過期,則直接從緩存中讀取文件,不再訪問伺服器。
c. 如果緩存中文件的過期時間不存在或已超出,則瀏覽器會訪問伺服器獲取文件的頭信息,檢查last modifed和ETags等信息,如果發現本地緩存中的文件在上次訪問後沒被修改,則使用本地緩存中的文件;如果修改過,則從伺服器上獲取最新版本。
我的經驗,如果可能,盡量遵循此原則給靜態文件添加過期時間,這樣可以大幅度減少用戶對伺服器資源的重復訪問。
2)將css和js文件放在獨立外部文件中引用
將css和js文件放在獨立文件中,這樣它們會被單獨緩存起來,在訪問其他頁面時可以從瀏覽器的高速緩存中直接讀取。一些網站的首頁可能是例外的,這些首頁的自身瀏覽可能並不大,但卻是用戶訪問網站的第一印象以及導向到其他頁面的起點,也可能這些頁面本身使用了大量的ajax局部刷新及技術,這時可以將 css和js文件直接寫在頁面中。
3)去掉重復的腳本
在IE中,包含重復的js腳本會導致瀏覽器的緩存不被使用,仔細檢查一下你的程序,去掉重復引用的腳本應該不是一件很難的事情。
4)避免重定向的發生
除了在header中人為的重定向之外,網頁重定向常在不經意間發生,被重定向的內容將不會使用瀏覽器的緩存。比如用戶在訪問www.xxx.com,伺服器會通過301轉向到www.xxx.com/,在後面加了一個「/」。如果伺服器的配置不好,這也會給伺服器帶來額外的負擔。通過配置apache的 alias或使用mod_rewrite模塊等方法,可以避免不必要的重定向。
還有一些,比如使用CDN分發機制、避免CSS表達式等、避免使用ETags等,因為不太常用,這里就不再贅述了。
做完了上述的優化,可以試著用yslow測試一下網頁的性能評分,一般都可以達到70分以上了。
當然,除了瀏覽器前端和靜態內容的優化之外,還有針對程序腳本、伺服器、資料庫、負載的優化,這些更深層次的優化方法對技術有更高的要求。本文的後半部分將重點探討後端的優化。
二、後端優化
上次寫完web2.0網站前端優化篇之後,一直想寫寫後端優化的方法,今天終於有時間將思路整理了出來。
前端優化可以避免我們造成無謂的伺服器和帶寬資源浪費,但隨著網站訪問量的增加,僅靠前端優化已經不能解決所有問題了,後端軟體處理並行請求的能力、程序運 行的效率、硬體性能以及系統的可擴展性,將成為影響網站性能和穩定的關鍵瓶頸所在。優化系統和程序的性能可以從以下的方面來入手:
1)apache、mysql等軟體的配置的優化
盡管apache和mysql等軟體在安裝後使用的默認設置足以使你的網站運行起來,但是通過調整mysql和apache的一些系統參數,還是可以追求更高的效率和穩定性。這個領域中有很多專業的文章和論壇(比如: http://www.mysqlperformanceblog.com/),要想掌握也需要進行深入的研究和實踐,這里就不重點討論了。
2)應用程序環境加速
這里僅以我最常應用的php開發環境為例,有一些工具軟體可以通過優化PHP運行環境來達到提速的目的,其基本原理大致是將PHP代碼預編譯並緩存起來,而不需要改變任何代碼,所以比較簡單,可以將php的運行效率提升50%以上。比較常用的免費php加速工具有:APC( http: //pecl.php.net/package-info.php?package=APC)、Turck MMCache( http://turck-mmcache.sourceforge.net)、php accelebrator(www.php-accelerator.co.uk),還有收費的Zend Performance Suite
3)將靜態內容和動態內容分開處理
apache是一個功能完善但比較龐大的web server,它的資源佔用基本上和同時運行的進程數呈正比,對伺服器內存的消耗比較大,處理並行任務的效率也一般。在一些情況下,我們可以用比較輕量級的web server來host靜態的圖片、樣式表和javascript文件,這樣可以大大提升靜態文件的處理速度,還可以減少對內存佔用。我使用的web server是來自俄羅斯的nginx,其他選擇方案還包括lighttpd和thttpd等。
4)基於反向代理的前端訪問負載均衡
當一台前端伺服器不足以應付用戶訪問時,通過前端機實現web訪問的負載均衡是最快速可行的方案。通過apache的mod_proxy可以實現基於反向代理的負載均衡,這里推薦使用nginx做代理伺服器,處理速度較apache更快一些。
5)應用緩存技術提高資料庫效能,文件緩存和分布式緩存
資料庫訪問處理並發訪問的能力是很多網站應用的關鍵瓶頸,在想到使用主從結構和多farm的方式構建伺服器集群之前,首先應該確保充分使用了資料庫查詢的緩存。一些資料庫類型(如mysql的innoDB)自身內置對緩存的支持,此外,還可以利用程序方法將常用的查詢通過文件或內存緩存起來。比如通過 php中的ob_start和文件讀寫函數可以很方便的實現文件形式的緩存,而如果你擁有多台伺服器,可以通過memcache技術通過分布式共享內存來對資料庫查詢進行緩存,不僅效率高而且擴展性好,memcache技術在livejournal和Craigslist.org等知名網站應用中都得到了檢驗。
6)伺服器運行狀態的檢測,找到影響性能的瓶頸所在
系統優化沒有一勞永逸的方法,需要通過檢測伺服器的運行狀態來及時發現影響性能的瓶頸,以及可能存在的潛在問題,因為網站的性能,永遠取決於木桶中的短板。可以編寫一些腳本來檢測web服務的運行,也有一些開源的軟體也提供了很好的功能
7)良好的擴展架構是穩定和性能的基礎
一些技巧和竅門可以幫你度過眼前的難關,但要想使網站具備應付大規模訪問的能力,則需要從系統架構上進行徹底的規劃,好在很多前人無私的把他們架構
網站的經驗分享給我們,使我們可以少走甚多彎路。我最近讀到的兩篇有啟發的文章:
- 從LiveJournal後台發展看大規模網站性能優化方法
- Myspace的六次重構
最後不得不提到程序編碼和資料庫結構對性能的影響,一系列糟糕的循環語句,一個不合理的查詢語句、一張設計不佳的數據表或索引表,都足以會使應用程序運行的速度成倍的降低。培養全局思考的能力,養成良好的編程習慣,並對資料庫運行機制有所了解,是提高編程質量的基礎。
9、如何提高網路性能
1.如果是下載推薦「迅雷」跟「DUDU加速器」;
2.如果是瀏覽網頁建議用「WINDOWS優化大師」優化網路設置,同時你還可以自己在EXPLORER裡面優化設置一下:工具——》選項——》高級,然後將一些諸如動畫啊,聲音之類的你平時上網用不上的全部屏蔽掉——這樣可以減少相當量的網路帶寬浪費哦!
3.一點小技巧:當你打開的某個網頁中你所需要的鏈接已經顯示出來後,請點擊「停止」按扭,就是工具欄上「刷新」按扭左邊那個「叉」,以免不必要的網路資源浪費。
4.最重要的一點——多收集一點相關技巧資料,還是要學習哦!這里也只能簡單地跟你交流一些。多下載一些相關的電子書籍吧(有興趣的話你可以瀏覽我的共享資料,我會慢慢盡量多地共享好東西的)