1.靜態(tài)html
靜態(tài)html是互聯(lián)網(wǎng)上任何站點(diǎn)最基本的一種構(gòu)成“元素”。幾乎所有的站點(diǎn)均不同程度地采用了這種“元素”。靜態(tài)的html頁(yè)面嚴(yán)格地由標(biāo)準(zhǔn)的html標(biāo)示語(yǔ)言構(gòu)成,并不需要服務(wù)器端即時(shí)運(yùn)算生成。這意味著,對(duì)一個(gè)靜態(tài)html文檔發(fā)出訪(fǎng)問(wèn)請(qǐng)求后,服務(wù)器端只是簡(jiǎn)單地將該文檔傳輸?shù)娇蛻?hù)端。從服務(wù)器運(yùn)行的那個(gè)時(shí)間片來(lái)看,這個(gè)傳輸過(guò)程僅僅占用了很小的cpu資源。為了提高靜態(tài)html的訪(fǎng)問(wèn)效率,主要可以從以下幾個(gè)方面進(jìn)行優(yōu)化:網(wǎng)絡(luò)帶寬、磁盤(pán)i/o以及cache(高速緩沖存儲(chǔ)器)。
2.服務(wù)器解析的html
依靠服務(wù)器解析的html頁(yè)面包括兩部分的代碼:一部分是標(biāo)準(zhǔn)的html代碼,另一部分是服務(wù)器端運(yùn)行的代碼(由第三方的處理程序或web服務(wù)器自己在頁(yè)面?zhèn)鬏數(shù)娇蛻?hù)端前對(duì)其進(jìn)行解釋?zhuān)?。這種html頁(yè)面是cgi程序的升級(jí)版本(因?yàn)樗膱?zhí)行效率更高)。目前,內(nèi)嵌的服務(wù)器端擴(kuò)展集,比如asp、php是普通的服務(wù)器端支持的擴(kuò)展集,已得到了非常普遍的使用。開(kāi)發(fā)這種擴(kuò)展集的目的是要使網(wǎng)站上的內(nèi)容更生動(dòng)活潑,更模塊化,以利于維護(hù)。此外,服務(wù)器解析文檔改善了性能相對(duì)低下的客戶(hù)端工作模式,將客戶(hù)端的負(fù)載降低到最低程度,同時(shí)也降低了數(shù)據(jù)傳輸對(duì)帶寬的要求。因?yàn)榉?wù)器解析文檔必須在其傳輸?shù)娇蛻?hù)端前就通過(guò)服務(wù)器來(lái)進(jìn)行解釋?zhuān)晕覀兊姆?wù)器要添加額外的cpu。
3.公共網(wǎng)關(guān)接口(cgi)
cgi使web站點(diǎn)具有更佳的交互性和實(shí)用性。它可以用來(lái)收集用戶(hù)的輸入數(shù)據(jù),允許運(yùn)行外部程序以執(zhí)行眾多與用戶(hù)輸入相關(guān)的任務(wù)以及輸出執(zhí)行結(jié)果等,因此,應(yīng)用cgi后,互聯(lián)網(wǎng)的用途被大大擴(kuò)充了。但是,要使用cgi,就必須付出一定開(kāi)銷(xiāo)。特別在cgi與解釋器(譬如perl)配合使用時(shí),cgi的調(diào)用成本會(huì)很高。如果系統(tǒng)運(yùn)行在極端繁重的負(fù)載條件下,該成本更是高居不下。如果可能的話(huà),應(yīng)該考慮選用asp或php3來(lái)取代cgi。
4.數(shù)據(jù)庫(kù)的互連性
目前,互聯(lián)網(wǎng)上大的資源殺手當(dāng)非在線(xiàn)數(shù)據(jù)庫(kù)(online databases)和電子商務(wù)(e-commerce)等應(yīng)用莫屬。提供web功能的數(shù)據(jù)庫(kù)和應(yīng)用服務(wù)器近年來(lái)飛速增長(zhǎng),顯示出強(qiáng)勁的發(fā)展勢(shì)頭。從性能的角度來(lái)看,在線(xiàn)數(shù)據(jù)庫(kù),基于mysql、oracle、sql server或sybase等的應(yīng)用如日中升,迫使我們更加關(guān)注服務(wù)器的性能狀況。對(duì)于大型網(wǎng)站來(lái)說(shuō),高負(fù)載的http傳輸和數(shù)據(jù)庫(kù)處理事務(wù)互相搶占資源,并最終可能導(dǎo)致服務(wù)器在極短的時(shí)間內(nèi)崩潰或者變得慢如蝸牛。在這種情況下,建議使用專(zhuān)門(mén)的后臺(tái)運(yùn)行的數(shù)據(jù)庫(kù)服務(wù)器(當(dāng)然也是出于安全的考慮)以及前臺(tái)處理的http服務(wù)器。
5.如何緩解瓶頸效應(yīng)
根據(jù)上述分析,我們知道不同的平臺(tái)提供不同的性能水平,各個(gè)平臺(tái)的性能之間存在一定交迭,因此,要根據(jù)我們選用的平臺(tái),考慮從以下四個(gè)方面提出可行的辦法。
6.網(wǎng)絡(luò)帶寬
可用的帶寬對(duì)于主要由靜態(tài)頁(yè)面構(gòu)成的站點(diǎn)來(lái)說(shuō),是最關(guān)鍵的因素。撇開(kāi)網(wǎng)絡(luò)的吞吐總量以及響應(yīng)速度不講,在高負(fù)載的環(huán)境下,系統(tǒng)的突發(fā)傳輸速率是非常重要的。在用戶(hù)訪(fǎng)問(wèn)的高峰期,某些站點(diǎn)也許根本無(wú)法訪(fǎng)問(wèn)。這樣的站點(diǎn)在用戶(hù)企圖訪(fǎng)問(wèn)它時(shí)顯得慢如蝸牛,而服務(wù)器自身卻仍舊非常空閑。這樣看來(lái),要成功搭建一個(gè)web主機(jī),選擇合適的帶寬顯然是非常重要的。必要時(shí),服務(wù)器到核心交換機(jī)可選擇千兆帶寬。
7.內(nèi)存
可用的物理內(nèi)存是另外一個(gè)重要因素,這是因?yàn)閷?duì)內(nèi)存的占用率會(huì)直接隨著對(duì)服務(wù)器請(qǐng)求數(shù)量的增加而增加。文件緩沖區(qū)也是非常重要的,因?yàn)樗軐⒋疟P(pán)的使用頻率降到最低程度,明顯加快事務(wù)處理的總體速度。對(duì)內(nèi)存的需求很大程度上取決于使用在特定服務(wù)器上的軟件的具體情況。除了操作系統(tǒng)的管理能力和文件系統(tǒng)的緩沖區(qū)大小之外,還需要將所選擇的web服務(wù)器軟件對(duì)硬件的特殊要求調(diào)查清楚。
8.存儲(chǔ)
web服務(wù)器的性能和存儲(chǔ)介質(zhì)有關(guān)的讀寫(xiě)時(shí)間指標(biāo)也是非常重要的,對(duì)大型文件庫(kù)和數(shù)據(jù)庫(kù)(文件緩沖區(qū)的作用在這明顯削弱)而言,尤其如此。在多設(shè)備協(xié)同工作的條件下,web服務(wù)器的磁盤(pán)系統(tǒng)必須有卓越的性能,推薦采用scsi硬盤(pán)或raid陣列。對(duì)于那些主要放開(kāi)了“只讀”權(quán)限的站點(diǎn)(用戶(hù)不能上傳數(shù)據(jù)),raid是好的解決方案。raid具有可用性(availability)、容量(capacity)及性能(performance)等三個(gè)方面的優(yōu)點(diǎn)。因?yàn)?,在raid陣列中存在多個(gè)硬盤(pán)磁頭,能明顯提升讀取操作的數(shù)據(jù)吞吐量。
9.中央處理器
對(duì)于那些主要由靜態(tài)頁(yè)面構(gòu)成的站點(diǎn)來(lái)說(shuō),cpu是最次要的一個(gè)因素。但是,在使用了包括cgi、服務(wù)器解析文檔或提供web訪(fǎng)問(wèn)方式的數(shù)據(jù)庫(kù)的情況下,就需要更多地關(guān)注cpu的性能。在這種場(chǎng)合下,如果向一個(gè)較小的用戶(hù)群體提供某種對(duì)cpu依賴(lài)很大的應(yīng)用服務(wù),那么,一個(gè)高速的單cpu可能是最有用的。但是,如果存在多個(gè)用戶(hù)同時(shí)對(duì)大批量的頁(yè)面提出訪(fǎng)問(wèn)請(qǐng)求,那么在這種情況下(尤其在這些頁(yè)面均以獨(dú)立的進(jìn)程或線(xiàn)程模式打開(kāi)情況下),多cpu系統(tǒng)(即使這些cpu的速度都很慢)更為管用。
網(wǎng)站建設(shè)前期策劃需要注意哪些?如何創(chuàng)建自己的網(wǎng)站,這幾步要知曉如何避免網(wǎng)站制作中出現(xiàn)太空洞的感覺(jué)手機(jī)APP軟件開(kāi)發(fā)這4點(diǎn)千萬(wàn)要做到移動(dòng)互聯(lián)的今天,天涯還能翻身嗎?網(wǎng)站中的死鏈一般是如何形成的網(wǎng)站建設(shè)不能忽視的一些細(xì)節(jié)網(wǎng)站改版對(duì)網(wǎng)站優(yōu)化排名存在哪些影響?