欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

歡迎來到夢飛科技

服務器租用

當前優惠活動:

你的服務器IIS最大并發數有多少?

測試系統Window 2003 Server ,IIS 6.0 ,ASP.Net 3.5 sp1 
Dual 1.8雙核,2G內存,14G虛擬內存。 
為了探尋IIS的最大并發數,先要做幾個假設。 
1、假設最大并發數就是當前的連接數。意思是當前能承受最大的連接,那么就表明最大的并發。 
2、假設IIS應用程序池處于默認狀態,更改設置將會對最大連接數產生影響。 
做完假設,現在做限制,設置站點保持HTTP連接,超時設置成0,就是不會超時。在站點請求的default.aspx頁面設置線程Thread.Sleep(int.MaxValue),接下來開發一個用來保持連接的小程序。 
復制代碼代碼如下:

class Program { 
private volatile static int errorCount = 0; 
private volatile static int rightCount = 0; 
static void Main(string[] args) { 
ServicePointManager.DefaultConnectionLimit = 10000; 
int count = 0; 
int all = 0; 
while (true) { 
all++; count++; 
CreateThread(); 
Thread.Sleep(10); 
if (count >= 200) { 
Console.WriteLine(string.Format("sucess:{0};error:{1}", all - errorCount, errorCount)); 
count = 0; 

if (all > 1800) 
break; 

Console.ReadKey(); 

static void CreateThread() { 
Thread thread = new Thread(ActiveRequest); 
thread.IsBackground = true; 
thread.Start(); 

static void ActiveRequest() { 
RequestClient client = new RequestClient("http://192.168.18.2/default.aspx?d=" + Guid.NewGuid()); 
client.RequestProcess(); 
if (client.IsError) { 
errorCount++; 
Console.WriteLine(string.Format("錯誤消息:{0}", client.Messages)); 
} else { 
rightCount++; 
//Console.WriteLine(client.Messages); 




using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Net; 
using System.IO; 
namespace MaxLinked { 
/// <summary> 
/// 
/// </summary> 
public class RequestClient { 
HttpWebRequest request; 
WebResponse response; 
public RequestClient(string url) { 
request = (HttpWebRequest)HttpWebRequest.Create(url); 
request.Timeout = int.MaxValue; 
request.KeepAlive = true; 
ErrorCode = -1; 

public void AddHeader(string name, string value) { 
request.Headers.Add(name, value); 

private bool isError = false; 
private StringBuilder buffer = new StringBuilder(); 
public int ErrorCode { get; set; } 
public bool IsError { 
get { return isError; } 

public string Messages { 
get { return buffer.ToString(); } 

public void RequestProcess() { 
try { 
response = request.GetResponse(); 
} catch (WebException ex) { 
ErrorCode = (int)ex.Status; 
buffer.Append(ex.Message); 
isError = true; 

if (response != null) { 
Stream stream = null; 
StreamReader reader = null; 
try { 
//stream = response.GetResponseStream(); 
//reader = new StreamReader(stream, Encoding.UTF8); 
//buffer.Append(reader.ReadToEnd()); 
} catch (Exception ex) { 
buffer.Append(ex.Message); 
isError = true; 
} finally { 
//if (reader != null) 
// reader.Close(); 
//if (stream != null) 
// stream.Close(); 

} else { 
isError = true; 
buffer.Append("建立連接失??!"); 


public void Close() { 
if (response != null) 
response.Close(); 
request.Abort(); 



程序設置為只能啟動1800個線程,這是由于.Net單進程最大線程數好像是2000個。因此,要測試最大并發數,要需要同時開幾個測試進程。把系統虛擬內存調到最大值,線程過多會急劇占用內存?,F在開始測試。 
打開web站點的性能計數器,把顯示比例調成1萬。 
發現到5000個連接時,IIS服務器崩潰(503錯誤),去洗了個澡,發現IIS服務器無法自己修復錯誤。又測試了幾次,發現最大并發值是8200個,但是一般到5000左右就會崩潰,有時候甚至只有1000個。 
按8200個計算,一個用戶開一個瀏覽器瀏覽網頁,可能會占用2~3個連接,按兩個計算,那么IIS默認情況下,最大并發數是4000個左右。 
打開應用程序池配置,把最大工作進程數調高(默認為1),能有效提高最大連接數。我記得以前看過一篇文章,講的是調到5左右比較合適。

夢飛科技 - 全球數據中心基礎服務領先供應商

Copyright © 2003-2019 MFISP.COM. 國外服務器租用 IDC公司 版權所有 ? 粵ICP備11019662號

主站蜘蛛池模板: 平谷区| 大英县| 夏河县| 竹山县| 高邑县| 双鸭山市| 苍山县| 巨野县| 若羌县| 贵港市| 铁岭市| 江津市| 苏州市| 炉霍县| 临安市| 菏泽市| 申扎县| 大兴区| 桐城市| 长岛县| 中江县| 西和县| 崇文区| 察哈| 太谷县| 汪清县| 长治市| 阳泉市| 涿州市| 洛浦县| 曲水县| 佛山市| 兰溪市| 呼伦贝尔市| 南雄市| 莒南县| 大连市| 茂名市| 九龙城区| 吴川市| 巴楚县|