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

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

4 GET,3 INSERT,20 UPDATE电话。

服务器规格:

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个并发事务。这个号码可以吗?在线是否有任何结果与我的相比?

有帮助吗?

解决方案

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

我们有一台类似的机器(除了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的一个实例,它可能会成为瓶颈。从不同网络运行多个从站以模拟实际生产负载。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top