![ruby on rails 服务器间歇性缓慢](https://linux22.com/image/519660/ruby%20on%20rails%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%97%B4%E6%AD%87%E6%80%A7%E7%BC%93%E6%85%A2.png)
我的 rails 安装进展顺利。昨晚我们必须执行热补丁,这实际上是一些异常代码的标准部署。Capistrano 完成操作后,我们的一位管理员发现有两个长期运行的乘客进程。虽然我们在过去两周内部署了版本,但似乎这些进程一直在这里并且一直处于活动状态。当然,它们可能是僵尸或任何其他工件,目前我们不知道它们处于什么状态。
这让我想到一个问题:Rails 应用程序和操作系统/硬件之间有如此多的移动部件,以至于成为 SME 可能不再可能。那么,系统管理员如何才能确定地执行根本原因分析?
并且:我什么时候才开始重启服务器?
答案1
您的开发人员是否使用某种性能监控工具,例如 NewRelic RPM 或 Scout?或者他们可能正在使用性能监控插件之一。所有这些工具都允许您近乎实时地分析生产应用程序,并查看代码的哪些部分执行时间最长,以便您可以找到问题并修复它。
如果开发人员不使用监控工具,你应该挖掘日志,它们包含一些有用的信息,包括每个请求的执行时间。
此外,将生产代码回滚到以前的版本以查看性能下降是否由最近的更新引起也是明智之举。如果是这样,则逐个更新生产文件并在每次更新后测试性能以找出问题。