tomcat优化配置

zhangfengyi 2018-07-20 09:11:36
服务器windows2012 64位操作系统,内存128G,16核CPU, sql server 2008, jdk1.7, tomcat7.0.11,按以下配置后,通过manager/status/ 监控tomcat, jvm最大内存始终是227M,并发能力只有30左右。
server.xml配置

<Connector port="8580" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
maxThreads="1000" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
connectionTimeout="30000"
minSpareThreads="100"
maxSpareThreads="300"
acceptCount="100"
keystoreFile="conf/server.jks" keystorePass="123456"
truststoreFile="conf/server.jks" trusttorePass="123456"/>


bin/catalina.bat配置:

set JAVA_OPTS=
-server
-Xms3072M
-Xmx3072M
-Xss512k
-XX:NewSize=256M
-XX:MaxNewSize=512M
-XX:PermSize=128M
-XX:MaxPermSize=256M
-XX:+UseBiasedLocking

...全文
447 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangfengyi 2018-08-13
  • 打赏
  • 举报
回复
两个问题:
1、怎样设置apr,https才能生效;
2、我无论如何设置,最大内存,总的内存都不变
zhangfengyi 2018-08-09
  • 打赏
  • 举报
回复
配置文件:

<Connector port="8580" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true"
maxThreads="1000" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
connectionTimeout="30000"
minSpareThreads="100"
maxSpareThreads="300"
acceptCount="100"
SSLCertificateFile="conf/scert.cer"
SSLCertificateKeyFile="conf/outfinalserver.key"
SSLVerifyClient="none"/>

报错:

八月 07, 2018 9:26:19 下午 org.apache.coyote.AbstractProtocolHandler init
严重: Failed to initialize end point associated with ProtocolHandler ["http-nio-8580"]
java.io.FileNotFoundException: C:\.keystore (系统找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:402)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:308)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:561)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:507)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:479)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:483)
at org.apache.coyote.AbstractProtocolHandler.init(AbstractProtocolHandler.java:345)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:910)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:101)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:101)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:781)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:101)
at org.apache.catalina.startup.Catalina.load(Catalina.java:572)
at org.apache.catalina.startup.Catalina.load(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:262)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:430)

zhangfengyi 2018-07-29
  • 打赏
  • 举报
回复
如何配置apr, http方式可以,https方式,网上介绍的都是用工具生成证书,我现在使用的是CFCA证书,
keystoreFile="conf/server.jks" keystorePass="123456"
truststoreFile="conf/server.jks" trusttorePass="123456"/>
网上没有找到用cfca证书的方法。
stacksoverflow 2018-07-20
  • 打赏
  • 举报
回复
-XX:MaxPermSize=256M这个太小了吧
kingmax54212008 2018-07-20
  • 打赏
  • 举报
回复
JVM的设置可以配置大一些.

具体配置参看如下:

-Xms4096M:堆容量初始值

-Xmx4096M:堆容量最大值

-Xmn1024M:新生代容量,所以老年代容量 = 堆容量 - 新生代容量 = 3072M

-Xss256K:线程堆栈空间大小

-XX:MaxDirectMemorySize:Direct Buffer Memory大小

-Djava.awt.headless=true:使用缺少外设的系统配置模式

-Dfile.encoding=UTF-8:设置编码规范

jmx配置用于远程管理

-XX:+HeapDumpOutOfMemoryError:当出现OOM时,打印堆快照

-XX:HeapDumpPath:堆快照打印路径,建议文件后缀设为hprof,可被MAT识别

-XX:+DisableExplicitGC:关闭System.gc()

-XX:SurvivorRatio=1:Eden区与Survivor区的大小比值

-XX:+UserConcMarkSweepGC:使用CMS收集器

-XX:+UserParNewGC:新生代使用ParNew收集器

-XX:+CMSParallelRemarkEnabled:降低标记停顿

-XX+UseCMSCompactAtFullCollection:在full gc的时候,对年老代的压缩

-XX:CMSFullGCsBeforeCompaction=0:full gc后不压缩老年代内存空间

-XX:LargePageSizeInBytes:内存页的大小

-XX:+UseFastAccessorMethods:原始类型的快速优化

-XX:+UseCMSInitiatingOccupancyOnly:使用手动定义初始化定义开始CMS收集,禁止hostspot自行触发CMS GC

-XX:CMSInitiatingOccupancyFraction=80:老年代使用80%后开始CMS收集

-XX:SoftRefLRUPolicyMSPerMB=0:每兆堆空闲空间中SoftReference的存活时间为0秒
幽饮烛 2018-07-20
  • 打赏
  • 举报
回复
这得看处理了什么业务,这里只能说明内存不是性能瓶颈,还得看 网络、磁盘IO、CPU 等。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧