【发布时间】:2016-01-14 07:36:37
【问题描述】:
我有一个在 Amazon EC2 实例上运行的嵌入式 Tomcat 应用程序。该站点的流量增加了,因此我升级到了更大的实例。但是,在相同数量的流量和更大的服务器下,速度仍然下降。我增加了 maxThreads 和 xx/xms,但这并没有太大帮助。
Web 服务器和数据库服务器 (RDS) 上使用的服务器资源都很小(不到 10% 的内存和不到 20% 的 CPU)。
有什么办法可以加快 Tomcat 的速度吗?还是我应该硬着头皮使用多个 Tomcat 实例和一个负载均衡器?
编辑:澄清一下,应用程序没有任何变化,只是流量增加了(几乎翻了一番)。我的假设是(多于)将资源(Web 服务器和数据库)翻倍就足够了。我想事情没那么简单。
【问题讨论】:
-
没有带宽问题?如果您的网站运行需要大量 bw,接近极限,则更强大的服务器不是解决方案。
-
@ringø 带宽很高,但 AWS 应该处理它,对吗?对于我使用m3 2x large的特定实例,它应该具有很高的网络速度。
-
当它很忙时,你可以用 kill -3 来命中它(java 进程),看看是否所有线程都在等待其他线程之一(进入标准错误)。
-
我运行了线程转储,没有发现任何异常。大量 RUNNING 线程从套接字读取。
标签: java tomcat amazon-ec2