Tomcat性能调优技巧

https://www.itworld.com/article/2764170/tomcat-performance-tuning-tips.html

一些适用的一般性能提示。通常,Tomcat在您执行以下操作时表现更好:

  • 使用-Xmx开关启动具有更高堆内存最大值的JVM。你做得越高,Tomcat可以使用的内存就越多。这意味着JVM不需要经常调用垃圾收集器,这意味着服务器可以将更多的CPU时间集中在服务Web请求上。反过来,这意味着可以更快地完成请求。如果您的webapp在专用服务器硬件上运行,那么只需给予JVM尽可能多的机器物理内存,就像您可以合理地给它一样。如果它在共享或虚拟硬件上运行,请挂钩JConsole或其他控制台(例如MuleSoft的Tcat Server控制台))了解您的webapp在高负载情况下往往会使用多少内存,以便您可以设置更合理的最大堆大小设置。
  • 以其初始堆内存大小(-Xms开关)启动JVM,将其设置为与其最大内存大小相同的值。这意味着当Tomcat尝试提供请求时,JVM永远不需要调整堆内存的大小和重新分配。
  • 调整连接器(Web服务器)线程池设置以更紧密地匹配您的Web请求负载。这很难做到,但要获得最佳性能非常重要。对此,重要的Connector属性是maxThreads。将此设置得太低意味着您可能没有足够的线程来处理所有请求,在这种情况下,请求必须闲置一段时间而不进行处理,直到另一个请求线程被释放。值太低通常意味着Tomcat将无法利用服务器计算机的硬件。设置maxThreads太高意味着Tomcat启动时间将超过必要的时间,并且在峰值加载时间期间,您的服务器可能会慢下来尝试同时运行那么多请求线程的爬行。您希望根据您的峰值流量模式进行恰当的设置,并将其设置得恰到好处是在该流量量下测试不同值的问题。
  • 调整一些其他连接器属性设置:
    • 压缩:尝试将此“打开 ”和“关闭 ”,并查看哪种方式最适合您的webapp。你可能会对这种差异感到惊讶。默认情况下它是“关闭 ”。
    • compressableMimeTypes:如果启用压缩,则还应设置此属性,以便Tomcat知道要压缩的内容。尝试将其设置为“ text / html,text / xml,text / javascript,text / css,text / plain ”。

性能调优中的其他重要因素包括:

  • 数据库性能:现在许多Web应用程序都使用关系数据库。在这种情况下,数据库连接池设置非常重要。主要是您定义数据库连接池的Resource元素的maxActivemaxIdlemaxWait属性。那么,对数据库进行性能测试呢?Tomcat的性能可能会在等待数据库查询完成时显着减慢。
  • HTTP缓存标头:启用用户的Web浏览器来缓存Web应用程序的静态内容可以极大地提高用户的感知性能。这是耗时的,因为最佳调整几乎总是特定于webapp,并且需要对webapp进行一些研究。但是,当Tomcat提供webapp的静态文件时,使缓存工作就是设置正确的响应头及其值集。
  • HTTPS比HTTP慢,但这是一种权衡。HTTPS是安全的,而HTTP则不是。在每个请求期间,HTTPS在网络上更加健谈。通常,当用户的Web浏览器在地理上远离Tomcat时,HTTPS会使请求花费更长的时间。它可能只能通过使Tomcat在地理上更接近用户来修复。

此外,人们通常倾向于失去大约一半的Tomcat性能的方式是从Apache HTTPD代理对Tomcat的所有请求。如果您需要最佳的Tomcat性能,那么该配置不是您想要的。有关这些配置的性能详细信息,请参阅我们的书Tomcat:The Definitive Guide,Second Edition 的示例章节Tomcat性能调优中的基准测试(具有良好的性能图表)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值