文件系统访问导致 Lenny vps 在负载最小的情况下偶尔变慢

文件系统访问导致 Lenny vps 在负载最小的情况下偶尔变慢

我有一个虚拟服务器,在 LAMP 环境中托管多个小型网站。系统最初是 Debian 4,后来升级到 Debian 5。它有 1GB 专用 RAM 和 1GB 共享 RAM 以及 20GB 存储空间。

最近,系统开始显示出一些令人担忧的趋势,即在将文件写入文件系统时随机变慢(/dev/vzfs)。当这些突然变慢的情况发生时,负载开始上升,但处理器主要处于空闲状态 - 甚至 IO 等待百分比也基本保持在零。以下是我最近遇到此问题的概述,当时我正在保存一个 1kB 的 Apache 配置文件,保存大约需要 20 秒:

top - 18:05:38 up 274 days, 11:50,  4 users,  load average: 0.71, 0.25, 0.08
Tasks:  54 total,   1 running,  53 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2097152k total,   471044k used,  1626108k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

我主要是一名程序员,没有太多的系统管理经验,所以我不知道应该从哪里开始。任何指点都非常感谢。

更新:标准系统日志不包含有关此案例的任何有用信息,因此我联系了服务提供商,询问主机系统是否超载。他们回复说系统负载正常,但我的容器似乎偶尔会超出其资源分配。以下是/proc/user_beancountersfailcnt > 0 的行:

       uid  resource                     held              maxheld              barrier                limit              failcnt
            shmpages                     9744                19470                19567                19567                    1
            tcpsndbuf                  306232              2453448              2449232              3598712             42347113
            tcprcvbuf                  299568              2459056              2449232              3598712                 1640
            othersockbuf               101640               843592               844366              1481926                  140
            numfile                      3100                 6000                 6000                 6000                   11

我超出的次数最多,而且tcpsndbuf幅度很大。不过,我猜这应该不会影响文件系统的性能。已经numfile超出了 11 次(这个数字是有史以来的总数还是自上次重启以来的?),听起来这可能是问题的原因。打开的文件中有一半似乎属于apache2,它的所有进程都打开了所有日志文件和 .so。也许切换到 Lighttpd 或 Nginx 会有帮助?下次系统变慢时,我会检查 beancounters,看看是否能提供任何线索。

答案1

您的 VPS 主机超载。您没有做太多事情,但主机上的其他人却在做,这导致所有人的速度变慢。欢迎来到有趣的 VPS 世界(更糟糕的是 Parallels VPS,通过无限增加客户来获利)。我建议找一家不错的 VPS 提供商,而不是最便宜的。

答案2

“vzfs” 在这里也可能是对使用 zfs 的“提示”,根据所使用的功能(例如压缩、重复数据删除等),zfs 的负载可能会非常大。您可以考虑盘点一下正在使用的内容以及它对您的特定用途的有效性。

例子:

如果启用了重复数据删除,但重复数据删除率相对较低,则可能值得考虑禁用它以恢复一些处理/性能空间。

相关内容