![调查缓慢的Linux服务器](https://linux22.com/image/572004/%E8%B0%83%E6%9F%A5%E7%BC%93%E6%85%A2%E7%9A%84Linux%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我知道这是一个熟悉的老问题,但我有点困惑。
我有一个运行 Fedora 14 的 Rackspace 虚拟服务器。它是一台小型机器,功能不多(一个测试网站),只有 256MB 的 RAM 和 10GB 的磁盘。
在过去的几天里,它开始运行得非常慢。终端会话运行缓慢,程序运行时间很长,网站现在卡住了或无法运行。
我检查了我认为显而易见的事情 - top 没有显示任何重的 CPU 负载,有可用的内存并且我的 Nagios 监控也没有显示任何负载。
我用 Puppet 创建了这台机器,昨晚我又创建了一台运行良好的“相同”(我推测)机器。
我已经检查了 TCP 以查看是否存在可能成为瓶颈的进出,但也没有发现任何问题。
还有其他建议吗?我不明白为什么它会这么慢,但除了我的经历之外,我找不到这种缓慢的可测量证据。
答案1
要做的就是向 Rackspace 开具一张票据并让他们解决问题,毕竟这就是你付钱给他们的原因。
我认为这是一个磁盘 i/o 问题,要么是他们提供的低端 VPS 数量过多,要么是其他 VPS 用户占用了所有的磁盘 i/o。
但无论哪种情况,在 VPS 部署中,您通常必须让主机参与进来,因为作为 VPS 用户,您无法了解物理硬件上正在发生的事情。这又回到了向提供商开具票据的环节。
答案2
以下是一些一般性建议(无特定顺序):
- 得到在顶上安装在那里。它记录自启动以来的系统活动,有点像 sar,但提供了一个不错的界面来分析它。查找内存、CPU、磁盘和网络中的高使用率进程。
- 查找 CPU 上的高 %wa,这是 CPU 等待外部 I/O,通常是由于磁盘访问速度慢造成的,尤其是在 VPS 环境中。我在这里不敢肯定,因为这是很常见的问题原因。如果您看到高 %wa,那么您将无能为力,因为这通常是由于存储过度使用造成的。向 ISP 大喊大叫,直到他们修复它!
- 256M 内存并不多,特别是如果所讨论的网站是建立在框架(例如 Symfony、django 等)上并运行 Apache 之类的程序。如果配置不正确,这种组合可能会占用大量内存。查看您的系统是否正在使用任何交换,如果是,则您需要更多内存,或者您需要通过配置限制 Web 服务器的内存使用量。如果您正在运行 Apache,查看 prefork 设置下的选项。
不幸的是,这听起来确实像是主机硬件超负荷,而 CPU 等待时间就是证据。VPS 环境中的该数字可以概括为“客户虚拟机之外的任何问题”!
如果可能的话,请他们将您迁移到其他主机作为基准测试。