Linux下tomcat配置优化

时间:2021-03-16 19:11:18

一、jvm内存优化方案。

 

         要优化服务器,首先从jvm入手,分配好jvm内存,配置方案如下:

        JAVA_OPTS=" -server -Xms2048M -Xmx2048M -XX:MaxNewSize=512m -XX:MaxPermSize=512m -Xmn1000M -Xss1024k -XX:+AggressiveOpts -XX:+UseParallelGC -XX:+UseBiasedLocking -Djava.awt.headless=true"

         其中,-server是让jvm在服务模式下运行,可以提高jvm运行效率,其他的就不用多操心了。

         -Xmx是最大内存,如果是32操作系统,2G内存以上,设置为1280G是最优的,设置太大了会造成jvm崩溃,这是32位jvm本身的限制造成的。

         -Xmn是最小内存,官方推荐为最大内存的3/8,这里取下整,就521M了

         -Xms为初始化内存,直接与最大内存一致,这样可以避免内存重复分配,降低效率,直接上来就是最大的,jvm也不用再扩展内存了,节省时间。

         -Xss是每个线程所占用的内存,也就是每个线程的堆栈大小,太小了容易溢出,太大了会导致创建的线程数量减少,因为最大容量是有限的。这里最大内存为1280M,理论上可以创建1000个左右线程,差不多支持500个并发访问(是并发访问哦,也就是500个用户同一时刻点击),已经相当可以了。

         -XX:+AggressiveOpts,加快编译。

         -XX:+UseParallelGC,优化垃圾回收。

         -XX:+UseBiasedLocking,优化锁机制。

        

         将上边这条配置,添加到tomcat安装目录下的\bin\catalina.sh文件中,放在哪个位置无所谓,只要在cygwin=false这句话之前就可以了。    

 

二、tomcat服务器优化方案

        

          搞定了jvm,接下来就要配置tomcat了,配置如下:

      

Linux下tomcat配置优化
1   <Connector port="80" protocol="HTTP/1.1" 
2 
3                maxHttpHeaderSize="8192" 
4 
5                maxThreads="1000" minSpareThreads="100" maxSpareThreads="300" 
6 
7                enableLookups="false" redirectPort="8443" acceptCount="200" 
8 
9                connectionTimeout="50000" disableUploadTimeout="true"/> 
Linux下tomcat配置优化

 

 

         这些配置中,我们关心的有:

         maxThreads最大线程数,设为1000可以创建1000个线程,也就是1000个并发事务,大约可以支持500个完全并发访问,这是一个相当恐怖的数字,可以试想一下,500个用户同时点击,是什么概率。

         minSpareThreads最小备用线程数,可以理解为,服务器一旦启动,马上创建这么多线程以备使用,因此设置太大了浪费资源,太小了会降低效率,这个就要根据读者的服务器配置和具体的访问量来衡量,不能一概而论,我这里的设置仅仅是个参考,本服务器访问量大约每天几十万pv,并且比较集中。

         maxSpareThreads最大备用线程数,创建的线程数量超过这个数量时,如果某些线程空闲,那么这些会被回收,直到线程总数量小于这个值。

         acceptCount当tomcat启动的线程数达到最大时,等待的线程数量(注意并没有新线程创建,只是预定了而已)。这个数值也需要根据实际情况设置,如果设置的偏小,会造成很多请求直接被拒绝;如果设置的偏大,会造成很多请求超时,读者理解一下吧!

         enableLookups关闭tomcat的dns查询,节省带宽,无需过多了解。

         disableUploadTimeout这个标志允许servlet container在一个servlet执行的时候,使用一个不同的,更长的连接超时。最终的结果是给servlet更长的时间以便完成其执行,或者在数据上载的时候更长的超时时间,总之,就是为了保证每次请求都能顺利完成。

         将这段话复制到tomcat安装目录下的\conf\server.xml文件中。

         注意,这个配置在server.xml中本来就存在,可能要和读者以前的配置融合一下,别直接盲目覆盖。。。