我有一个 512MB Xen VPS 和 1024MB 交换空间。
当我通过 SSH 进入并输入“free -m”时,它显示我有大约 50MB 的可用内存。
我最近从 1024MB 计划降级了,因为我不需要内存。
从此以后,我的 VPS 似乎变得有点迟缓,尽管它并没有用完所有的内存。
它是否仍在访问 Swap 或类似的东西?“free -m”在 Swap 的“used”下显示 0。
答案1
在大多数情况下,Xen 客户机的内存管理与在裸机上运行没有什么不同。当各种工具(、等)告诉您使用交换时,您就是在使用交换free -m
。cat /proc/meminfo
就您而言,您的系统没有使用交换。
听起来你可能需要读一读Linux 吃掉了我的 RAM!复习一下 Linux 内核如何使用系统内存的基础知识。
您确实不希望系统上有未使用的内存 - 这是浪费金钱。内核将使用未分配的页面作为磁盘读取缓存,这极大地提高了系统的 IO 性能。
至于系统“缓慢”的感觉,这可能是由多种因素造成的,所有这些都需要您随着时间的推移收集数据(IOps、IO 延迟、IOwait、平均负载、CPU 负载等)。为了简化此过程,我强烈建议您安装一个监控包,例如穆宁。Munin 擅长这类事情,并且非常容易设置。
答案2
我认为你误解了内存统计信息。你的系统保留了 50MB 的空闲空间,因为它需求50MB 可用。需要可用内存来处理网络流量和磁盘中断等问题。对于更典型的情况,系统会将内存直接从一个用途移至另一个用途。保留比所需更多的可用内存是一种浪费,因为可用内存永远被浪费。
如果你因为有 50MB 左右的空闲内存而决定使用较少的内存,那么你的推理就是错误的。所有空闲内存都告诉你系统有多少内存需要保持空闲。在典型情况下,它与负载和系统内存需求完全无关。
现在您的内存变少了,但您仍然需要大约相同数量的可用内存。并且您的应用程序可能仍然需要大约相同数量的内存。因此,您移除的每 MB 内存都会减少一 MB 剩余的用作页面缓存的内存。这很可能是导致性能下降的原因。
答案3
这告诉了你什么top
?
来自我的一位主人。
Mem: 2074768k total, 2014116k used, 60652k free, 14276k buffers
Swap: 2097144k total, 104k used, 2097040k free, 1853092k cached
有几个不同的供应商提供 Xen,但是如果您无法让虚拟机管理程序准确告诉您客户机使用了多少内存,请尝试查看管理界面?