18

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

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

4

5 回答 5

23

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

于 2012-11-20T23:43:47.760 回答
6

lilo.conf在、grub.confgrub.cfg或中编辑内核引导参数menu.lst(哪个取决于您的特定发行版和引导加载程序;查看发行版的文档以获取更多详细信息)以mem=512M在指定内核参数的行中包含参数(或您想要模拟的任何大小)。

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

于 2012-11-20T23:42:23.583 回答
3

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

使用> free前后[reboot]确认修改

于 2014-07-23T20:16:10.233 回答
0

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

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

于 2017-08-08T10:31:06.250 回答
0

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
于 2017-07-01T10:34:55.210 回答