0

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

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

4 GET、3 INSERT、20 UPDATE 调用。

服务器规格:

4核英特尔至强X5365 3GHz

8GB 内存

单个 320GB SATA 磁盘

操作系统:Ubuntu 8.10 32bit

数据库:PostgreSQL 8.4

雄猫 6.0.18

Java 1.6.0_14

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

4

1 回答 1

4

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

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