Redmine(Bitnami Stack)性能故障排除

Redmine(Bitnami Stack)性能故障排除

我有一个 Redmine 实例(Bitnami Stack),它异常缓慢。因为我只是想弄清楚这个问题的根源,所以我有一些理论想在这里讨论一下。所以,如果有人对此有任何想法,请随时提供帮助 :-)

系统:

带有 Redmine 1.4.x 的 Bitnami Stack 升级到带有 Redmine 2.1.0 的 Bitnami Stack,如下所示:

  • mysqldump 旧数据库
  • 使用 Redmine 2.1.0 安装了新的 Bitnami Stack
  • 通过重新创建所有表干净地导入转储
  • rake db:migrate 和所有这些

该堆栈在装有 OpenSUSE 12.1 的虚拟机上运行。资源不应该成为问题,因为始终有几 GB 的可用 RAM,并且 Redmine 请求的 CPU 峰值最多只达到 2 个 CPU 核心的 50%。此外,只有少数用户访问它。

可能非常重要的一点是:用户登录是通过 LDAP(ActiveDirectory)处理的。

问题:

对于每个请求,Redmine 的反应异常缓慢。有时需要 3 秒,有时甚至长达 10 秒才能提供页面。

我的想法:

  • 我不知道 Redmine 的 LDAP 设置中是否勾选了“即时创建用户”,我只能在今天晚些时候检查一下。但这里没有勾选会不会是个问题?登录时身份验证需要一点时间,这是正常的,而且是公认的。但当不即时创建用户时,它是否只保留会话,还是每次请求时都会重新进行身份验证,这可能是问题所在?
  • Redmine 2.x 是否比 1.4.x 慢很多,这很正常吗?
  • Bitnami 的 Apache2 + Passenger 配置有故障吗?
  • 由于 MySQL 对 CPU 的要求非常低,因此 MySQL 索引不会成为问题,不是吗?

还有一件事对我来说似乎很奇怪,但可能是错误的测量结果(明天看到机器时需要重新检查):

我尝试检查是否是网络问题(网络反应慢,可能是 DNS 或其他原因;服务器在本地网络中)。似乎本地主机(OpenSUSE VM 上的浏览​​器)上的请求很快,但网络上的请求却不快。通常,我会想到网络问题,但奇怪的是:当实际测量连接时间时,网络速度快得要命。Ping 很好,静态交付时间也很好。似乎只有 Redmine 端计算的页面由应用程序服务器缓慢发送,而 Apache 仍然很快 - 但仅当请求是远程 LAN 请求时。非常奇怪……但正如我上面提到的,我必须重新检查这一点。这对我来说似乎不合逻辑。

答案1

如果您认为 LDAP AD 登录有故障,请尝试重新检查 redmine 日志,看看是否存在与页面处理或用户登录相关的问题。

另外,请检查 apache 和 mySQL 日志 - 例如,Web 服务器可能正忙于其他事情,或者 ruby​​ 可能卡在渲染不受支持的插件上。MySQL 可能正在运行长时间运行的查询等等。

如果您重新启动所有为 redmine 实例提供服务的服务 - 它是否在开始时运行很快,过一会儿就变慢了,或者从一开始就很慢?

正如评论部分所述 - 磁盘 IO 也可能是问题所在。在 redmine 网页界面上单击时,尝试跟踪网页服务器日志,以了解哪些内容的渲染时间最长。

还尝试测试与 redmine 实例的网络连接(不仅使用 ping/ICMP),还可以尝试通过端口 80 或 443 加载一些静态内容(下载)或推送一些文件(上传)。

尝试测量数据包丢失、往返时间和抖动(有多少个数据包不按顺序到达)以了解网络是否有故障。

相关内容