真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

高性能ASP.NET站點如何識別性能瓶頸

這篇文章主要講解了“高性能ASP.NET站點如何識別性能瓶頸”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“高性能ASP.NET站點如何識別性能瓶頸”吧!

因為努力和真誠,有更多的客戶和我們聚集在一起,為了共同目標(biāo),成都創(chuàng)新互聯(lián)在工作上密切配合,從創(chuàng)業(yè)型企業(yè)到如今不斷成長,要感謝客戶對我們的高要求,讓我們敢于面對挑戰(zhàn),才有今天的進(jìn)步與發(fā)展。從網(wǎng)站到微信小程序開發(fā),軟件開發(fā),重慶APP軟件開發(fā),10多年企業(yè)網(wǎng)站建設(shè)服務(wù)經(jīng)驗,為企業(yè)提供網(wǎng)站設(shè)計,網(wǎng)站托管運營一條龍服務(wù).為企業(yè)提供成都全網(wǎng)營銷,按需定制,原創(chuàng)設(shè)計,10多年品質(zhì),值得您的信賴.

在服務(wù)端有很多可以優(yōu)化的地方,優(yōu)化的話題也很多,在本篇中我們主要關(guān)注:如果讓服務(wù)端更快的生成頁面,同時也關(guān)注如果更快的讓生成的頁面更快的到達(dá)客戶端瀏覽器。

其實我們就是在優(yōu)化下面的時間線

高性能ASP.NET站點如何識別性能瓶頸

要縮短上面的那條時間線,就需要服務(wù)端更好的利用它的資源,例如更好的利用和分配內(nèi)存資源,CPU資源等。如何好的充分利用這些資源,一定程度上與我們寫的代碼的質(zhì)量息息相關(guān),一段好的,高效的代碼往往可以讓我們少花錢去更多的硬件設(shè)備(所以代碼的質(zhì)量非常重要)。

下面我們就來看看服務(wù)端一般可能出現(xiàn)的性能瓶頸:

內(nèi)存不足

缺乏緩存

CPU壓力

處理請求線程問題

接下來會介紹如何采用系統(tǒng)的性能診斷工具來辨明:到底是哪種性能瓶頸導(dǎo)致了服務(wù)端解析頁面過慢。在用性能診斷工具找出了問題之后,然后針對問題再次做詳細(xì)的分析,同時收集數(shù)據(jù),根據(jù)這些數(shù)據(jù)來采用對應(yīng)的措施,對癥下藥。至于每一種性能問題如何采取何種措施解決,我們后面的文章會一章章的詳細(xì)詳述,請大家稍安勿躁,在此我們先學(xué)會發(fā)現(xiàn)問題。發(fā)現(xiàn)站點的可能出現(xiàn)了性能問題之后,首先不要立刻的修改站點或者服務(wù)器,而是要先診斷出瓶頸出現(xiàn)在哪里。J

內(nèi)存

首先要判斷服務(wù)器是否內(nèi)存不足。因為如果內(nèi)存不足,那么會增加服務(wù)器的CPU壓力和磁盤的IO讀寫操作,發(fā)過來說,如果解決了內(nèi)存不存的問題,自然而然的就減少了CPU和磁盤IO讀寫操作。

為什么內(nèi)存不存會增加CPU的壓力和磁盤的IO讀寫操作?

當(dāng)系統(tǒng)的內(nèi)存不足的時候,系統(tǒng)就會把原來需要放在內(nèi)存的一些數(shù)據(jù)轉(zhuǎn)移保存在磁盤上面,保存為pagefile.sys。當(dāng)這些數(shù)據(jù)被需要的時候,那么系統(tǒng)就會去讀寫磁盤。讀寫磁盤的操作會消耗CPU資源,同時增加了磁盤的IO操作。

下面我們就來看看,如何識別內(nèi)存不足性能瓶頸。

我們主要講述如何在Window服務(wù)器系統(tǒng)中診斷這個問題。

Window Server 2003

在系統(tǒng)的命令行中輸入”perfmon”。就會彈出如下的窗口。然后點擊工具欄上面的”+”按鈕,在”Performance object”下拉框中選擇”Memory”,然后再選擇”Pages/sec”計數(shù)器。如果這個值很大,就說明CPU在內(nèi)存和磁盤之間不斷的交換數(shù)據(jù)。

高性能ASP.NET站點如何識別性能瓶頸

Windows Vista, Server 2008, Window 7

在Windows Vista和Windows Server 2008,Window 7中不僅可以運行”perfmon”,打開性能監(jiān)視窗口。而且可以運行”resmon”來開啟資源監(jiān)視窗口,從這個窗口看,可以更加直觀。在資源監(jiān)視窗口中看到”硬錯誤/秒”(Hard Faults/sec).然后檢查每個進(jìn)程的這個值,如果進(jìn)程的”硬錯誤/秒”數(shù)值很高,那么就說明服務(wù)器已經(jīng)是內(nèi)存不足了。(我們將會在后續(xù)的文章講述如何解決這個問題,此處我們先講述如何找出這個問題

高性能ASP.NET站點如何識別性能瓶頸

緩存

大家都知道,在適當(dāng)?shù)膶嵱镁彺娌呗钥梢詷O大的提高服務(wù)端的性能。我們一般把數(shù)據(jù)緩存在內(nèi)存中,例如瀏覽器的內(nèi)存,代理服務(wù)器的內(nèi)存等。而且可以把一些常用的對象,部分的頁面,甚至整個頁面緩存起來。

緩存的好處有很多,如下:

縮短服務(wù)端的響應(yīng)時間

減少CPU的使用壓力

避免頻繁的讀取數(shù)據(jù)庫

如果把數(shù)據(jù)緩存在瀏覽器或者代理服務(wù)器,還可以減少不必要的回傳

一般來說,我們把一些使用很頻繁的數(shù)據(jù)或者每次生成都要花費大量資源的數(shù)據(jù)緩存起來。

但是如何才算得上是”使用很頻繁”?

沒有一定的標(biāo)準(zhǔn)了,還是那句話:看情況!例如,如果一個頁面在1秒鐘之內(nèi)被請求了10次,可能相比較其他的頁面而言,這個頁面的請求不算””頻繁(其他的頁面在1秒之內(nèi)請求100次),但是如果把這個頁面緩存1秒,也是對性能的極大提升,因為可以一秒之內(nèi),有90%的請求都是由緩存響應(yīng)的。大家可以去參看一下”緩存的5分鐘法則”。至于如何進(jìn)行緩存,在后面的文章講解。 

CPU

還是和之前內(nèi)存診斷一樣,我們可以運行”perfmon”命令,然后在”Processor”分類下面選”%Processor Time”計數(shù)器。如下

高性能ASP.NET站點如何識別性能瓶頸

同時,我們還可運行”resmon”來打開“資源監(jiān)視窗口”來看:

高性能ASP.NET站點如何識別性能瓶頸

大家可以看到***個標(biāo)紅色框的”CPU”列,其實這個就是反應(yīng)了” %Processor Time”計數(shù)器監(jiān)控的結(jié)果。一般來說,如果某個進(jìn)程的這個值高于了80%,那么就說明這個進(jìn)程對CPU資源有很大的消耗。如果是w3wp.exe這個進(jìn)程消耗了80%,就說你的站點消耗了大量的CPU。我們會在后續(xù)的文章講述:如果減小CPU的壓力。

處理請求線程

我們知道:發(fā)送到服務(wù)器的每一個請求,都是有應(yīng)用程序池中的一個線程來處理的。而且用來處理請求的線程的數(shù)量是有IIS來控制的,如果應(yīng)用程序池中沒有空閑的線程來處理新的請求,那么這個請求就被放在請求隊列中進(jìn)行等待。如果在服務(wù)端的請求隊列太長了,服務(wù)器忙不過來,那么新來的請求很有可能被服務(wù)器拒絕

一般來說,一個應(yīng)用程序池中的可用的線程數(shù)量由服務(wù)端安裝的.NET Framework的版本和IIS的一些設(shè)置來決定的。

.NET Framework Version

默認(rèn)的可用線程數(shù)

1.1.

20*CPU的數(shù)量-8

2.0

12* CPU的數(shù)量

3.5, 4.0

IIS 7經(jīng)典模式:12* CPU的數(shù)量


IIS 7 集成模式: 100* CPU的數(shù)量

如果在服務(wù)端沒有足夠的線程來處理請求,這種情況就是所謂的”線程饑餓”。我們可以通過系統(tǒng)的性能計數(shù)器來檢查站點的服務(wù)端是否發(fā)生了這種情況:

1.       在命令窗口運行”perfmon”.如下:

2.       在打開的性能監(jiān)視窗口中,選擇”性能監(jiān)視器”,如下:

3.       點擊“+”按鈕,然后展開”ASP.NET”分類:

高性能ASP.NET站點如何識別性能瓶頸

4.       添加如下計數(shù)器:

Request Execution Time

處理一個請求花費的時間(單位是:毫秒)

Request Current

現(xiàn)在ASP.NET運行時要處理的請求數(shù)量,包括正在處理的請求和等待隊列中的請求。

高性能ASP.NET站點如何識別性能瓶頸

5.       然后展開”ASP.NET Applications”分類,添加如下計數(shù)器:

Request Executing

現(xiàn)在正在被處理的請求數(shù)

如果”Request Current”的數(shù)量大于了Request Executing的數(shù)量,那么就說明有請求在等待被處理。后面的文章會詳細(xì)講述如何處理這種情況。

高性能ASP.NET站點如何識別性能瓶頸

如果”Request Current”的數(shù)量大于了Request Executing的數(shù)量,那么就說明有請求在等待被處理。后面的文章會詳細(xì)講述如何處理這種情況。

高性能ASP.NET站點如何識別性能瓶頸

高性能ASP.NET站點如何識別性能瓶頸

感謝各位的閱讀,以上就是“高性能ASP.NET站點如何識別性能瓶頸”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對高性能ASP.NET站點如何識別性能瓶頸這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


當(dāng)前名稱:高性能ASP.NET站點如何識別性能瓶頸
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/jedoie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部