日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

minio 并发数_c#(asp.net)线程配置总结

發布時間:2023/12/1 C# 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 minio 并发数_c#(asp.net)线程配置总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文為大家介紹有關c#(asp.net)線程配置的相關知識,有需要的朋友可以參考下。

同一時刻只能發起的工作線程數量。

1、(maxWorkerThreads * CPU邏輯數量)-minFreeThreads

比如2個CPU默認配置maxWorkerThreads=100,minFreeThreads=176,則同時最大只能有24個工作線程。(這里不管

代碼示例:

這個配置的值,經過測試,不管此處maxconnection為多少,最終都是從上面的計算公式計算出來)

2、maxconnection,這個值是每秒可以支持的線程數。(但實際每秒可以并行運行的線程為(maxWorkerThreads * CPU邏輯數量)-minFreeThreads的結果),一般要求支持并發量,每個并發請求都很耗時的情況下,就需要設置該值為對應的并發量(有這么多線程來處理),但線程多了切換也很耗服務器資源,實際情況往往不一定請求都很耗時,所以根據實際情況調整。

3、maxWorkerThreads是最大工作線程,默認100我覺得再非高并發下還是可以

4、minWorkerThreads是最小工作線程,由于托管線程啟動比較耗時,根據實驗結果:40秒啟動了18個線程,大概接近官方說的每秒接近2個。由于線程開銷比較耗時,因此可以初始化到正常情況下的最低支持并發數量。比如我們平臺白天最少有10個并發,則可以設置最小線程為5(2個CPU),或者服務端可能會遇到瞬間的超大并發量的請求,則可設置默認最小工作線程更大一點,可以快速處理請求。minWorkerThreads只對遞增線程有影響,不影響穩定后的并發量。

5、最小空閑線程minFreeThreads參數的配置,有的官方資料建議配置成88*N的數量(如果maxWorkerThreads為100的情況),因為說為了留足夠的空閑線程給系統用,但是經過測試,發現高壓下,缺空閑線程真的空閑起來了,根本沒有用,因此我覺得應該把這個值設置小一點,比如設置為80(maxWorkerThreads為100的情況),就會留下100*2-80=120個最大連接,在高壓下就能建立120個線程,速度和效率會很快。

注意點:

1、CPU邏輯數量:按照物理CPU數量,如果CPU是超線程(多核)會再乘以2

2、同一時間可處理量不代表每秒可處理量,比如同一時間可以處理20個,可能每秒能處理200個,因為每個請求只要0.1秒。

3、注意配置節點中processModel里的maxWorkerThreads、maxIoThreads和minWorkerThreads、minIoThreads都只配置單CPU邏輯數量的值,計算時會自動乘以CPU邏輯數量。

4、配置節點包括:

System.web節點下:

代碼示例:

System.web同級節點下

代碼示例:

5、獲取參數代碼:

代碼示例:

string result = string.Empty;

int maxWorkThread = 0;

int maxIOThread = 0;

int minWorkThread = 0;

int minIOThread = 0;

int workThread = 0;

int completeThread = 0;

ThreadPool.GetMaxThreads(out maxWorkThread, out maxIOThread);

ThreadPool.GetMinThreads(out minWorkThread, out minIOThread);

ThreadPool.GetAvailableThreads(out workThread, out completeThread);

result = DateTime.Now.ToString() + ":" + "rn";

result += "最大工作線程:" + maxWorkThread + ",最大IO線程:" + maxIOThread + "rn";

result += "最小工作線程:" + minWorkThread + ",最小IO線程:" + minIOThread + "rn";

result += "可用工作線程:" + workThread + ",可用IO線程:" + completeThread + "rn";

result += "rn";

(記錄result,未使用StringBuilder,臨時用一下)。

總結

以上是生活随笔為你收集整理的minio 并发数_c#(asp.net)线程配置总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。