我知道我应该设置mem=MEMORY_LIMIT
. 但是我不知道去哪里,在运行时,或者在启动时,为了对操作系统控制的总物理内存设置一个限制。
我正在运行 I/O 基准测试,我想限制可用的整体物理内存量。
我知道我应该设置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
前后[reboot]确认修改
A1:是的,您必须重新启动。
A2:内核对于拼写错误是相当宽容的。没有错误消息。那会是你的问题吗?示例:“mem=512M”和“mem=2G”。不要忘记前一个参数后面的空格,mem是小写,K、M或G是大写。
I've followed the instructions in this page that KZcoding mentioned (part: Permanently Add a Kernel Boot Parameter)
My Linux is (vm in 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
Before setting:
yavuz@ubuntu:~$ free -m
total used free shared buff/cache available
Mem: 3630 305 3010 6 314 3264
Swap: 3767 0 3767
Just changed this line in /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=""
to
GRUB_CMDLINE_LINUX_DEFAULT="mem=2G"
then restart the server. After restart:
yavuz@ubuntu:~$ free -m
total used free shared buff/cache available
Mem: 2000 298 1385 4 315 1651
Swap: 3767 0 3767