【问题标题】:Setting limit to total physical memory available in Linux设置 Linux 中可用总物理内存的限制
【发布时间】:2012-11-09 03:48:09
【问题描述】:

我知道我应该设置mem=MEMORY_LIMIT。但我不知道在运行时或启动期间去哪里,以便对操作系统控制的总物理内存设置一个限制。

我正在运行 I/O 基准测试,我想限制可用的整体物理内存量。

【问题讨论】:

    标签: linux memory kernel memory-address


    【解决方案1】:

    我找到了我正在寻找的答案。基本上,设置总可用物理内存的参数是“mem=MEMORY_LIMIT”。这是一个内核引导参数。您需要在内核启动参数中添加“mem=1G”,以获得最大 1GB 的可用物理内存。有关如何添加内核启动参数的更多信息,请查看https://wiki.ubuntu.com/Kernel/KernelBootParameters

    【讨论】:

    • 该参数对于 x86 系统(32 位和 64 位)的含义略有不同:“mem=nn[KMG] […] [X86] 用作限制最大地址”(source) .由于保留的内存部分,它在 x86 上的值将高于可供操作系统使用的内存量。示例:必须使用 mem=6700M 从 6144 MiB (6 GiB) 物理可用内存中获取 5365。
    【解决方案2】:

    lilo.confgrub.confgrub.cfgmenu.lst 中编辑您的内核引导参数(取决于您的特定发行版和引导加载程序;查看发行版的文档以获取更多详细信息)以包含参数@987654325 @ (或您想要模拟的任何大小)在指定内核参数的行上。

    例如,在 Grub 中,应该有一行写着类似kernel /boot/vmlinuz param1=val1 param2=val2 的内容。将mem=512M 添加到该参数列表中。您可以通过复制这些完整的定义、重命名它们并为每个定义配置不同的内存量来为启动菜单创建单独的条目,这样您就可以使用不同的设置快速启动。

    【讨论】:

      【解决方案3】:

      要添加到 Brian Campbell 的列表,对于 BeagleBone / Black 设备上的 uBoot 引导加载程序,编辑 /boot/uboot/uEnv.txt 中的内核参数
      添加或修改行 mmcargs=setenv bootargs mem=512M [使用 Debian 测试]

      在[重启]前后使用> free确认修改

      【讨论】:

        【解决方案4】:

        A1:是的,您必须重新启动。

        A2:内核对于拼写错误是相当宽容的。没有错误消息。那会是你的问题吗?示例:“mem=512M”和“mem=2G”。不要忘记前面参数后面的空格,mem是小写,K、M或G是大写。

        【讨论】:

          【解决方案5】:

          我已按照 KZcoding 提到的this page 中的说明进行操作(部分:永久添加内核启动参数)

          我的 Linux 是(virtualbox 中的 vm):

          Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
          

          设置前:

          yavuz@ubuntu:~$ free -m
                    total        used        free      shared  buff/cache   available
          Mem:           3630         305        3010           6         314        3264
          Swap:          3767           0        3767
          

          刚刚在/etc/default/grub改了这一行

          GRUB_CMDLINE_LINUX_DEFAULT=""
          

          GRUB_CMDLINE_LINUX_DEFAULT="mem=2G"
          

          然后重新启动服务器。重启后:

          yavuz@ubuntu:~$ free -m
                        total        used        free      shared  buff/cache   available
          Mem:           2000         298        1385           4         315        1651
          Swap:          3767           0        3767
          

          【讨论】:

          • 我想我们需要重新启动才能看到可用内存的变化?
          • 在我的Ubuntu 16.04 上,即使重启后,可用内存也没有改变。
          • @Stephane 你在编辑/etc/default/grup 后运行sudo update-grub 了吗?
          • @Yang 我很久以前通过将记忆棒切换回原来的棒来解决我的问题。
          • 谢谢@Stephane,我已经编辑了答案并补充说我们必须重新启动服务器。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-10-16
          • 2010-10-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-15
          • 1970-01-01
          相关资源
          最近更新 更多