多个核心对需要5毫秒处理的页面的影响

时间:2011-12-16 19:27:21

标签: java multithreading spring tomcat scalability

我的春季应用程序页面需要5毫秒才能渲染,而使用ab我每秒大约需要200个请求。

我在一个单核的虚拟机上进行了测试。

现在这个页面只需要一个xml文件并解析它并初始化一个对象,然后将该对象插入到mysql中。

现在假设mysql没有阻塞(连接池不够大或表锁),添加另一个核心应该每秒加倍我的请求是否正确?

如果我通过单个线程击中tomcat每秒获得200个请求,我应该继续加倍我的rps,因为我增加了线程正确吗? (显然有一点)。

通常瓶颈是因为mysql似乎能够在一个非常简单的servlet应用程序上每秒处理3-4K插入。

1 个答案:

答案 0 :(得分:2)

从单核转换到双核应该按预期工作。如果更多内核和更高负载发挥作用,您可能会遇到线程调度对所有线程都不公平。

由于在同一时间内分配和释放了更多内存,垃圾收集可能是一个问题。

只要所有请求的速度都不比它们处理速度快(200 * 5ms)1000ms(你应该有大约300ms的空闲时间)。你没事。 但由于调度,在每次系统调用(主要是来自DB的I / O)上从用户模式更改为内核模式会增加处理请求所需的额外时间。这可能会导致瓶颈。