【问题标题】:Average max concurrent users on TomcatTomcat 上的平均最大并发用户数
【发布时间】:2009-11-28 14:54:01
【问题描述】:

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

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

4 GET、3 INSERT、20 UPDATE 调用。

服务器规格:

四核英特尔至强 X5365 3GHz

8GB 内存

单个 320GB SATA 磁盘

操作系统:Ubuntu 8.10 32 位

数据库:Postgresql 8.4

Tomcat 6.0.18

Java 1.6.0_14

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

【问题讨论】:

    标签: tomcat testing jmeter stress-testing


    【解决方案1】:

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

    我们有一台类似的机器(除了 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 实例,它可能会成为瓶颈。运行来自不同网络的多个从站以模拟实际生产负载。

    【讨论】:

    • 不错的列表,但不要使用commons-dbcp,最好使用tomcat-jdbc。 DBCP即单线程。更多信息:vigilbose.blogspot.com/2009/03/…
    • DBCP 已经存在了很长时间,它的弱点是众所周知的。任何使用它的人都已经知道如何处理它。我们得到了很好的表现。 Tomcat 池是如此新。我现在不想跳。
    • 非常好的答案。明天我会尝试一切并回来。
    • 使用数据库会减慢大约 3 倍!!! 10ms ~ 30ms...我以为会少一些。但在您的帮助和其他帮助下,我们现在有 300 个并发连接,没有错误(超时)。
    • 您能提供您使用的 jdbc 最大连接数吗?我正在尝试比较服务器连接和数据库连接之间的工作生产 server.xml 设置的比率。
    猜你喜欢
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多