2017-08-29 61 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个错误吗? –