我知道我应该设置
mem=MEMORY_LIMIT
。但我不知道在运行时或启动时该去哪里,以便对操作系统控制的总物理内存设置限制。
我正在运行 I/O 基准测试,并且我想限制可用的总体物理内存量。
我找到了我正在寻找的答案。基本上,设置总可用物理内存的参数是“mem=MEMORY_LIMIT”。这是一个内核启动参数。您需要在内核启动参数中添加“mem=1G”以获得最大 1GB 可用物理内存。有关如何添加内核启动参数的更多信息,请参阅 https://wiki.ubuntu.com/Kernel/KernelBootParameters
在
lilo.conf
、grub.conf
、grub.cfg
或 menu.lst
(哪一个取决于您的特定发行版和引导加载程序;有关更多详细信息,请检查您的发行版文档)中编辑内核引导参数以包含参数 mem=512M
(或任何您想要模拟的大小)在指定内核参数的行上。
例如,在 Grub 中,应该有一行类似
kernel /boot/vmlinuz param1=val1 param2=val2
的内容。将 mem=512M
添加到该参数列表中。您可以通过复制这些整个定义、重命名它们并为每个定义配置不同的内存量来为启动菜单创建单独的条目,以便您可以使用不同的设置快速启动。
要添加到 Brian Campbell 的列表中,对于 BeagleBone / Black 设备上的 uBoot 引导加载程序,请在
/boot/uboot/uEnv.txt
mmcargs=setenv bootargs mem=512M
[使用 Debian 进行测试]
【重启】前后使用
> free
确认修改
我已按照 KZcoding 提到的本页中的说明进行操作(部分:永久添加内核启动参数)
我的 Linux 是(virtualbox 中的虚拟机):
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"
然后运行
sudo update-grub
并重新启动服务器。重启后:
yavuz@ubuntu:~$ free -m
total used free shared buff/cache available
Mem: 2000 298 1385 4 315 1651
Swap: 3767 0 3767
A1:是的,你必须重新启动。
A2:内核对于拼写错误相当不宽容。没有错误消息。这可能是你的问题吗?示例:“mem=512M”和“mem=2G”。不要忘记前面参数后面的空格,mem 是小写,K、M 或 G 是大写。