操作系统是RHEL 6(2.6.32)。我已经隔离了一个核心,并在其上运行计算密集型线程。/proc/{thread-id}/status每秒显示一次非自愿的上下文切换。为什么每秒有一次非自愿的上下文切换?
有问题的线程是SCHED_NORMAL线程,我不想改变这一点。
我该如何减少这种数量的非自愿性上下文切换?这是否依赖于/ proc/sys/kernel中的任何调度参数?
编辑:一些答复建议的替代方法。在去那条路线之前,我第一个想要了解为什么我甚至在超过几小时的运行时间内每秒钟都会得到一个非自愿的上下文切换。例如,这是由CFS引起的?如果是这样,哪个参数又如何?
EDIT2:进一步说明 - 我想回答的第一个问题如下:为什么每秒钟而不是每隔半秒或两秒钟就得到一次非自愿上下文切换?
你为什么在意?即使每秒100次的上下文切换也是现代系统中的噪声。 –
它的金融应用程序的延迟是一个溢价和evey上下文切换可能是一个(或更多)失去的机会。我想了解哪些系统调整参数确定了隔离内核上计算密集线程的非自愿上下文切换速率。 –
它最有可能阻塞锁,正常的磁盘I/O或页面错误。 –