1

我在两台机器上安装了带有 Tomcat 系统的 Liferay 6:

Machine 1: Windows 2003 Server 2GB RAM, 2Gh CPU Mysql Ver 14.14 Distrib 5.1.49 Liferay 6.0.6 with Tomcat 6

Machine 2: Linux CentOS 5.5 4GB RAM, 2Gh CPU Mysql Ver 14.14 Distrib 5.5.10 Liferay 6.0.6 with Tomcat 6

两个 liferay 系统都具有相同的启动参数和 mysql 配置。liferay 系统包含一个自定义主题和一个 servlet 过滤器挂钩,用于检查每个 URL 访问。

我们编写了一个 Grinder 脚本来测试以50 concurrent users .

测试脚本执行以下操作:

  1. 打开主页
  2. 使用用户名/密码登录
  3. 输入安全密钥(自定义 portlet)
  4. 搬到私人社区
  5. 登出

在 Windows 系统上,响应时间符合预期(Grinder 中每次测试的平均时间接近 40 秒)。但是在 Linux 系统上,相同操作的响应时间太长(接近 4 分钟)。

我们尝试修改 mysql、tomcat、连接池和其他一些参数,但结果都是一样的。Liferay 也使用另一台机器的 mysql 进行了测试(机器 1 liferay -> 机器 2 mysql)

我们在测试环境和客户端的 Linux 机器上都面临同样的问题。

4

2 回答 2

1

This looks like a duplicate question. I suspect your issue is related to memory / jvm configuration and specifically garbage collection. High CPU utilization under small loads tend to point in that direction.

于 2011-09-01T00:32:59.697 回答
0

在您的 Grinder 脚本中,您是否将每个步骤设置为单独的事务?这将允许您查看每个步骤花费了多少时间。了解是否一切都变慢了,或者是否只是一种交易类型让您放慢了速度,这可能很有用。

此外,您在 Windows 上看不到的 Linux 机器上的 Tomcat 日志中是否有任何内容?意外的java堆栈跟踪等?

最后,每台机器上的数据库是否相同?他们有相同数量的数据吗?它们有相同的索引吗?

编辑:是一个事务占用了所有额外的时间,还是每个事务更慢?当你在你的linux机器上运行'top'时,是tomcat java进程正在吃掉你所有的CPU,还是其他一些进程?

于 2011-08-10T17:15:28.767 回答