Tomcat 上的平均最大并发用户数

发布于 2024-08-13 00:16:24 字数 418 浏览 12 评论 0原文

我正在使用 JMeter 对 Web 应用程序(使用 Spring、Struts2 REST 构建、使用 PostgreSQL)进行压力测试。

我正在使用我的应用程序模拟典型用户的场景:

4 次 GET、3 次插入、20 次更新调用。

服务器规格:

4核 Intel Xeon X5365 3GHz

8GB RAM

单 320GB SATA 磁盘

操作系统:Ubuntu 8.10 32位

DB:Postgresql 8.4

Tomcat 6.0.18

Java 1.6.0_14

结果显示服务器可以处理大约 130 个并发事务。这个数字可能吗?网上有结果可以和我的比较吗?

I am doing stress test with JMeter on web application (built with Spring, Struts2 REST, uses PostgreSQL).

I am simulating typical user's scenario with my app:

4 GET, 3 INSERT, 20 UPDATE calls.

Server specs:

4core Intel Xeon X5365 3GHz

8GB RAM

single 320GB SATA disk

OS: Ubuntu 8.10 32bit

DB: Postgresql 8.4

Tomcat 6.0.18

Java 1.6.0_14

The results show that server would handle around 130 concurrent transactions. Is this number possible? Are there any results online to compare with mine?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

り繁华旳梦境 2024-08-20 00:16:24

瓶颈将出现在您的数据库中,因此在不知道您的数据库性能的情况下很难进行比较。

我们有一台类似的机器(除了 16GB RAM,运行 Tomcat 5.5)。在峰值负载下,它可以轻松服务 256 个并发连接。我们正在讨论将 maxThreads 更改为 512。

一些调整技巧,

  1. 如果您将 Apache 作为前端运行,请使用 mod_jk。它的性能比mod_proxy好得多。
  2. 如果您直接提供 HTTP 服务或使用 mod_proxy,请使用 Tomcat 6 中的 NIO 连接器。
  3. 确保您的线程池 (maxThreads) 足够大,默认仅为 200。
  4. 使 Tomcat 无状态。特别是,不要使用 HttpSession。该状态可能会导致应用程序内存泄漏并逐渐降低性能。将您的所有状态推送到数据库或客户端(cookie)。
  5. 请使用数据库池 (DBCP)。我们有 MySQL,JDBC 驱动程序非常健谈。
  6. 如果您运行一个 JMeter 实例,它可能会成为瓶颈。运行来自不同网络的多个从站来模拟真实的生产负载。

The bottleneck will be in your database so this is very hard to compare without knowing your database performance.

We have a similar machine (except with 16GB RAM, running Tomcat 5.5). In peak load, it can easily serve 256 simultaneous connections. We are debating to change the maxThreads to 512.

Some tuning tips,

  1. If you run Apache as front-end, use mod_jk. Its performance is much better than mod_proxy.
  2. If you serve HTTP directly or use mod_proxy, use the NIO connector in Tomcat 6.
  3. Make sure your thread pool (maxThreads) is large enough, default is only 200.
  4. Make Tomcat state-less. Especially, don't use HttpSession. The state may cause memory leak in the app and degrade the performance gradually. Push all your state to database or client (cookies).
  5. Do use Database pooling (DBCP). We have MySQL, the JDBC driver is very chatty.
  6. If you run one instance of JMeter, it may become the bottleneck. Run multiple slaves from different networks to simulate real production load.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文