Redmine (Bitnami Stack) 性能故障排除

arn*_*lja 9 networking performance ldap redmine

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

系统:

Bitnami Stack with Redmine 1.4.x 升级到 Bitnami Stack with Redmine 2.1.0 像这样:

  • mysqldump'd 旧数据库
  • 使用 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 请求时。很奇怪……但正如我上面提到的,我必须重新检查这个。这对我来说似乎不合逻辑。

小智 0

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

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

如果您重新启动为 redmine 实例提供服务的所有服务 - 是一开始运行得很快,一段时间后就变慢了,还是从一开始就很慢?

正如评论部分所述 - 磁盘 IO 也可能出现故障。当您在 redmine Web 界面上单击时,尝试跟踪 Web 服务器日志,以了解哪些内容花费了最多的时间来渲染。

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

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