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

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

4个GET,3个INSERT,20个UPDATE调用。

服务器规格:

4核Intel Xeon X5365 3GHz

8GB RAM

单个320GB SATA磁盘

操作系统:Ubuntu 8.10 32bit

DB:PostgreSQL 8.4

Tomcat 6.0.18

Java 1.6.0_14

结果表明,服务器将处理大约130个并发事务。这个号码可以吗?在线有什么结果可以和我的比较吗?

最佳答案

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

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

一些调优技巧


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

09-12 04:13
查看更多