AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 555343
Accepted
batfastad
batfastad
Asked: 2013-11-16 14:18:40 +0800 CST2013-11-16 14:18:40 +0800 CST 2013-11-16 14:18:40 +0800 CST

CentOS下的KVM,swap耗尽,物理内存可用

  • 772

我已经有一个测试 CentOS KVM 主机运行了大约一周,现在有 3 个 CentOS 来宾。有 12GB 物理 RAM,其中大约 7.5GB 实际分配给虚拟机。这些虚拟机甚至还没有被使用,因为服务器仍处于测试阶段,但我注意到在过去 24-48 小时内交换使用率一直在攀升。现在看起来已经筋疲力尽了。

这是输出free

# free -m
             total       used       free     shared    buffers     cached
Mem:         11905      11749        155          0         81       4632
-/+ buffers/cache:       7035       4869
Swap:         2047       2047          0

因此,您可以看到物理内存已全部使用,但它被用作缓存内存,我认为这通常很好,因为如果应用程序需要它,它将被释放。

我运行了在这个答案中找到的 shell 脚本,它列出了 3 个qemu-kvm进程。

为我配置了服务器,只为交换分配了 2GB 的逻辑卷,通常我喜欢匹配高达 8GB 的​​物理内存。
是否值得扩展交换逻辑卷或添加单独的交换卷?

这在 KVM 中很常见吗?这不是我在其他 KVM 主机上看到的东西,所以我需要调整一个特定的设置吗?

还有其他意见/建议吗?

centos
  • 2 2 个回答
  • 7457 Views

2 个回答

  • Voted
  1. Best Answer
    Mark Wagner
    2013-11-16T16:05:13+08:002013-11-16T16:05:13+08:00

    这个是正常的。空闲虚拟机使用的页面将被交换,内存将用于缓存。您可以将swappiness设置为零,这可能会以性能为代价(较小的缓存)阻止像这样使用交换。

    这是 Red Hat 的建议(有许多 YMMV):

    交换空间计算如下:

    计算所有来宾总和所需的内存量 - 在此示例中:(50 个来宾 * 每个来宾 1GB 内存)= 50GB

    将客户内存量添加到主机操作系统和主机最小交换空间所需的量 - 在此示例中:50GB 客户内存 + 4GB 主机操作系统 + 4GB 最小交换 = 58GB

    从系统上的物理 RAM 量中减去这个量 - 在这个例子中 58GB - 32GB = 26GB

    答案是需要分配的交换空间量。在这个例子中 26GB

    此示例未考虑内核同页合并 (KSM),这将减少使用的内存量。

    这里 RH 说 4G 交换主机,但这里他们建议 12G * 0.5 = 6G 交换给你。

    如果您是 KVM 新手,我建议您阅读 IBM 的KVM 最佳实践文档。

    • 2
  2. MaKR
    2013-11-16T14:42:20+08:002013-11-16T14:42:20+08:00

    根据我的经验,不,不值得分配额外的交换。您将使用交换 (HDD) 作为 RAM,并将 RAM 作为缓存(HDD 的快捷方式)....听起来大多适得其反。通常在具有 8GB RAM 的系统上,我将分配 1-2GB 交换空间,通常是 raid 分区方案的其余部分。例子:

    3x64GB SSD(操作系统/软件 Raid0) 2x1TB SATA(数据 Raid1)

    我将在 /boot 上将我的第一个 SSD 设置为 1GB,在将其余驱动器进行相同分区后浪费了 2x1GB。听起来像是 Raid0 上的交换,而且通常无论如何都无法访问它。

    至于 KVM,我会查看错误报告以及对各个客户机进行故障排除。两者都可能存在内存泄漏吗?

    • 0

相关问题

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 使用 crontab 和 /etc/cron.hourly,daily,weekly 的区别

  • 持续监控许多服务器运行状况的简单方法?

  • Hudson 无法在 tomcat5 中启动

  • CentOS 的依赖挑战

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve