主题评价:
  • 0 次(票) - 平均星级: 0
  • 1
  • 2
  • 3
  • 4
  • 5
如何判断 Xen VPS 是否超卖内存?
#1
OpenVZ VPS通常在内存、磁盘空间或带宽(或所有这些)方面都超卖。超卖内存和磁盘空间很容易。你只是vzctl create一个新的虚拟环境,不管是否有足够的内存或磁盘空间,小菜一碟。但是如果做得过火,肯定会激怒您的客户。
这也是反对 OpenVZ 的众多论据之一,尤其是与 Xen 相比时。“OpenVZ 获得了超卖的资源。Xen VPS 有专门的内存,等等等等。” 好吧。不完全正确。
2 周前,我从北卡罗来纳州阿什维尔的一家供应商那里得到了一个便宜的 VPS。可能应该在这里保持匿名的人Smile 这是一个运行 Ubuntu 10.04 和 64 位 Linux 2.6.32 内核的Xen VPS 。512MB 内存、25GB 磁盘空间和比我需要的更多带宽。价格也很不错。所以我登录并检查它有多少内存......
代码:
# free
             total       used       free     shared    buffers     cached
Mem:        543776     535360       8416          0      66516     130504
-/+ buffers/cache:     338340     205436
Swap:      1048568        136    1048432
我的 Xen VPS 上面有 330MB 内存。让我们看看正在运行哪些进程。
代码:
# ps aux
...

root       204  0.0  0.1  17028   780 ?        S    Oct27   0:00 upstart-udev-bridge --daemon
102        356  0.0  0.1  23548  1080 ?        Ss   Oct27   0:00 dbus-daemon --system --fork
root       431  0.0  0.1  21068   788 ?        Ss   Oct27   0:00 cron
root      3110  0.0  0.5 253832  2992 ?        Sl   Oct28   0:00 /usr/sbin/console-kit-daemon --no-daemon
root     11037  0.0  0.1  49256  1012 ?        Ss   Oct28   0:00 /usr/sbin/sshd
root     15427  0.0  0.1  12520   772 ?        S    Oct28   0:00 /usr/sbin/syslogd --no-forward
root     31231  0.0  0.0  16748   436 ?        S<s  Nov12   0:00 udevd --daemon
root      5716  0.0  0.6  79100  3772 ?        Ss   01:02   0:00 sshd: root@pts/0
root      5731  0.0  0.3  19400  2148 pts/0    Ss   01:02   0:00 -bash
root      5782  0.0  0.1   6072   724 ?        Ss   01:08   0:00 /sbin/getty -8 38400 hvc0
root      5783  0.0  0.2  15248  1172 pts/0    R+   01:08   0:00 ps --sort=start_time uax
VPS 上没有运行任何内存密集型的东西。SSH 服务器、syslogd、cron 等等。那么我的 330MB 已用内存消失在哪里了?
在进一步挖掘之前,这是事实。绝对可以在 Xen VPS 上超卖内存。多年来众所周知的东西,尽管 Xen 供应商不想谈论它。它使用一种称为 ballooning 的技术。
基本上,您的系统上安装了一个特殊的 Linux 内核驱动程序——“balloon driver”。当 dom0(Xen 服务器/管理程序)需要更多内存,并希望从客户 VPS (domU) 中申请一些内存时,它会要求客户 VPS 的气球驱动程序膨胀本身——通过向其 Linux 内核请求一些内存。内核内存分配将从该 VPS 的可用内存中请求,并且无法调出以进行交换。一旦气球驱动程序消耗了内存,它就会传递给 dom0/hypervisor 以在其他地方使用(例如,创建一个新的 VPS)。因此,您的 VPS 的“总内存”量将保持不变,但“已用内存”会大幅增加,因为内核内部的气球驱动程序现在已经使用了一大块,并且现在可能是其中的一部分另一个VPS。用户级守护程序“xenballoond”(实际上是一个 bash 脚本)也可用于允许动态气球,尽管我在我的 VPS 中没有看到它。
我想这可以解释为什么我使用了 330MB 的内存,而我只有很少的进程在运行。
我在 procfs 中发现这个文件很有趣:
代码:
# cat /proc/xen/balloon
Current allocation:   524288 kB
Requested target:     524288 kB
Minimum target:       173056 kB
Maximum target:       532480 kB
Low-mem balloon:        8192 kB
High-mem balloon:          0 kB
Driver pages:            224 kB
我似乎无法找到足够的文件来解释这些值的含义。看起来我的 VPS 已请求 512MB 内存(请求目标),并且当前已分配(当前分配)。但是同时它也有“最小目标”——为这个 VPS 保留的最小内存量,以防止它在气球请求过多时被 FUBAR——设置为 169MB。这是否意味着我的 VPS 真正保证了多少内存?
这当然是我不熟悉的东西,也许一些供应商可以启发我们。不过结论还是一样的。Xen 的超卖当然是可能的。
默认联系方式为telegram,需要微信号请留言。
回复


可能相关的主题..。
主题: 作者 回复数: 人气: 最近发表
  如何判断 OpenVZ VPS 是否超售 netflix 0 69 09-11-2023, 06:16 PM
最近发表: netflix

论坛跳转:


正在浏览该主题的用户: 1 个游客