1 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
正如我從您的異常消息中看到的,您的最小工作進(jìn)程數(shù)對(duì)于您擁有的流量來說太低了。
工人:(忙=10,空閑=32757,最小=2,最大=32767)
當(dāng)這個(gè)異常發(fā)生時(shí),你有 10 個(gè)繁忙的工作線程,而你有 2 個(gè)工作線程需要啟動(dòng)。
當(dāng)您的應(yīng)用程序用完可用線程來完成一項(xiàng)操作時(shí),.NET 會(huì)啟動(dòng)一個(gè)新線程(當(dāng)然,直到達(dá)到最大值)。并稍等一下,看看是否需要額外的工作線程。如果您的應(yīng)用程序仍然需要工作線程,則 .NET 會(huì)啟動(dòng)另一個(gè)工作線程。然后另一個(gè),然后另一個(gè)……但這需要時(shí)間。它不會(huì)在 0 毫秒內(nèi)發(fā)生。通過查看異常消息,我們可以看到 .NET 創(chuàng)建了 8 個(gè)額外的工作線程 (10 - 2 = 8)。在創(chuàng)建過程中,這個(gè)特定的 Redis 操作一直在等待并最終超時(shí)。
ThreadPool.SetMinThreads(Int32, Int32)
您可以在應(yīng)用程序開頭使用方法來設(shè)置最小線程數(shù)。ThreadPool.SetMinThreads(10, 10)
我建議您在測(cè)試時(shí)開始并進(jìn)行調(diào)整。
- 1 回答
- 0 關(guān)注
- 208 瀏覽
添加回答
舉報(bào)