多线程上下文切换与高并发
多线程会共同使用一组计算机上的 CPU,而线程数大于给程序分配的 CPU 数量时,为了让各个线程都有执行的机会,就需要轮转使用 CPU。不同的线程切换使用 CPU发生的切换数据等就是上下文切换。
一般情况下JMeter控制机可以启动多个JMeter进程来实现多任务的并发。单台4C8G的Windows系统,使用GUI方式最高压测过2000+线程的并发。通过单台控制机执行多任务大并发场景时,一个线程不断的处理请求来执行发送、等待、接收的过程,这个过程只要没有结束线程资源就始终得不到释放。因为多线程上下文切换时会征用更多的CPU资源而导致额外的开销,从而会严重影响多线程的执行速度,导致单台控制机有效线程并发量不足。如果追求更高的线程进行并发,只能通过启用JMeter分布式集群功能。