echo 4096 > /proc/sys/vm/nr_hugepages,无论输入多少,结果都是1664.则呢么才能修改
时间: 2023-08-22 10:06:46 浏览: 100
如果执行echo 4096 > /proc/sys/vm/nr_hugepages命令后,HugePages的数量没有发生变化,可能是由于以下原因之一:
1. 您的系统中没有足够的内存来分配4096个HugePages。在Linux系统中,HugePages是从系统的物理内存中分配的,因此如果系统的物理内存不足,就无法分配足够的HugePages。您可以通过执行以下命令来查看系统中可用的内存:
```
free -m
```
如果可用的内存不足,您可以尝试增加系统中的物理内存来增加可用的HugePages数量。
2. 您的系统中启用了Transparent Huge Pages(THP)功能。在启用THP功能的系统中,内核会自动重新分配HugePages,以便满足系统的内存需求。因此,即使您将nr_hugepages文件中的值设置为4096,系统中实际可用的HugePages数量可能会随着时间的推移而变化。您可以通过执行以下命令来查看THP的状态:
```
cat /sys/kernel/mm/transparent_hugepage/enabled
```
如果输出结果为[always] madvise never,则表示THP功能已启用。您可以尝试禁用THP功能,并重新运行echo 4096 > /proc/sys/vm/nr_hugepages命令来设置HugePages数量。禁用THP功能的方法可以参考以下文章:
https://www.kernel.org/doc/Documentation/vm/transhuge.txt
如果您仍然无法修改HugePages的数量,请尝试重启系统,并在启动时设置所需的HugePages数量。具体操作方法可以参考系统文档或咨询系统管理员。
阅读全文