当我为Redis服务器运行负载测试时,我发现,Redis服务器使用的cpu内核空闲率约为80%,但软中断(si)约为40。我不知道为什么。
我读了一些页面,我得到Redis服务器使用网络中断来获得良好的性能。但我还是不明白。有人可以解释为什么Redis服务器使用这么多软中断吗?非常感谢
答案 0 :(得分:0)
软中断是I / O事件通知在许多操作系统上的工作方式。 Redis(主要)是单线程的。通过只有一个线程,您不必担心并发问题。所以它分别在Linux / BSD上使用epoll / kqueue。当设备驱动程序完成发送I / O或正在接收时,这些内核命令使用内核的软中断来通知系统。它应该使用非常少的CPU,因为它是所有I / O,很少Redis是一个CPU限制的问题。
TLDR:它是redis封面下的所有I / O多路复用。