![CPU 為 50%,但 IIS/ASP.net 請求仍在排隊](https://rvso.com/image/652663/CPU%20%E7%82%BA%2050%25%EF%BC%8C%E4%BD%86%20IIS%2FASP.net%20%E8%AB%8B%E6%B1%82%E4%BB%8D%E5%9C%A8%E6%8E%92%E9%9A%8A.png)
我們有一個 (VMWare) 虛擬機,在負載測試時,它似乎開始對 120 個用戶的請求進行排隊。
CPU 的使用率似乎沒有超過 70%,所以我很難理解為什麼它無法處理請求?
CPU 時間以紅色顯示在左下角
答案1
CPU 並不是處理請求的唯一瓶頸。一切都取決於您的應用程式正在做什麼。如果您正在執行大量 IO 密集型工作,那麼這可能是比 CPU 更重要的因素。
ASP.net 的執行緒池中的執行緒數量有限,因此如果它們都很忙,它們就會開始排隊。查看這件作品有關請求排隊的一些提示。
您是否對每個請求執行大量 sql 插入/更新?取得一些時間安排,甚至可以使用 Glimpse。其中太多,它們會阻止等待回應的線程/請求。
您是否正在呼叫某些第 3 方 api?這些會導致線程/請求等待,並且允許的並發連接數受到限制。
該應用程式為每個用戶做什麼?您正在檢索 1000 多筆記錄嗎?
檢查這個MS Connect 支援文章,如果您還沒有調整過的話,有很多 IIS 配置選項可能會對您有所幫助。
同樣,這是在不知道您的應用程式做什麼以及如何做的情況下進行的。