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

目录:

1. 服务器线程概念编辑

一般服务器都需要承受较高的访问量,能够同时响应不同用户的请求,在服务器中使用线程来处理接收的每个请求,若能够合理管理线程数,服务器就能够更好的在恶劣环境下保持较高的稳定性和健壮性。

各 Web 服务器管理线程主要用到如下几个参数:

  • 最小线程数服务器最少保证的线程数;

  • 最大线程数服务器并发处理的最大任务个数,超过该数时,请求会进入等待,等待空闲线程;

  • 最大等待时间服务器线程数超过最大线程数,进入等待的请求,超过最大等待时间时,服务器会绝此次请求,返回 connection refused。

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

一般的服务器操作都包括两方面:计算(主要消耗 CPU)、等待(IO、数据库等),最重要的参数就是“最大线程数”:

第一种极端情况,如果我们的操作是纯粹的计算,那么系统响应时间的主要限制就是 CPU 的运算能力,此时最大线程数应该尽量设的小,降低同一时间内争抢 CPU 的线程个数,可以提高计算效率,提高系统的整体处理能力。

第二种极端情况,如果我们的操作是纯粹IO或者数据库,那么响应时间的主要限制就变为等待外部资源,此时最大线程数应该尽量设的大,这样才能提高同时处理请求的个数,从而提高系统整体的处理能力。此情况下因为Tomcat同时处理的请求量会比较大,所以需要关注一下 Tomcat 的虚拟机内存设置和 Linux 的 open file 限制。

而现实应用中,我们的操作都会包含以上两种类型(计算、等待),所以最大线程数的配置并没有一个最优值,一定要根据具体情况来配置。

最好的做法是:在不断测试的基础上,不断调整、优化,才能得到最合理的配置。


索引:

Tomcat 服务器并发数查看与修改