整體而言,一個(gè)網(wǎng)站性能的表現(xiàn)如何,絕非是一個(gè)網(wǎng)站平臺(tái)類型就能決定,它牽連的層面相當(dāng)多,至少包括了以下幾個(gè)重點(diǎn)。
首當(dāng)其沖就是CPU的選擇,因?yàn)檩^慢的處理速度與核心數(shù)較少的規(guī)格,都會(huì)大幅降低密集Session處理時(shí)的效率,而較小的L2/L3緩存也會(huì)影響處理的性能。其他像是物理內(nèi)存的大小、網(wǎng)絡(luò)的帶寬、存儲(chǔ)磁盤的讀寫速度以及存儲(chǔ)界面卡的規(guī)格等等,也都是影響網(wǎng)站性能表現(xiàn)的重要因素。其中,內(nèi)存的多寡更是直接影響到平臺(tái)上網(wǎng)站的數(shù)量、應(yīng)用程序場(chǎng)的數(shù)量、任務(wù)處理程序的數(shù)量以及動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容的存儲(chǔ)效率等等。
當(dāng)硬件各主要資源的使用率偏低,但網(wǎng)站的性能卻表現(xiàn)不佳時(shí),就必須探究應(yīng)用程序本身程序碼的設(shè)計(jì)問(wèn)題。但如果是硬件資源在少量的用戶連接訪問(wèn)時(shí)就會(huì)往上飆升,便極有可能是前端應(yīng)用程序?qū)τ诤蠖藬?shù)據(jù)庫(kù),在執(zhí)行查詢、添加、刪除以及更新數(shù)據(jù)的方式出了問(wèn)題。以SQL Server來(lái)說(shuō)一般來(lái)說(shuō),就是沒(méi)有善用預(yù)存程序(Stored Procedure),以致于造成前端網(wǎng)站的計(jì)算資源耗盡。
基本上我們都會(huì)將數(shù)據(jù)庫(kù)系統(tǒng)與網(wǎng)站應(yīng)用程序,分別在不同的物理主機(jī)或虛擬機(jī)來(lái)運(yùn)行,這樣可以讓各類資源的使用完全獨(dú)立開來(lái),不會(huì)發(fā)生像是在連接流量的高峰期間互搶CPU、磁盤及網(wǎng)絡(luò)I/O資源的情況。另一方面也有助于將來(lái)拓?fù)浼軜?gòu)的擴(kuò)展更加容易。除此之外,數(shù)據(jù)庫(kù)本身的結(jié)構(gòu)設(shè)計(jì)也是極為重要的一個(gè)環(huán)節(jié)。
將不同應(yīng)用需要或是不同重要級(jí)別的數(shù)據(jù),分散存放在不同性能的存儲(chǔ)設(shè)備之中,是非常重要的基礎(chǔ)規(guī)劃。尤其是對(duì)于支持多數(shù)據(jù)庫(kù)分散存儲(chǔ)的應(yīng)用系統(tǒng),像是Microsoft的Exchange Server以及IBM的Domino Server,您必須將一些關(guān)鍵的人員郵箱以及應(yīng)用程序數(shù)據(jù)庫(kù)存放在像是RAID 0+1的HDD磁盤數(shù)組或是SSD的磁盤中。
一般我們對(duì)于網(wǎng)站應(yīng)用系統(tǒng)的拓?fù)浼軜?gòu)設(shè)計(jì),就是采用前后端各一部主機(jī)的方式來(lái)完成。但在面對(duì)大流量的使用環(huán)境中,您可能得要進(jìn)一步將它拓展成前后端皆有負(fù)載平衡的多主機(jī)分散架構(gòu),或是將占用較多計(jì)算資源的服務(wù)器角色獨(dú)立出來(lái),常見(jiàn)的便是擔(dān)任索引目錄以及搜索的應(yīng)用服務(wù)。
接下來(lái)就讓我們一同來(lái)學(xué)習(xí)如何在Windows Server 2012 R2的IIS網(wǎng)站應(yīng)用程序平臺(tái)上,通過(guò)內(nèi)置的監(jiān)視工具以及服務(wù)本身的功能,為您企業(yè)的網(wǎng)站應(yīng)用程序運(yùn)行性能打好基礎(chǔ)。