我的服务器似乎没有很好地缓存任何东西

我的服务器似乎没有很好地缓存任何东西

我有一个虚拟专用服务器来自 tocici (通过 BuildYourVPS)。它有 4 GB 的 RAM(其中 2 GB 是“突发”RAM)。

但是,该服务器存在一些严重的性能问题。首先,简单介绍一下该服务器运行的内容:

  • Debian 5
  • Apache(通常是最新的)
  • PHP 的 fcgi
  • mysqld
  • 它运行的一些其他琐碎的事情
    • memcached,但是......

该网络服务器主要为 MediaWiki 提供服务。在 MW 的配置中,缓存已完全关闭;启用 memcached 实际上是慢点不知何故,尽管 memcached 在启用时报告了不错的命中率(60%,然后随着时间的推移上升到 90%)。

似乎阻碍我服务器性能的最大障碍就是磁盘 I/O。它太糟糕了,甚至一个简单的操作也ls需要很长时间:

xkeeper@localhost:~/logs/wiki.rustedlogic.net$ time ls /root
... .资质 [...]
实际 0分0.766秒

xkeeper@localhost:~/logs/wiki.rustedlogic.net$ time ls /usr/
... bin 游戏包括 lib 本地 sbin 共享 src X11R6
真实 0分1.460秒
用户 0分0.000秒
系统 0分0.004秒

有时情况会变得非常糟糕,就像这样。情况已经恶化,但是……

xkeeper@localhost:~$ time ls /etc/log
ls:无法访问 /etc/log:没有此文件或目录

实际 0分3.887秒

有时,iowait 可能非常糟糕,甚至重启mysqld实际上会因为超时而失败。(/etc/init.d/mysqld restart但再次尝试通常会更快)。

我不知道下一步该怎么办。

下面是来自 Monit 的图表,显示了此时的 CPU 使用率(右侧的下降是我重新启动 Apache 和 MySQL 时出现的): 监控 CPU 使用率

服务器也没有完全被内存占用。尝试寻找增加缓存的方法(除了增加 MySQL 的关键缓存和其他方法外)大多徒劳无功;即使直接将 MySQL 中的缓存大小增加一倍,似乎也没有产生太大的影响。 monit RAM 图表输出

如果你认为这有帮助,你也可以查看带有滚动图表的完整统计页面

跑步iostat

平均 CPU:%用户%nice%系统%iowait%steal%idle
           0.00 0.00 0.00 99.18 0.00 0.82
          13.82 0.00 0.88 941878736.18 0.00 142.11
           0.69 0.00 0.69 6.21 0.00 92.41

答案1

由于您与许多其他人共享系统(听起来大型机时代正在回归 \o/ ),因此您在使 VPS 性能变得更好方面几乎没有选择。

我的建议是,获取一个专用的服务器,或者至少确保选择一个不会过度使用其服务器的 VPS 提供商。

相关内容