高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

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

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

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

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

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

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

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

內(nèi)存不足

缺乏緩存

CPU壓力

處理請(qǐng)求線程問(wèn)題

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

內(nèi)存

首先要判斷服務(wù)器是否內(nèi)存不足。因?yàn)槿绻麅?nèi)存不足,那么會(huì)增加服務(wù)器的CPU壓力和磁盤(pán)的IO讀寫(xiě)操作,發(fā)過(guò)來(lái)說(shuō),如果解決了內(nèi)存不存的問(wèn)題,自然而然的就減少了CPU和磁盤(pán)IO讀寫(xiě)操作。

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

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

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

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

Window Server 2003

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

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

Windows Vista, Server 2008, Window 7

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

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

緩存

大家都知道,在適當(dāng)?shù)膶?shí)用緩存策略可以極大的提高服務(wù)端的性能。我們一般把數(shù)據(jù)緩存在內(nèi)存中,例如瀏覽器的內(nèi)存,代理服務(wù)器的內(nèi)存等。而且可以把一些常用的對(duì)象,部分的頁(yè)面,甚至整個(gè)頁(yè)面緩存起來(lái)。

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

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

減少CPU的使用壓力

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

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

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

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

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

CPU

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

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

同時(shí),我們還可運(yùn)行”resmon”來(lái)打開(kāi)“資源監(jiān)視窗口”來(lái)看:

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

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

處理請(qǐng)求線程

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

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

.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ù)端沒(méi)有足夠的線程來(lái)處理請(qǐng)求,這種情況就是所謂的”線程饑餓”。我們可以通過(guò)系統(tǒng)的性能計(jì)數(shù)器來(lái)檢查站點(diǎn)的服務(wù)端是否發(fā)生了這種情況:

1.       在命令窗口運(yùn)行”perfmon”.如下:

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

3.       點(diǎn)擊“+”按鈕,然后展開(kāi)”ASP.NET”分類(lèi):

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

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

Request Execution Time

處理一個(gè)請(qǐng)求花費(fèi)的時(shí)間(單位是:毫秒)

Request Current

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

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

5.       然后展開(kāi)”ASP.NET Applications”分類(lèi),添加如下計(jì)數(shù)器:

Request Executing

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

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

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

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

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸

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

新聞名稱(chēng):高性能ASP.NET站點(diǎn)如何識(shí)別性能瓶頸
文章地址:http://m.kartarina.com/article4/jedoie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、、ChatGPT網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
主站蜘蛛池模板: 亚洲日韩中文无码久久| 无码午夜成人1000部免费视频| 亚洲成a∨人片在无码2023| 少妇人妻偷人精品无码AV| 狠狠精品久久久无码中文字幕| 亚洲成a人片在线观看无码专区| 精品无码人妻一区二区三区| 日日日日做夜夜夜夜无码| AV无码人妻中文字幕| 国产成人无码区免费内射一片色欲| 亚洲日韩乱码中文无码蜜桃| 亚洲中文字幕无码爆乳AV| 用舌头去添高潮无码视频| 无码中文在线二区免费| 亚洲成AV人片在线播放无码| 久久无码一区二区三区少妇| 无码一区二区三区AV免费| 99久久国产热无码精品免费| 中文字幕丰满乱孑伦无码专区| 日韩av片无码一区二区三区不卡| av无码久久久久不卡免费网站 | 亚洲aⅴ无码专区在线观看| 无码专区中文字幕无码| 成在人线av无码免费高潮水 | 精品国产毛片一区二区无码| 亚洲欧洲AV无码专区| 久久午夜夜伦鲁鲁片免费无码 | 亚洲第一极品精品无码久久 | 国产成人无码综合亚洲日韩| 亚洲人成网亚洲欧洲无码| 性无码专区无码片| 亚洲AV日韩AV高潮无码专区| 亚洲精品中文字幕无码蜜桃| 国产成人无码精品久久久免费| 无码人妻一区二区三区免费视频| 亚洲AV无码国产一区二区三区| 国产乱人伦Av在线无码| 人妻丰满熟妇AV无码区HD| 亚洲一区二区三区无码中文字幕| 日韩av无码中文无码电影| 久久久久成人精品无码|