Tomcat7性能调优

时间:2021-08-14 20:20:04

open files

修改linux系统open files限制,通过ulimit –a可看到系统默认的一个进程最大打开文件数为1024,linux系统中一切皆为文件,包含socket连接,需将些值调大,才可建立更多的socket连接。

[root@localhost tomcat]# ulimit -a
core file size (blocks, -c)
data seg size (kbytes, -d) unlimited
scheduling priority (-e)
file size (blocks, -f) unlimited
pending signals (-i)
max locked memory (kbytes, -l)
max memory size (kbytes, -m) unlimited
open files (-n)
pipe size ( bytes, -p)
POSIX message queues (bytes, -q)
real-time priority (-r)
stack size (kbytes, -s)
cpu time (seconds, -t) unlimited
max user processes (-u)
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

修改方式如下:

打开如下文件/etc/security/limits.conf

vi /etc/security/limits.conf

在文件中加入如下两行,将此数值,改为65535

* soft nofile
* hard nofile

修改后,重新登录,然后再使用ulimit -a即可看到修改已生效。

修改Tomcat线程池

打开${catalina.base}/conf/server.xml文件,将Connector节点修改如下

<Connector port="8080"  protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000" acceptCount="10000" maxThreads="1000"
redirectPort="8443"/>

禁用Tomcat访问日志

访问量很大时,${catalina.base}/logs/localhost_access_log*会非常大,如果不需要看这些日导,可修改${catalina.base}/conf/server.xml文件,禁用该日志。打开该文件,将如下内容注释即可。

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />

设置Tomcat内存

打开文件${catalina.base}/bin/setenv.sh(如果没有则新建),添加下如下内容:

JAVA_OPTS="-Xms4096m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=256m"
export JAVA_OPTS

开启Tomcat Apr模式

官方文档中介绍,该模式对IO速度进行了大幅度优化,应将Tomcat调成该模式,下面是链接。

http://tomcat.apache.org/tomcat-7.0-doc/apr.html

如何开启apr模式,可以解压{tomcat}/bin/tomcat-native.tar.gz,然后进入到jni/docs,里面有详细的说明。