历史版本11 :服务器线程数优化 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 服务器线程概念编辑
一般服务器都需要承受较高的访问量,能够同时响应不同用户的请求,在服务器中使用线程来处理接收的每个请求,若能够合理管理线程数,服务器就能够更好的在恶劣环境下保持较高的稳定性和健壮性。
各 Web 服务器管理线程主要用到如下几个参数:
服务器最少保证的线程数;
服务器并发处理的最大任务个数,超过该数时,请求会进入等待,等待空闲线程;
服务器线程数超过最大线程数,进入等待的请求,超过最大等待时间时,服务器会绝此次请求,返回 connection refused。
2. 如何设置服务器线程数编辑
一般的服务器操作都包括两方面:计算(主要消耗 CPU)、等待(IO、数据库等),最重要的参数就是“最大线程数”:
第一种极端情况,如果我们的操作是纯粹的计算,那么系统响应时间的主要限制就是 CPU 的运算能力,此时最大线程数应该尽量设的小,降低同一时间内争抢 CPU 的线程个数,可以提高计算效率,提高系统的整体处理能力。
第二种极端情况,如果我们的操作是纯粹IO或者数据库,那么响应时间的主要限制就变为等待外部资源,此时最大线程数应该尽量设的大,这样才能提高同时处理请求的个数,从而提高系统整体的处理能力。此情况下因为Tomcat同时处理的请求量会比较大,所以需要关注一下 Tomcat 的虚拟机内存设置和 Linux 的 open file 限制。
而现实应用中,我们的操作都会包含以上两种类型(计算、等待),所以最大线程数的配置并没有一个最优值,一定要根据具体情况来配置。
最好的做法是:在不断测试的基础上,不断调整、优化,才能得到最合理的配置。
索引: