我管理着一个小型社交媒体网站,过去几天,该网站的服务器时不时出现延迟。网站在加载某个页面时会卡住,但过了一会儿,同一个页面就可以顺利加载。
检测服务器延迟的最佳方法是什么以及如何解决它?
我的盒子是..
通过 Ruby on Rails 在 MongrelDB 和 mySQL 上运行
所有动态图像和数据库均通过 S3 托管
High CPU Med (32 bit)
5 ECU, 1.7GB RAM
350GB Non-persistent storage
流量大约为每天 60 页面浏览量。
答案1
您正在监控服务器负载吗?
有一些 RoR 性能工具可以测量运行 RoR 脚本时服务器的性能,但我记不清它的名字了。不过,应该不难找到。我想到的那个是在 Ruby on Rails 播客上讨论的。
您正在检查日志中是否存在错误吗?
你说的是服务器延迟,但可能根本不是延迟。这很可能是服务器的性能问题。它是否因为错误而内存不足?进程在运行错误后被终止?
您能否监控服务器以查看在发生这些延迟时 top 所说的情况?
听起来就像是必须将某些东西传输或移动到工作内存中,然后将其缓存起来,这样当再次请求时,它就会快速运行,除非某些东西被代理或挂在某处。如果服务器本身没有出现任何问题,您需要诊断是您还是每个人都偶尔出现延迟。
市面上有用于测量性能的测试工具。也许您应该研究一下这些服务之一来测试您的服务器并分析 RoR/数据库代码。
您可能还想考虑安装某种服务器监控软件,例如 Nagios,以便在资源不足或需要检查警报条件时提醒您。