发生多少次上下文切换算是正常?
发生多少次上下文切换非常取决于你所运行的程序。一般来说如果程序有很多系统调用(syscall),那么很有可能上下文切换的量会很高;如果大部分程序都只是空闲等待 socket,那上下文切换就会相对少一些。
系统调用是一定会造成 context switches 的,因为内核需要从用户态转到内核态,然后再回到用户态。另外,也有可能你的很多进程都在进行 CPU 密集运算,每个进程被分到的 CPU 时间分片都不够执行,也会造成上下文切换增加,这个比率 = processes/core。