历史版本2 :服务器线程数优化 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

1. 服务器线程概念编辑

一般服务器都需要承受较高的访问量,能够同时响应不同用户的请求,在服务器中使用线程来处理接收的每个请求,若能够合理管理线程数,服务器就能够更好的在恶劣环境下保持较高的稳定性和健壮性。
各Web服务器管理线程主要用到如下几个参数:
最小线程数:服务器最少保证的线程数;
最大线程数:服务器并发处理的最大任务个数,超过该数时,请求会进入等待,等待空闲线程;
最大等待时间:服务器线程数超过最大线程数,进入等待的请求,超过最大等待时间时,服务器会绝此次请求,返回connection refused。

2. 如何设置服务器线程数编辑

一般的服务器操作都包括量方面:计算(主要消耗cpu)、等待(io、数据库等),最重要的参数就是“最大线程数”:
第一种极端情况,如果我们的操作是纯粹的计算,那么系统响应时间的主要限制就是cpu的运算能力,此时最大线程数应该尽量设的小,降低同一时间内争抢cpu的线程个数,可以提高计算效率,提高系统的整体处理能力。
第二种极端情况,如果我们的操作是纯粹IO或者数据库,那么响应时间的主要限制就变为等待外部资源,此时最大线程数应该尽量设的大,这样才能提高同时处理请求的个数,从而提高系统整体的处理能力。此情况下因为tomcat同时处理的请求量会比较大,所以需要关注一下tomcat的虚拟机内存设置和linux的open file限制。
而现实应用中,我们的操作都会包含以上两种类型(计算、等待),所以最大线程数的配置并没有一个最优值,一定要根据具体情况来配置。
最好的做法是:在不断测试的基础上,不断调整、优化,才能得到最合理的配置。

索引: