2017-08-29 94 views
0

零星地我得到100到200個redis超時例外。因爲我使用redis上的會話(通過官方MS軟件包),這些會變成客戶端的「500s」/黃色屏幕。Redis和Asp.Net會話狀態 - 超時與Eval

使用應用程序洞察調查這些超時,我發現根本原因是一些「Eval」命令。我使用了術語「一些」,因爲在異常消息上報告的keyHashSlot各不相同。

異常也可報告和IOCP工作線程(最小值爲100,通常有超過10個免費)

所以,我怎麼能下潛更深,弄清爲什麼這些Evals被調出來?它們是否因爲其內容(已執行的腳本)而超時?或者他們在隊列上浪費太多時間?

+1

你可以在redis客戶端上使用'MONITOR','SCRIPT DEBUG YES'來檢查你的Lua腳本。 – Niloct

回答

0

你看過這個嗎? https://gist.github.com/JonCole/db0e90bedeb3fc4823c2#file-diagnoserediserrors-clientside-md

尤其是,線程池節流位:https://gist.github.com/JonCole/db0e90bedeb3fc4823c2#burst-of-traffic

你能遇到你的客戶或線程池節流高CPU?

+0

是的,我的線程池正在被監視符合該代碼...目前設置爲100,我看到很少的負值,當我這樣做,它平均不超過-5/-10 ...我的問題做似乎沒有與請求爆發相關...我在一個緩慢的早晨時間超過25分鐘的突發200錯誤... – Leonardo

+0

您可以發送電子郵件到[email protected]?以下問題的答案將有所幫助(https://gist.github.com/JonCole/132b255425268459ec95#file-supportquestionnaire-md)。有了這些信息,我們可以看看在服務器端是否有任何問題。 另外,你可以分享你收到的200個錯誤嗎? –