有趣的问题是,如果我们最终不考虑所有性能决定属性,那么最终可以归结为您在Servlet中正在进行多少工作,或者如果I /
O,CPU和内存最高,则需要花费多少时间。现在,让我们在考虑以上声明的情况下向下移动列表;-
服务器每个端口可以允许的HTTP连接数
文件描述符有限制,但是该限制再次由servlet完成一个请求的时间或从请求接收第一个字节到完成发送整个响应所花费的时间触发。因为如果仅花费1毫秒并且您正在使用Netty和持久连接,则可以达到很高的>>
6000。
池中的servlet数量
理论上是>>6000。但是有多少线程正在处理您的请求?是否存在正在燃烧您的请求的线程池?因此,您想增加线程,但是多少可以说2000个并发线程。您的CPU在上下文切换方面表现不佳吗?是否受I
/ O约束?如果是的话,上下文切换是有意义的,但是您将达到那些网络限制,因为大量线程在等待网络I / O,因此最终要花多少时间在一件工作上。
D B
如果它甲骨文,祝福您连接管理,那么您肯定需要在这里进行严格的监视。现在,这只是另一个限制因素,可以视为另一个阻塞I / O。根据I /
O的定义,延迟/吞吐量比起最小的工作要大,并且成为瓶颈。
因此,最后,您需要分解所有servlet的以下或更多属性
- 是否受CPU限制?如果是,则花费多少个周期,或者可以安全地将其转换为某个时间单位。例如1ms,仅用于计算工作。
- 是否受I / O约束,如果是,则类似地找到该单元。
- 和别的
- 一长串您拥有的东西,例如CPU,内存,GB / s
现在您知道需要完成多少工作,而您所要做的就是除以所拥有的并继续进行调整,这样您就可以找到最佳选择,还可以找到您尚未考虑的其他属性,并加以考虑。



