數(shù)十年專注企業(yè)數(shù)字化轉(zhuǎn)型、智能化升級、企業(yè)上云解決方案服務商
工單提交 實名認證 騰佑科技咨詢熱線咨詢熱線: 400-996-8756
百度云服務中心騰佑科技公司
云服務器活動 服務器租用 服務器托管 機柜租賃 帶寬租賃
  • 最新資訊
  • 熱門資訊
  • 最熱資訊
智能建站

Web服務器性能和網(wǎng)站訪問性能優(yōu)化方法

發(fā)布時間:2022-07-15 作者:admin

簡述:優(yōu)化思路淺析要優(yōu)化Web服務器的性能,我們先來看看Web服務器在web頁面處理上的步驟:1、Web瀏覽器向一個特定的服務器發(fā)出Web頁面請求;2、Web服務器接收到web頁面請求后,尋找所請求的web頁面,并將所請求的Web頁面?zhèn)魉徒oWeb

優(yōu)化思路分析

要優(yōu)化Web先來看看服務器的性能。Web服務器在web頁面處理步驟:

1、Web瀏覽器向特定的服務器發(fā)送Web頁面請求;

2、Web接收服務器web頁面請求后,找到請求web頁面,請求Web頁面?zhèn)魉徒oWeb瀏覽器;

3、Web瀏覽器接收到所請求的web并顯示頁面內(nèi)容。

以上三個步驟都是相關的Web但實際上,服務器Web與服務器性能相關的最大步驟是第二步Web來自瀏覽器要求的服務器需要找到服務器Web頁面內(nèi)容。

我們知道,Web頁面內(nèi)容有靜態(tài)、動態(tài)、靜態(tài)內(nèi)容,web服務器可以直接將結果發(fā)回瀏覽器。對于動態(tài)內(nèi)容,通常需要先交給應用服務器進行處理,然后由應用服務器返回結果。

當然,也有Web例如,服務器本身可以處理動態(tài)內(nèi)容IIS可自行解釋處理ASP,ASP.NET這兩種微軟的動態(tài)網(wǎng)頁腳本語言。

從以上簡要分析可以大致得出這樣的結論,影響Web影響頁面訪問的因素如下:

1、Web服務器從磁盤中讀取靜態(tài)頁面內(nèi)容的速度,即時間;

2、Web服務器確定請求內(nèi)容是靜態(tài)的還是動態(tài)的;

3、Web向應用服務器轉(zhuǎn)發(fā)服務器請求的時間;

應用服務器處理(解釋)動態(tài)內(nèi)容所需的時間;

5、Web服務器返回Web內(nèi)容給瀏覽器響應時間;

6、Web瀏覽器要求的處理性能接收服務器;

7、Web在網(wǎng)絡上傳輸訪問請求數(shù)據(jù)的時間:從瀏覽器到服務器,從服務器到瀏覽器;

8.瀏覽器本地計算和渲染W(wǎng)eb內(nèi)容的時間,即接收內(nèi)容后顯示內(nèi)容的時間。

上面8項很容易理解,也很直接,其實還有以下幾項也是關乎Web您可以考慮頁面訪問速度體驗的因素嗎?或者是否會影響頁面訪問性能。

Web服務器執(zhí)行安全戰(zhàn)略檢查的時間或性能;

Web服務器讀取日志文件,編寫日志內(nèi)容,關閉日志文件訪問時間,先讀后寫,然后關閉。這三個步驟中的讀寫涉及磁盤訪問性能因素;

同時與Web服務器連接會話的客戶端數(shù)量,即并發(fā)訪問量。

我們可以抽象上述影響因素,即:

1、Web服務器磁盤性能;

2、Web與應用服務器交互的性能;

3.應用服務器處理動態(tài)內(nèi)容或動態(tài)內(nèi)容應用的性能;

4、客戶端與Web服務器的連接速度,即網(wǎng)絡傳輸性能;

5、Web解釋和渲染瀏覽器Web內(nèi)容性能;

6、Web并發(fā)性能訪問。

它反映了我們的性能優(yōu)化,可以從以下角度開始:

1.增加帶寬,包括服務器和客戶端的兩側(cè)Internet連接帶寬;

加快處理動態(tài)內(nèi)容的性能;

3.盡可能多地使用靜態(tài)內(nèi)容,這樣Web服務器可以直接使用服務器,無需要求。Web內(nèi)容發(fā)送到瀏覽器端,這里可以開始的方案有:

緩存動態(tài)內(nèi)容

動態(tài)內(nèi)容靜態(tài)化

多臺服務器負載均衡,同時處理大量并發(fā)訪問;

通常稱為提高服務器磁盤的訪問性能I/O性能;

在網(wǎng)頁中減少HTTP請求數(shù);

更換性能更好的Web服務器;

服務器的合理部署和服務器的部署已被證明能夠顯著提高訪問性能。

性能優(yōu)化實踐

通過對前一節(jié)的簡要分析,我相信你會優(yōu)化它Web服務器有一定的想法,可以從硬件、軟件、Web優(yōu)化代碼三個層次。

下面我們結合一個具體的例子來練習,本文的例子是一個小例子Web網(wǎng)站,一些數(shù)據(jù)是假設的,如果有類似的,純粹是巧合,只有拋磚引玉。在實際工作中,如果遇到大網(wǎng)站,可以參考這里的分析,修改優(yōu)化方案。

1.站點簡介

社區(qū)論壇網(wǎng)站采用Discuz!論壇程序構建,采用主流PHP MySQL組成。

目前網(wǎng)站注冊用戶近5萬,大部分是國內(nèi)用戶,活躍用戶約一半,平均每天PV在15~獨立訪問20萬IP數(shù)在8000左右。

2.Web優(yōu)化服務器性能要求

該網(wǎng)站現(xiàn)在部署在國外的服務器上,租用虛擬主機進行操作。由于訪問量相對較大,虛擬主機服務提供商經(jīng)常收到大量流量通知,需要控制訪問量。

此外,在美國,虛擬主機服務器沒有在中國租用虛擬主機的原因是國內(nèi)網(wǎng)站的備案非常繁瑣。在網(wǎng)站運行開始時,數(shù)據(jù)量和訪問量相對較小,因此性能要求較低,數(shù)據(jù)量較小。因此,服務器在查詢和處理數(shù)據(jù)時速度相對較快,也讓人覺得訪問速度不慢,現(xiàn)在隨著數(shù)據(jù)量和訪問量的不斷增加,訪問速度顯著下降,是時候提高訪問性能了。

根據(jù)社區(qū)網(wǎng)站的現(xiàn)狀,提出的優(yōu)化要求是國內(nèi)訪問速度需要翻倍。目前,主頁加載時間約為40秒。我希望主頁能在優(yōu)化后20秒內(nèi)加載。

此外,建議網(wǎng)站數(shù)據(jù)每天自動備份一次,備份數(shù)據(jù)保留一個月,以便隨時恢復。

第一個是性能優(yōu)化需求,第二個是額外的需求。

3.性能優(yōu)化方案

根據(jù)網(wǎng)站的現(xiàn)狀和優(yōu)化需求,結合自己的經(jīng)驗和谷歌的搜索,不斷與網(wǎng)站所有者確認和溝通,最終獲得以下性能優(yōu)化方案:

從虛擬主機部署到獨立服務器部署

虛擬主機更有限,無法定制自己的配置Web無法配置服務器PHP動態(tài)緩存,獨立服務器可以享受內(nèi)存和處理器資源,不再受虛擬主機用戶內(nèi)存和處理器資源占用的限制。處理器資源和內(nèi)存資源可以直接提高更多并發(fā)訪問的性能。

我們選擇獨立服務器Linode2048型號,2G內(nèi)存,4核處理器(Linode所有VPS都是四核處理器),80G硬盤空間,800G網(wǎng)絡流量。

由Windows操作系統(tǒng)改為Linux操作系統(tǒng)

網(wǎng)站使用PHP MySQL程序,PHP在Windows性能有限IIS需要通過ISAPI形式調(diào)用PHP,所以性能不如Linux下Apache直接通過PHP模塊解釋PHP,更不如Nginx與PHP-FPM由于使用了獨立的服務器,操作系統(tǒng)也可以自行確定,Linux我們選擇了熟悉的系統(tǒng)UbuntuLinuxServer10.04(一年前沒有12.04),^-^。

Web服務器采用Nginx,而不使用Apache

選用Nginx而不用Apache原因非常直接和簡單,因為網(wǎng)站上有許多靜態(tài)附件文件,在處理靜態(tài)內(nèi)容時,Nginx性能是Apache差不多10倍。

在PHP在解釋和偽靜態(tài)規(guī)則方面,Apache要比Nginx但這并不影響我們放棄它。為了緩解這一點,我們將面對它PHP動態(tài)緩存。

對PHP動態(tài)緩存查詢,使用eAccelerator這個加速器

PHP為了改進加速器PHP執(zhí)行效率,從而緩存PHP這樣的操作碼PHP以后執(zhí)行不需要分析轉(zhuǎn)換,可以直接調(diào)用PHP操作碼,所以速度提高了很多。

eAccelerator是一個開源PHP加速器、優(yōu)化和動態(tài)內(nèi)容緩存改進PHP腳本的緩存性能使PHP在編譯狀態(tài)下,腳本幾乎完全消除了服務器的成本。它還可以優(yōu)化腳本,以提高其執(zhí)行效率。PHP程序代碼執(zhí)效率可以提高1-10倍,這是非常明顯的。

具體來說,我們的計劃是正確的eAccelerator優(yōu)化以下設置:

緩存使用物理內(nèi)存,而不是磁盤。我們知道內(nèi)存的讀寫性能是硬盤的N倍,因此強烈建議在可以安排內(nèi)存資源時使用內(nèi)存進行保存eAccelerator緩存內(nèi)容。

緩存大小設置為32MB,默認情況下,該值是操作系統(tǒng)支持的最大緩存容量。值可以通過修改配置文件來增加,但我們認為沒有必要,所以我們放棄了。

Nginx性能優(yōu)化

選用了Nginx,雖然它的性能很好,但我們?nèi)匀恍枰獌?yōu)化它的性能。在這種情況下,我們做了以下優(yōu)化:

使用8個過程,每個過程大約需要20個M這里共使用了150個內(nèi)存消耗M左右內(nèi)存。

充分使用主服務器的CPU內(nèi)核:四核,使用CPU粘性配置選項(worker_cpu_affinity),每個核處理器分配兩個過程。

開啟gzip壓縮功能:gzip壓縮對JS,CSS,XML對圖片文件,JPG其壓縮性能較低。

圖片本地緩存1天:網(wǎng)站上有很多圖片。通常一張圖片上傳后不會頻繁修改,只會頻繁訪問,所以把圖片放在網(wǎng)站上。Nginx在緩存中,可以減少服務器訪問加載次數(shù),提高訪問速度。

JS、CSS文件本地緩存7天:這兩種網(wǎng)頁文件通常不會修改。緩存可以減少加載次數(shù),提高訪問速度。考慮到不同文件的不同修改頻率,為什么這兩種文件沒有與圖片一起設置緩存有效期。

Nginx日志每天切割一次:這個優(yōu)化項能大大降低Nginx經(jīng)過一周的查看,日志文件的大小是每天50份M大約,如果不是每天切割,每月切割,那個月的日志文件是幾個G,要Web當服務器在內(nèi)存中加載如此大的文件時,如果系統(tǒng)本身的內(nèi)存不夠,磁盤自然會被用來緩存,這會影響性能。每天50M左右,在內(nèi)存上完全可以順利加載,這樣Nginx訪問日志可以在處理訪問時快速保存。

通過以上優(yōu)化項目,Nginx這里需要占用2000M左右內(nèi)存資源。

對PHPCGI優(yōu)化工藝性能

Nginx沒有PHP所以模塊是對的PHP支持是通過的PHP-FPM來實現(xiàn)的,PHP-FPM在這種情況下,我們配置了20個過程,每個過程幾乎占20個M一共4000左右的內(nèi)存資源M左右。

同時,PHP-FPM與Nginx選擇交互機制LinuxSocket模式而不是TCP協(xié)議端口,Socks是系統(tǒng)級處理模式,socks也就是一個文件連接,而TCP協(xié)議端口需要網(wǎng)絡協(xié)議處理,性能不如前者,所以我們選擇了前者。

MySQL優(yōu)化數(shù)據(jù)庫性能

由于網(wǎng)站的主程序是由他人開發(fā)的開源程序,我們無法處理數(shù)據(jù)庫查詢的程序優(yōu)化,只能從MySQL尋找突破本身。

我們可以想象,對于論壇網(wǎng)站來說,閱讀和查看帖子的訪問量通常遠遠大于創(chuàng)建和回復帖子的訪問量MySQL在數(shù)據(jù)庫中,讀表與查詢表數(shù)據(jù)的連接處理更多。

因此,結合以往的知識,我們應該選擇對讀表、查詢性能更好的存儲引擎,MySQL缺省的MyISAM引擎是一個適合處理閱讀頻率遠大于寫作頻率的環(huán)境,查詢效率相當可觀,內(nèi)存占用很少,這也與我們租用低內(nèi)存配置有關VPS相符。

具體到MySQL在配置參數(shù)的優(yōu)化方面,由于服務器上內(nèi)存資源本身有限,缺失的中型環(huán)境配置文件直接使用。

網(wǎng)絡應用的內(nèi)容分發(fā)

每天站每天訪問超過10萬人,數(shù)萬人獨立IP訪問,查看以前的訪問統(tǒng)計數(shù)據(jù),訪問中國各地區(qū),使用各種網(wǎng)絡連接訪問,為了確保用戶訪問速度,但也減少對網(wǎng)站服務器的要求,我們使用CDN分發(fā)靜態(tài)內(nèi)容,讓來自世界各地的用戶存CDN上的文件,CDN當?shù)谝淮卧L問靜態(tài)內(nèi)容時,服務提供商將緩存到全國各地的服務器上。當?shù)诙卧L問時,用戶實際上沒有連接到網(wǎng)站服務器以獲取文件,而是直接從CDN在服務器上獲取可以顯著提高網(wǎng)站的性能。

點擊展開全文

騰佑科技(mubashirfilms.com)成立于2009年,總部位于河南鄭州,是一家集互聯(lián)網(wǎng)基礎設施及軟硬件于一體化的高新技術企業(yè),具有IDC/ISP/ICP/云牌照、雙軟等資質(zhì),并擁有多個國家版權局認證。公司自成立以來,一直致力于發(fā)展互聯(lián)網(wǎng)IDC數(shù)據(jù)中心DataCenter、云計算Cloud、大數(shù)據(jù)BigDate、人工智能AI、內(nèi)容加速CDN、互聯(lián)網(wǎng)安全、軟件定制開發(fā)等產(chǎn)品服務及行業(yè)客戶技術一體化智能解決方案;2018年成為百度智能云AI河南服務中心。

售前咨詢熱線:400-996-8756

備案提交:0371-89913068

售后客服:0371-89913000

熱門活動

百度云服務中心
  • 熱門資訊
  • 隨便看看