❶ 如何定位Web應用響應慢原因
運用聽雲Server解決Web應用過程響應慢,並且定位到具體代碼,我們首先登陸聽雲Server控制台,點擊需要查看的應用,進入Web應用過程模塊。(聽雲Server中Web應用過程指:應用程序中處理一次獨立的Web訪問請求的過程,完整的web應用過程是從應用程序收到請求到響應的整個過程)
Web應用過程功能模塊是將當前應用以Web應用過程的維度來展示詳細的應用性能數據,包括以下幾個功能:
「Web應用過程一覽」列出當前應用所有的Web應用過程,並且可以按照耗時百分比、響應時間、吞吐率、Apdex、錯誤率進行排序。
「TOP5最耗時Web應用過程堆疊圖」展示了耗時百分比最大的前5個Web應用過程其牆鍾時間比在選定時間內的變化趨勢。(牆鍾時間比指的是Web應用過程在圖表橫坐標粒時間度下的總耗時時間/圖表橫坐標粒度時間)
「Web應用過程響應時間與吞吐率圖」展示了應用的平均響應時間和每分鍾請求次數在選定時間內的變化趨勢。當請求的響應時間大於設定的閾值時會被顯示在慢應用追蹤列表中。(可在設置中對Web過程跟蹤閾值進行設定,例如設置為500毫秒,那麼所有響應時間大於500毫秒的請求都會被顯示在慢應用過程追蹤列表中,具體值根據自己的需求設置即可)
對於Web應用過程響應慢,我們選擇按照「響應時間」進行排序,響應時間由長到短排列,選擇時間較長的優先進行解決。
點擊該Web應用過程進行數據鑽取,查看其詳細的性能分解。可以看到Web應用過程性能分解堆疊圖,顯示了這個Web應用過程中各個組件在選定時間內的平均響應時間的變化趨勢。
「性能分解表格」展示了其中各個組件的詳細性能信息,包括的信息有代碼段、性能分類、耗時百分比、調用次數、平均響應時間,排列順序是按照平均響應時間由長到短進行排序的。
「響應時間和吞吐率圖」展示了該Web應用過程在選定時間內平均響應時間和每分鍾請求次數的變化趨勢。
「慢應用追蹤列表」顯示了該應用下響應時間大於設定閾值的請求,同樣還是按照響應時間由長到短進行排序。
點擊其中響應時間較長的請求進行慢應用追蹤,跳轉至應用過程慢追蹤頁面。
摘要中可以看到各個組件的響應耗時百分比圖,下面還列出了各個最慢組件詳細的調用次數、持續時間、響應耗時佔比數據。
接下來重點查看追蹤詳情,可以看到各個代碼段的持續時間、時間佔比和時間偏移量,其中持續時間長時間佔比高的就是響應時間長的代碼段,則需要對該代碼段進行重點的優化和修改,從而解決Web應用過程響應慢的問題。
後面的相關sql展示了其中的SQL操作以及其調用次數和總耗時。
拓補圖展示了相關的調用關系方便更加全面的分析問題,特別說明的是只有發生跨應用調用的應用過程慢追蹤才會展示拓補圖。
❷ Web伺服器性能和站點訪問性能該如何優化
今天小編要跟大家分享的文章是關於Web伺服器性能和站點訪問性能該如何優化?正在從web前端工作的小夥伴們來和小編一起看一看吧!
一、優化思路淺析
要優化Web伺服器的性能,我們先來看看Web伺服器在web頁面處理上的步驟:
1、Web瀏覽器向一個特定的伺服器發出Web頁面請求;
2、Web伺服器接收到web頁面請求後,尋找所請求的web頁面,並將所請求的Web頁面傳送給Web瀏覽器;
3、Web瀏覽器接收到所請求的web頁面內容,並將它顯示出來。
上面三個步驟都關系Web伺服器,但實際Web伺服器性能相關最大的是在第2步,這里Web伺服器需要尋找來自瀏覽器所請求的Web
頁面內容。
我們知道,Web頁面內容有靜態的,也有動態的,靜態的內容,web
伺服器可以直接將結果發回給瀏覽器,對於動態內容,則通常需要交給應用伺服器先處理,由應用伺服器返回結果。
當然,也有Web伺服器本身可以處理動態內容的,例如IIS就可以自已解釋處理ASP,ASP.NET這兩種微軟的動態網頁腳本語言。
從上面簡要的分析里,我們大致可以得到這樣的結論,影響Web頁面訪問的影響因素會有這幾個:
1、Web伺服器從磁碟中讀取靜態頁面內容的速度,也即時間;
2、Web伺服器判定請求內容是靜態還是動態內容的時間;
3、Web伺服器轉發請求給應用伺服器的時間;
4、應用伺服器處理(解釋)動態內容所需的時間;
5、Web伺服器返回Web內容給瀏覽器的響應時間;
6、Web伺服器接收來自瀏覽器請求的處理性能;
7、Web訪問請求數據在網路上傳輸的時間:包括從瀏覽器到伺服器,和從伺服器到瀏覽器兩部分;
8、瀏覽器本地計算和渲染Web內容的時間,即接收內容後展現內容的時間。
上面8項很容易理解,也很直接,其實還有以下幾項也是關乎Web
頁面訪問速度體驗的因素,你可以思考下是否如此?或者說是否會影響到頁面訪問性能。
§Web伺服器執行安全策略檢查的時間,或者說性能;
§Web伺服器讀取日誌文件、寫日誌內容、關閉對日誌文件訪問的時間,先讀後寫再關閉,這三步中的讀與寫又涉及到磁碟訪問性能因素;
§同時與Web伺服器連接會話的客戶端數量大小,即並發訪問量多大。
我們可以將上面的影響因素抽像出來,那麼就是:
1、Web伺服器磁碟性能;
2、Web伺服器與應用伺服器交互的性能;
3、應用伺服器處理動態內容的性能,或者說動態內容應用處理性能;
4、客戶端與Web伺服器的連接速度,即網路傳輸性能;
5、Web瀏覽器解釋和渲染Web內容的性能;
6、Web訪問並發性能。
反映到我們進行性能優化,可以入手的角度就有:
1、增加帶寬,包括伺服器和客戶端兩邊的Internet連接帶寬;
2、加快動態內容的處理性能;
3、盡可能多地使用靜態內容,這樣Web伺服器就可以無需請求應用伺服器,直接將Web內容發給瀏覽器端,這里可以入手的方案又有:
動態內容緩存
動態內容靜態化
多台伺服器負載均衡同時處理大量的並發訪問;
提升伺服器磁碟訪問性能,也即通常所說的I/O性能;
減少網頁中的HTTP請求數;
更換更好性能的Web伺服器;
合理部署伺服器,在離客戶端更近的地方部署伺服器,已經證明可以明顯地提升訪問性能。
二、性能優化實踐
經過前面小節的簡要分析,相信你對優化Web伺服器有一定的思路了,你可以從硬體層面、軟體層面、Web代碼三個層面去優化。
下面我們結合一個具體的實例來實踐一回,本文所舉例是一個小型的Web
站點,部分數據系假設,如有類同,純屬巧合,僅起拋磚引玉之用。在實際工作中,如果碰到大站點,你可以參考此處的分析,修改優化方案。
1.站點簡介
一個社區論壇站點,採用Discuz!論壇程序構建,該程序採用主流的PHP+MySQL組成。
網站目前有近5萬注冊用戶,絕大多數是國內的用戶,活躍用戶數在一半左右,每天平均PV在15~20萬,獨立訪問IP數在8000
左右。
2.Web伺服器性能優化需求
網站現部署在國外的伺服器,租用虛擬主機來運營,因為訪問量比較大,所以經常會收到虛擬主機服務商的流量很大的通知,要求控制下訪問量。
另外,虛擬主機的伺服器在美國,沒有在國內租用虛擬主機的原因是國內網站在備案方面非常繁瑣,在網站一開始運營時數據量和訪問量都比較小,所以對性能要求不高,數據量小,所以伺服器在查詢處理數據時速度比較快,也讓人感覺訪問速度不慢,現在隨著數據量和訪問量的不斷上升,訪問速度已明顯下降,到了需要改善訪問性能的時候了。
基於目前該社區網站的情況,提出的優化需求是,國內訪問速度需要提升一倍,目前首頁載入時間需要40秒左右,希望優化後能在20
秒以內將首頁載入完成。
另外提出網站數據能夠每天自動備份一次,備份數據保留一個月的,以便隨時恢復。
上述兩點需求,其中第一條才是性能優化需求,第二條是額外的需求了。
3.性能優化方案
根據其網站的現狀和優化需求,結合自己的經驗,加上谷歌的搜索,同時與網站主不斷確認溝通,最終得到以下性能優化方案:
由虛擬主機部署改為獨立伺服器部署
虛擬主機受限比較多,無法自己自定義配置Web伺服器,無法配置PHP
動態緩存,而且獨立伺服器可以獨享內存、處理器資源,不再受虛擬主機商對每個虛擬主機用戶的內存和處理器資源佔用限制。處理器資源和內存資源,對接受更多並發訪問有直接性能提升效果。
獨立伺服器,我們選用Linode2048型號,2G內存,4核處理器(Linode所有VPS都是四核處理器),80G硬碟空間,800G
網路流量。
由Windows操作系統改為Linux操作系統
網站使用的是PHP+MySQL程序,PHP在Windows下的性能,受限於IIS需要通過ISAPI形式調用PHP,所以性能不如
Linux下Apache直接通過PHP模塊解釋PHP,更不如Nginx與PHP-FPM
的性能,既然使用了獨立伺服器,操作系統也可以自己確定,Linux系統我們選用了熟悉的UbuntuLinuxServer10.04(一年前還沒有
12.04),^-^。
Web伺服器採用Nginx,而不使用Apache
選用Nginx而不用Apache的原因非常直接和乾脆,因為站點里有很多靜態的附件文件,在處理靜態內容上,Nginx性能是Apache
的差不多10倍。
在PHP解釋和偽靜態規則方面,Apache要比Nginx強,但這不影響我們放棄它,為緩解這一點,我們在後面對PHP
進行了動態緩存。
對PHP查詢進行動態緩存,使用eAccelerator這個加速器
PHP加速器是一個為了提高PHP執行效率,從而緩存起PHP的操作碼,這樣PHP後面執行就不用解析轉換了,可以直接調用PHP
操作碼,這樣速度上就提高了不少。
eAccelerator是一個開源PHP加速器,優化和動態內容緩存,提高了PHP腳本的緩存性能,使得PHP
腳本在編譯的狀態下,對伺服器的開銷幾乎完全消除。它還有對腳本起優化作用,以加快其執行效率。使得的PHP程序代碼執效率能提高1-10
倍,這個加速還是非常明顯的。
具體地,我們計劃對eAccelerator進行以下設置優化:
§緩存使用物理內存來進行,不使用磁碟來緩存。我們知道內存的讀寫性能是硬碟的N倍,所以在內存資源可以安排情況下,強烈建議使用內存來保存
eAccelerator的緩存內容。
§緩存大小設置為32MB,這個值是操作系統默認支持最大的緩存容量。雖然可以通過修改配置文件來加大這個值,但我們覺得沒有必要,所以就放棄了。
Nginx性能優化
選用了Nginx,雖然它的性能很好,但我們仍然需要對它進行性能優化,在這個案例中,我們做了以下優化:
§使用8個進程,每個進程大約需要20M內存消耗,這里一共使用了150M左右的內存。
§充分使用主伺服器的CPU內核:四核,使用CPU粘性配置選項(worker_cpu_affinity),每核處理器分配兩個進程。
§開啟gzip壓縮功能:gzip壓縮對JS,CSS,XML壓縮效果非常好,能壓縮一半,即減少一倍的傳輸時間;對圖片文件,JPG
已經壓縮過的,它的壓縮性能要少一些。
§圖片本地緩存1天:網站上的圖片很多,通常一張圖片上傳後,不會頻繁的修改,只會頻繁的訪問,所以將圖片放在Nginx
緩存里,可以減少伺服器訪問載入次數,提升訪問速度。
§JS、CSS文件本地緩存7
天:這兩種網頁文件,平時都不會去修改它,將它緩存起來,可以減少載入次數,提升訪問速度。為什麼這兩種文件不和圖片一起設置緩存有效期,是考慮了不同文件的修改頻率不一樣。
§Nginx日誌每天切割一次:這個優化項能大大減小Nginx日誌文件的大小,經過一周的查看,每天的日誌文件是50M
左右,如果不是每天切割,用月切割,那一個月的日誌文件就是幾個G,要Web
伺服器在內存里載入這么大的文件,系統本身內存不夠用,就自然會用到磁碟來緩存,這就影響性能。每天50M左右,在內存上完全可以順利載入,這樣Nginx
在處理訪問時,可以快速的保存訪問日誌。
經過上述幾個優化項目,Nginx這邊一共需要佔用200M左右內存資源。
對PHPCGI進程性能進行優化
Nginx沒有PHP模塊,所以它對PHP的支持是通過PHP-FPM來實現的,PHP-FPM
是跑進程來處理並發請求,在這個案例中,我們配置了20個進程,每個進程差不多佔用20M左右內存資源,一共是400M左右。
同時,PHP-FPM與Nginx交互機制,選用LinuxSocket模式而不是TCP協議埠,Socks是系統級處理模式,socks
也就是一個文件連接,而TCP協議埠,需要經過網路協議處理,性能不如前者,所以我們選擇了前者。
MySQL資料庫性能優化
因為網站主程序是選用他人開發的開源程序,所以對資料庫查詢的程序優化我們無法處理,只能從MySQL本身尋找突破口。
我們可以想像一下,對於論壇網站,通常看貼、查貼的訪問量要遠大於創建貼子、回復貼子的訪問量,體現在MySQL
資料庫上,就是讀表與查詢表數據的連接處理更多。
因此我們要選擇對讀表、查詢性能更好的存儲引擎,結合以前了解的知識,MySQL預設的MyISAM
引擎就是被設計為適合處理讀頻率遠大於寫頻率的環境,查詢效率相當可觀,而且內存佔用很少,這也與我們租用低內存配置的VPS相符。
具體到MySQL配置參數的優化上,受限於伺服器上內存資源本身有限,就直接採用預設的中型環境配置文件。
內容分發網路應用
站點每天十多萬的訪問,上萬獨立IP
訪問,查看先前的訪問統計,訪問來自國內各個地區,使用多種網路連接訪問進來,為保證來自各網路的用戶訪問速度,同時也減少對網站伺服器的請求,我們採用了CDN
來分發靜態內容,這樣各地的用戶可以就近訪問到已緩存在CDN上的文件,CDN
服務商會在靜態內容第一次訪問時緩存到他們全國各地的伺服器上,當第二次訪問時,用戶實際是沒有連接到網站伺服器上獲取文件的,而是直接從CDN
伺服器上獲取,可以明顯的提升網站性能。
以上就是小編今天為大家分享的關於Web伺服器性能和站點訪問性能該如何優化的文章,希望本篇文章能夠對正在從事web前端工作的小夥伴們有所幫助。想要了解更多web前端相關知識記得關注北大青鳥web培訓官網。最後祝願小夥伴們工作順利!
❸ web伺服器訪問緩慢,作為運維人員,如何定位故障
遇到伺服器故障,問題出現的原因很少可以一下就想到。我們基本上都會從以下步驟入手:
一、盡可能搞清楚問題的前因後果
不要一下子就扎到伺服器前面,你需要先搞明白對這台伺服器有多少已知的情況,還有故障的具體情況。不然你很可能就是在無的放矢。
必須搞清楚的問題有:
故障的表現是什麼?無響應?報錯?
故障是什麼時候發現的?
故障是否可重現?
有沒有出現的規律(比如每小時出現一次)
最後一次對整個平台進行更新的內容是什麼(代碼、伺服器等)?
故障影響的特定用戶群是什麼樣的(已登錄的, 退出的, 某個地域的…)?
基礎架構(物理的、邏輯的)的文檔是否能找到?
是否有監控平台可用? (比如Munin、Zabbix、 Nagios、 New Relic…
什麼都可以)
是否有日誌可以查看?. (比如Loggly、Airbrake、 Graylog…)
最後兩個是最方便的信息來源,不過別抱太大希望,基本上它們都不會有。只能再繼續摸索了。
二、有誰在?
代碼如下:
$ w
$ last
用這兩個命令看看都有誰在線,有哪些用戶訪問過。這不是什麼關鍵步驟,不過最好別在其他用戶正幹活的時候來調試系統。有道是一山不容二虎嘛。(ne cook in
the kitchen is enough.)
三、之前發生了什麼?
$
history查看一下之前伺服器上執行過的命令。看一下總是沒錯的,加上前面看的誰登錄過的信息,應該有點用。另外作為admin要注意,不要利用自己的許可權去侵犯別人的隱私哦。
到這里先提醒一下,等會你可能會需要更新 HISTTIMEFORMAT
環境變數來顯示這些命令被執行的時間。對要不然光看到一堆不知道啥時候執行的命令,同樣會令人抓狂的。
四、現在在運行的進程是啥?
代碼如下:
$ pstree -a
$ ps aux
這都是查看現有進程的。 ps aux 的結果比較雜亂, pstree -a 的結果比較簡單明了,可以看到正在運行的進程及相關用戶。
五、監聽的網路服務
代碼如下:
$ netstat -ntlp
$ netstat -nulp
$
netstat -nxlp
我一般都分開運行這三個命令,不想一下子看到列出一大堆所有的服務。netstat -nalp倒也可以。不過我絕不會用 numeric 選項
(鄙人一點淺薄的看法:IP 地址看起來更方便)。
找到所有正在運行的服務,檢查它們是否應該運行。查看各個監聽埠。在netstat顯示的服務列表中的PID 和 ps aux 進程列表中的是一樣的。
如果伺服器上有好幾個Java或者Erlang什麼的進程在同時運行,能夠按PID分別找到每個進程就很重要了。
通常我們建議每台伺服器上運行的服務少一點,必要時可以增加伺服器。如果你看到一台伺服器上有三四十個監聽埠開著,那還是做個記錄,回頭有空的時候清理一下,重新組織一下伺服器。
六、CPU 和內存
代碼如下:
$ free -m
$ uptime
$ top
$
htop
注意以下問題:
還有空餘的內存嗎? 伺服器是否正在內存和硬碟之間進行swap?
還有剩餘的CPU嗎? 伺服器是幾核的? 是否有某些CPU核負載過多了?
伺服器最大的負載來自什麼地方? 平均負載是多少?
七、硬體
代碼如下:
$ lspci
$ dmidecode
$
ethtool
有很多伺服器還是裸機狀態,可以看一下:
找到RAID 卡 (是否帶BBU備用電池?)、 CPU、空餘的內存插槽。根據這些情況可以大致了解硬體問題的來源和性能改進的辦法。
網卡是否設置好?
是否正運行在半雙工狀態? 速度是10MBps? 有沒有 TX/RX 報錯?
八、IO 性能
代碼如下:
$ iostat -kx 2
$ vmstat 2 10
$ mpstat
2 10
$ dstat --top-io --top-bio
這些命令對於調試後端性能非常有用。
檢查磁碟使用量:伺服器硬碟是否已滿?
是否開啟了swap交換模式 (si/so)?
CPU被誰佔用:系統進程? 用戶進程? 虛擬機?
dstat 是我的最愛。用它可以看到誰在進行 IO: 是不是MySQL吃掉了所有的系統資源? 還是你的PHP進程?
九、掛載點 和 文件系統
代碼如下:
$ mount
$ cat /etc/fstab
$ vgs
$
pvs
$ lvs
$ df -h
$ lsof +D / /* beware not to kill your box
*/
一共掛載了多少文件系統?
有沒有某個服務專用的文件系統? (比如MySQL?)
文件系統的掛載選項是什麼: noatime?
default? 有沒有文件系統被重新掛載為只讀模式了?
磁碟空間是否還有剩餘?
是否有大文件被刪除但沒有清空?
如果磁碟空間有問題,你是否還有空間來擴展一個分區?
十、內核、中斷和網路
代碼如下:
$ sysctl -a | grep ...
$ cat
/proc/interrupts
$ cat /proc/net/ip_conntrack /* may take some time on busy
servers */
$ netstat
$ ss -s
你的中斷請求是否是均衡地分配給CPU處理,還是會有某個CPU的核因為大量的網路中斷請求或者RAID請求而過載了?
SWAP交換的設置是什麼?對於工作站來說swappinness 設為 60 就很好,
不過對於伺服器就太糟了:你最好永遠不要讓伺服器做SWAP交換,不然對磁碟的讀寫會鎖死SWAP進程。
conntrack_max 是否設的足夠大,能應付你伺服器的流量?
在不同狀態下(TIME_WAIT, …)TCP連接時間的設置是怎樣的?
如果要顯示所有存在的連接,netstat 會比較慢, 你可以先用 ss 看一下總體情況。
你還可以看一下 Linux TCP tuning
了解網路性能調優的一些要點。
十一、系統日誌和內核消息
代碼如下:
$ dmesg
$ less /var/log/messages
$
less /var/log/secure
$ less /var/log/auth
查看錯誤和警告消息,比如看看是不是很多關於連接數過多導致?
看看是否有硬體錯誤或文件系統錯誤?
分析是否能將這些錯誤事件和前面發現的疑點進行時間上的比對。
十二、定時任務
代碼如下:
$ ls /etc/cron* + cat
$ for user in
$(cat /etc/passwd | cut -f1 -d:); do crontab -l -u $user; done
是否有某個定時任務運行過於頻繁?
是否有些用戶提交了隱藏的定時任務?
在出現故障的時候,是否正好有某個備份任務在執行?
十三、應用系統日誌
這里邊可分析的東西就多了,
不過恐怕你作為運維人員是沒功夫去仔細研究它的。關注那些明顯的問題,比如在一個典型的LAMP(Linux+Apache+Mysql+Perl)應用環境里:
Apache & Nginx; 查找訪問和錯誤日誌, 直接找 5xx 錯誤, 再看看是否有 limit_zone 錯誤。
MySQL;
在mysql.log找錯誤消息,看看有沒有結構損壞的表, 是否有innodb修復進程在運行,是否有disk/index/query 問題.
PHP-FPM; 如果設定了 php-slow 日誌, 直接找錯誤信息 (php, mysql, memcache, …),如果沒設定,趕緊設定。
Varnish; 在varnishlog 和 varnishstat 里, 檢查 hit/miss比.
看看配置信息里是否遺漏了什麼規則,使最終用戶可以直接攻擊你的後端?
HA-Proxy;
後端的狀況如何?健康狀況檢查是否成功?是前端還是後端的隊列大小達到最大值了?
結論
經過這5分鍾之後,你應該對如下情況比較清楚了:
在伺服器上運行的都是些啥?
這個故障看起來是和 IO/硬體/網路 或者 系統配置 (有問題的代碼、系統內核調優, …)相關。
這個故障是否有你熟悉的一些特徵?比如對資料庫索引使用不當,或者太多的apache後台進程。
你甚至有可能找到真正的故障源頭。就算還沒有找到,搞清楚了上面這些情況之後,你現在也具備了深挖下去的條件。繼續努力吧!
❹ Web響應時間很長
錯別字太多
Web響應時間很長無非幾個方面的問題:
1.主機硬體低配而裝了高配操作系統,比如win7,小馬拉大車嘍
一般屬這種情況的話,運行大多軟體都會慢,如果運行別的軟體不慢,僅是web慢,skip這一條,看第三條.(新買的東芝筆記本電腦,估計配置應該還不錯吧,可以看下一條了)
2.主機內軟體安裝的不合適,比如中病毒了、或者是安了幾套殺毒軟體(同時安裝)等等原因,系統CPU被這些軟體過度佔用,如果這樣,殺毒、卸載不必要的軟體。
比如360,就建議停用一下,看看是否響應速度會變快。
3.如果前兩條都不符合,則問題集中在web方面,
3.1所訪問的具體某個網站慢,判斷很容易,看看訪問別的web速度快不快,如果有快有慢,那問題可以結題了。如果都慢,請看下一條。
3.2檢查下DNS設置的是否合適,建議選用與你上網線路較近的DNS
❺ 內網訪問WEB伺服器很慢,外網訪問時正常,這是什麼原因
這個可能是內網有洪水包攻擊,訪問量過大伺服器網卡吃不了這么多數據。還有內網ARP病毒攻擊的話也會出現這個情況,不知道你的網路是不是免疫網路,用了免疫網路解決方案沒,沒用趕緊用免疫網路解決方案。 部署免疫網路網路解決方案簡單的很,對網路也不需要做大的改動。
❻ Web伺服器網頁打開很慢,該從哪方面查詢伺服器出了問題
首先想到的應該重啟一下服務,如果還是慢就要看一下伺服器CPU和內存的使用情況,再就是部署一個簡單的系統在同一web伺服器上,看運行如何,目的是排除一下是不是伺服器問題還是網站系統代碼問題,還有就是網站連接的資料庫等。
❼ 如何優化web伺服器的訪問速度
網站運營的任何時期,網站訪問速度都是至關重要的部分,它是網站友好體驗中最基本的一項,如果訪問體驗都令人不滿意,那麼後期所做的營銷推廣模式都有可能徒勞無功,因為網路中客戶的選擇成本很低,加上普遍客戶的耐心都不高,頁面訪問超過6秒客戶就會選擇離開,這對於一些流量本來就不高的企業網站來說無疑是雪上加霜。
一、升級正在使用中的伺服器
進行伺服器升級工作之前,要考慮多方面的問題,是升級已有的伺服器還是購置新的伺服器設備須根據實際情況抉擇。首先來說升級現有的伺服器設備,一般來說網站運營到後期隨著業務不斷增加,多平台應用的開發對於伺服器性能的要求也逐步提升,長而久之伺服器遇到性能瓶頸也是情理之中的事情,對於這種情況,我們可以通過升級伺服器(例如增加硬體設備或網路帶寬)等相關配置來滿足不斷擴大的業務需求,那麼伺服器性能瓶頸問題就可以得到解決。
二、優化正在使用的伺服器
不管是完成升級後的伺服器,還是新購置的伺服器,我們都要對其進行優化,從而提升伺服器的性能以及利用率。如何優化伺服器?作為在國互網工作到現在的資深IDC工作人員,小編認為大概分為以下四個方面
要點一:盡可能的減少HTTP請求數
從客戶訪問網站頁面到整個頁面內容完全展現出來,這其中要花費較多的時間來下載各種Scripts、CSS樣式表、Flash以及圖片,而每一類下載都相當於一次HTTP請求,這樣的請求越多網站被完全載入出來所花的時間會越長,意味著客戶端的訪問會很慢,那麼此時就需要盡可能的減少HTTP請求數,通常我們可以直接把css和js寫入到頁面中,避免了外部的調用;或者我們可以把CSS文件和JS文件分來,在後台再進行合並,這樣客戶端瀏覽器相當於一次請求。這是小編在國互網美女前端那學來的。
要點二:降低DNS查詢時間
眾所周知網路伺服器端的域名和IP地址是相互對應的,當客戶端發出請求時,計算機還需要通過域名和IP地址的相互轉換來判斷,而這個轉換工作便是域名解析DNS,通常DNS的查詢需要10~20毫秒時間,客戶端瀏覽器也只會等待DNS查詢結束之後才會載入此域名下的內容。因此,我們要加快頁面的訪問速度,就可以從降低DNS查詢時間方面去做改善。
要點三:啟用伺服器Gzip壓縮功能
對於大中型網站來說,頁面的內容多且比較多樣化,單個頁面的大小可能是幾百K以上了,客戶端訪問的時候下載會比較慢,此時我們可以採用伺服器Gzip頁面壓縮功能,可以將一個大小為100K的頁面文件壓縮成25K以下,這樣就可以減少網路傳輸的數量從而提高客戶端訪問速度。一般伺服器都是可以使用Gzip壓縮功能的,並且能夠針對JS文件、CSS文件和Html進行壓縮,多方面去進行優化網站訪問速度。
要點四:推薦大中型網站使用CDN加速工具
CDN加速是目前大型網站普遍使用的頁面加速方式,它對於網站優化幾乎沒有影響的,基本原理是將網站鏡像備份到很多伺服器節點上,使伺服器節點周圍的用戶訪問速度更快,從而提升客戶端高速訪問網站的體驗;但是並不是所有的網站都適合使用CDN加速,一般對於小規模站點個人站的話,就不需要使用CDN加速,畢竟從長期來看這可是一筆不小的開支;建議圖片站以及多媒體站點可使用CDN加速。
希望以上知識能夠幫到您