当前位置:论坛首页 > Linux面板 > 讨论

【已回应】Tomcat CPU 100% 问题解

发表在 Linux面板2019-3-8 09:40 [复制链接] 6 3420

看了很多方法还挺复杂各种尝试后也没有明显变化或者不是对症下药对于宝塔来说

如 catalina.sh 优化


  1. JAVA_OPTS='-server -Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256M -XX:NewSize=256m -XX:MaxNewSize=512m -XX:+UseParallelGC -XX:ParallelGCThreads=2 -XX:+UseAdaptiveSizePolicy'
  2. JAVA_OPTS="$JAVA_OPTS
  3. -Dcom.sun.management.jmxremote.port=8089
  4. -Dcom.sun.management.jmxremote.ssl=false
  5. -Dcom.sun.management.jmxremote.authenticate=false
  6. -Djava.rmi.server.hostname=192.168.1.33
  7. -Djava.util.logging.mannager=org.apache.juli.ClassLoaderLogManager
  8. -Djava.util.logging.config.file=$CATALINA_HOME/conf/logging.properties"
复制代码
如 server.xml 优化

  1. <Executor
  2.     name="tomcatThreadPool"
  3.     namePrefix="catalina-exec-"
  4.     maxThreads="800" //最大并发数
  5.     minSpareThreads="50" //初始化时创建的线程数
  6.     prestartminSpareThreads="true"
  7.     maxQueueSize="300"
  8. />
复制代码

  1. <Connector
  2.    executor="tomcatThreadPool"
  3.    port="8080"
  4.    protocol="org.apache.coyote.http11.Http11Nio2Protocol"
  5.    connectionTimeout="20000"
  6.    maxConnections="900"
  7.    redirectPort="8443"
  8.    enableLookups="false"
  9.    acceptCount="700" // 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
  10.    maxPostSize="10485760"
  11.    disableUploadTimeout="true"
  12.    compression="on"
  13.    compressionMinSize="2048"
  14.    acceptorThreadCount="2"
  15.    maxProcessors="1000"
  16.    minProcessors="5"
  17.    compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
  18.    URIEncoding="UTF-8"
  19. />
复制代码


还有启动时间长的优化等,都有作用但不是核心问题.

划重点 最终

  1. <blockquote>      <Host appBase="/www/server/tomcat/webapps/xxxx_com" autoDeploy="true" name="xxxx.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
复制代码
主要就是吧你的  reloadable="true" 改为 reloadable="false"

主要作用 reloadable 热加载 说白了你网站任何变化他就会释放和从起 我低配服务器是受不了的

啊 个人初学者 不知道对不对 不过CPU 占用明显下降了 大家参考吧






使用道具 举报 只看该作者 回复
发表于 2019-3-8 09:45:23 | 显示全部楼层
不好意思 最后代码 没全

  1.       <Host appBase="/www/server/tomcat/webapps/xxxx_com" autoDeploy="true" name="xxxx.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
  2.         <Context crossContext="true" docBase="/www/server/tomcat/webapps/xxxx_com" path="" reloadable="false" />
复制代码
使用道具 举报 回复 支持 反对
发表于 2019-3-8 10:15:14 | 显示全部楼层
跑个java项目  就目前来说 ,怎么着也得4G起步2核的cpu吧。
使用道具 举报 回复 支持 反对
发表于 2019-3-8 10:15:34 | 显示全部楼层
未来派 发表于 2019-3-8 09:45
不好意思 最后代码 没全

感谢您的分享!
使用道具 举报 回复 支持 反对
发表于 2019-3-8 10:31:23 | 显示全部楼层
大炮运维V587 发表于 2019-3-8 10:15
跑个java项目  就目前来说 ,怎么着也得4G起步2核的cpu吧。

是啊去年是的 穷啊 今年改个小的 1g 1核 好吃力 只能尽力优化了 玩呗咋办 见笑了 哈哈
使用道具 举报 回复 支持 反对
发表于 2019-3-8 10:40:30 | 显示全部楼层
未来派 发表于 2019-3-8 10:31
是啊去年是的 穷啊 今年改个小的 1g 1核 好吃力 只能尽力优化了 玩呗咋办 见笑了 哈哈 ...
  1. JAVA_OPTS='-server -Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256M -XX:NewSize=256m -XX:MaxNewSize=512m -XX:+UseParallelGC -XX:ParallelGCThreads=2 -XX:+UseAdaptiveSizePolicy'
复制代码



我觉得这里的最大内存不要超过物理内存的80%,启动jvm时候使用的最大内存不要超过物理内存的50%,另外在服务器上建立一个交换分区。
使用道具 举报 回复 支持 反对
发表于 2019-3-8 10:53:11 | 显示全部楼层
本帖最后由 未来派 于 2019-3-8 11:01 编辑
大炮运维V587 发表于 2019-3-8 10:40
我觉得这里的最大内存不要超过物理内存的80%,启动jvm时候使用的最大内存不要超过物理内存的50%,另外 ...

是的谢谢 这并不是我的配置
这些是复制了别的文章内的配置 本来发参考链接出来 但说带有不良内容禁止发贴 就删了
这些正在根据我服务器情况摸索中 谢谢您的回复
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表