The*_*aul 12 memory-usage rhel8
我们需要在具有 32Gb RAM 的服务器上运行一些测试。
我们可以访问的所有服务器都有 64GB,我们无法对其进行物理更改。
是否有某种方法告诉 RHEL 仅使用固定数量的 RAM,小于安装的 RAM?
vid*_*rlo 29
mem=nn[KMG]
[KNL,BOOT] 强制使用特定数量的内存当内核无法看到整个系统内存或进行测试时要使用的内存量。[X86] 作为限制最大地址。与 memmap= 一起使用以避免物理地址空间冲突。如果没有 memmap= PCI 设备可以放置在属于未使用的 RAM 的地址处。
小智 5
是的,您可以在物理 RAM 多于您需要的服务器上分配固定数量的 RAM 用于测试目的。为此,您可以使用 Red Hat Enterprise Linux (RHEL) 中的控制组 (cgroup) 来限制特定进程或进程组可以使用的内存量。
以下是有关如何限制特定进程或进程组的 RAM 使用量的分步指南:
安装并启用cgroup-tools
:
如果您还没有安装该软件包,您可能需要安装该cgroup-tools
软件包:
sudo yum install libcgroup-tools
Run Code Online (Sandbox Code Playgroud)
创建内存Cgroup:
为您的测试进程创建一个新的 cgroup:
sudo cgcreate -g memory:/mytestgroup
Run Code Online (Sandbox Code Playgroud)
替换/mytestgroup
为所需的 cgroup 名称。
限制内存使用:
设置 cgroup 的内存限制。例如,将 RAM 限制为 16GB:
sudo cgset -r memory.limit_in_bytes=16G mytestgroup
Run Code Online (Sandbox Code Playgroud)
调整您想要为测试分配的 RAM 量的限制。
将您的进程移至 Cgroup:
您需要将要限制的进程移至 cgroup。您可以通过指定进程的 cgroup 或使用cgexec
命令来完成此操作。例如,要在 cgroup 中运行命令mytestgroup
:
sudo cgexec -g memory:mytestgroup your_test_command
Run Code Online (Sandbox Code Playgroud)
替换your_test_command
为您想要作为测试一部分运行的实际命令。
监控内存使用情况:
您可以使用以下命令监控 cgroup 及其进程的内存使用情况cgget
:
sudo cgget -g memory:mytestgroup
Run Code Online (Sandbox Code Playgroud)
这将显示有关内存使用情况的信息,包括内存限制和当前使用情况。
清理:
测试完成后,您可以删除 cgroup:
sudo cgdelete memory:mytestgroup
Run Code Online (Sandbox Code Playgroud)
这将删除 cgroup 并释放内存限制。
通过执行这些步骤,您可以有效地限制特定进程或进程组在物理 RAM 多于测试目的所需的服务器上可以使用的 RAM 量。这使您可以隔离和控制分配给测试进程的资源,而无需物理更改服务器的硬件配置。
归档时间: |
|
查看次数: |
2157 次 |
最近记录: |