调整线程数
另外一个可通过应用程序的连接器(Connector)进行性能控制的的参数是创建的处理请求的线程数。Tomcat使用线程池加速响应速度来处理请求。在Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最大利用率的高效程序,使空闲时间保持最低,从而接受更多的请求。
Tomcat4中可以通过修改minProcessors和maxProcessors的值来控制线程数。这些值在安装后就已经设定为默认值并且是足够使用的,但是随着站点的扩容而改大这些值。minProcessors服务器启动时创建的处理请求的线程数应该足够处理一个小量的负载。也就是说,如果一天内每秒仅发生5次单击事件,并且每个请求任务处理需要1秒钟,那么预先设置线程数为5就足够了。但在你的站点访问量较大时就需要设置更大的线程数,指定为参数maxProcessors的值。maxProcessors的值也是有上限的,应防止流量不可控制(或者恶意的服务攻击),从而导致超出了虚拟机使用内存的大小。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。
在Tomcat5对这些参数进行了调整,请看下表:
属性名
|
描述
|
maxThreads
|
Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
|
acceptCount
|
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
|
connnectionTimeout
|
网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
|
minSpareThreads
|
Tomcat初始化时创建的线程数。
|
maxSpareThreads
|
一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
|
enableLookups |
是否反查域名,默认值为true。为了提高处理能力,应设置为false
|
maxKeepAliveRequests |
保持请求数量,默认值100。 |
bufferSize |
输入流缓冲大小,默认值2048 bytes |
compression |
压缩传输,取值on/off/force,默认值off |
其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。
set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx1280m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
最好的方式是多设置几次并且进行测试,观察响应时间和内存使用情况。在不同的机器、操作系统或虚拟机组合的情况下可能会不同,而且并不是所有人的web站点的流量都是一样的,因此没有一刀切的方案来确定线程数的值。
分享到:
相关推荐
在调整Tomcat的并发线程数以提高服务器处理并发请求数量的过程中,涉及到多个关键配置,其中最为重要的是server.xml文件的调整。Tomcat的并发能力主要受到maxThreads参数的控制,这是一个设定最大并发处理线程数的...
`maxThreads`定义了最大并发线程数,当所有线程都在忙时,新来的请求将被阻塞,直到有线程可用。`minSpareThreads`则指定了空闲线程的最小数量,确保了足够的线程资源随时待命。 3. **线程与Servlet的关系** 每个...
除了协议外,我们还可以调整其他关键配置,如最大线程数、最小空闲线程数、超时时间等。这些参数能够影响服务器处理并发请求的能力和响应时间。例如,增加最大线程数可以处理更多的并发请求,但也会占用更多内存。...
- **最大线程数配置**:在`conf/server.xml`中,可以通过`<Connector>`标签的`maxThreads`属性设定Tomcat的最大线程数,以控制并发处理请求的能力。`minSpareThreads`和`maxSpareThreads`分别定义了最小和最大空闲...
标题中的“Tomcat配置连接数(优化)”指的是在Apache Tomcat服务器中调整与处理并发请求相关的设置,以提升服务器的性能和稳定性。这通常涉及到调整最大连接数、线程池大小、超时时间等核心参数。在高并发场景下,...
连接数决定了Tomcat可以接受多少并发连接,而线程池中的线程数则影响到Tomcat处理请求的吞吐量。线程池由Acceptor和Worker两部分组成,Acceptor负责接收连接,而Worker负责处理这些连接上的请求。在BIO模式下,如果...
在Tomcat 5中,这些参数变为`maxThreads`,用于设置最大线程数,以及`minSpareThreads`和`maxSpareThreads`,分别代表初始化创建的线程数和允许的最大空闲线程数。 例如,如果你的应用在正常情况下每秒处理5个请求...
`maxThreads`参数定义了服务器可以同时处理的最大线程数,即并发请求的最大数目。`acceptCount`参数则表示当达到`maxThreads`时,服务器还能接受并放入队列等待处理的连接数。适当调整这两个参数可以有效缓解服务器...
- `maxThreads`:设置最大线程数。 - `acceptCount`:当所有可能的线程都在使用时,等待队列的最大长度。 - `connectionTimeout`:空闲连接的超时时间。 2. **启用压缩**: - 对常见的文件类型(如HTML、CSS、...
三、调整线程数 通过应用程序的连接器(Connector)进行性能控制的参数是创建的处理请求的线程数。Tomcat 使用线程池加速响应速度来处理请求。在 Java 中,线程是程序运行时的路径,是在一个程序中与其它控制线程...
在`server.xml`配置文件中,`maxThreads`定义了Tomcat可以创建的最大线程数,用于处理请求。适当增加此值可以提高并发处理能力,但也要注意过多的线程会消耗更多内存。`acceptCount`参数则表示当所有线程都在处理...
Apache的`httpd.conf`配置文件中,可以通过`<IfModule worker.c>`块来调整线程和进程参数。`ThreadLimit`和`ServerLimit`控制最大线程和服务器实例数,`StartServers`定义启动时的服务器实例数,`MaxClients`设定可...
每当有新的客户端请求到达时,Tomcat会从线程池中取出一个线程来处理这个请求。这样做的好处是避免了每次请求都创建新线程的开销,提高了资源利用效率。线程池通常配置为固定大小,一旦达到最大值,后续请求将被放入...
建议设置为最大线程数的70%-80%,即 `maxThreads * 0.7-0.8`。 - **`maxConnections`**:最大连接数。建议设置为CPU核心数乘以10再乘以200,即 `maxThreads * 200`。 - **`acceptCount`**:指定当所有可以使用的...
- `minSpareThreads`和`maxSpareThreads`: 分别是最低和最高备用线程数,确保有足够的线程处理请求,但又不造成过多空闲线程。 - `acceptCount`: 当所有工作线程都被占用时,此参数定义了可挂起的请求的最大数量,...
本篇将深入探讨如何在Tomcat上发布JavaWeb项目,以及如何进行Tomcat的配置优化,包括去除项目名称和端口号、调整内存配置和设置并发线程数。 【去除项目名称和端口号】 在默认情况下,访问JavaWeb项目时URL中会...
【标题】"Tomcat5/...例如,通过调整`server.xml`中的`Connector`元素来限制并发连接数,或者启用压缩以减少网络带宽使用。同时,定期更新到最新版本以获得安全补丁和新功能也是维护一个安全稳定服务器的重要步骤。
2. 配置 minProcessors 和 maxProcessors 参数:minProcessors 设置为正常请求时候的线程数,maxProcessors 设置为两倍于并发的期望请求数,能够提高服务器性能。 3. 设置启动脚本的 JVM 参数:通过配置 JVM 的参数...
这里定义了一个名为`tomcatThreadPool`的线程池,最大线程数设置为150个,最小空闲线程数为4个。 ##### 3.5 Connector优化 Connector组件负责处理客户端的HTTP连接请求,并将请求转发给相应的Servlet容器进行处理...
10. **性能优化**:优化Tomcat涉及调整线程池大小、缓存设置、减少上下文切换等。通过合理配置,可以提升Tomcat的性能和稳定性。 附带的《HowTomcatWorks.zip》源码文件,可以帮助读者更直观地了解Tomcat的内部实现...