保存时间:2026/4/2 19:37:55
free命令显示内存总量正确仅说明系统识别了物理内存,但HugePages 是否启用需单独验证。以下是详细分析和操作指南:cat /proc/meminfo | grep -i huge
HugePages_Total:已分配的 HugePages 数量HugePages_Free:可用的 HugePages 数量AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Total为 0,说明未启用 HugePages。free命令无法直接反映 HugePages 状态。总HugePages数量 = 模型内存占用 / HugePage大小sudo sysctl -w vm.nr_hugepages=167500
cat /proc/meminfo | grep -i huge,检查HugePages_Total是否变为 167500。sudo nano /etc/sysctl.conf
vm.nr_hugepages = 167500
sudo sysctl -p
# 总HugePages占用 = 167500 × 2 MB = 335 GB
# 剩余内存需 >= 系统其他进程需求(建议预留至少200 GB)
--mlock参数强制使用 HugePages:./main -m model.gguf --mlock ...
free命令无法验证 HugePages 是否启用,需通过/proc/meminfo检查。sudo sysctl -w vm.nr_hugepages=XXX/etc/sysctl.conf并执行sudo sysctl -p--mlock参数。cat /proc/meminfo | grep -i huge命令,查看当前 Huge Pages 的相关信息,确认HugePages_Total等参数的值。echo命令设置/proc/sys/vm/nr_hugepages文件来指定要使用的 Huge Pages 数量,如sudo echo 100 > /proc/sys/vm/nr_hugepages,此例中设置了 100 个 2M 的 Huge Pages。不过,使用echo命令向/proc文件系统写入可能会遇到权限问题,也可使用sysctl命令替代,如sudo sysctl -w vm.nr_hugepages=100。/etc/sysctl.conf文件,命令为sudo nano /etc/sysctl.conf。/etc/sysctl.conf文件末尾添加vm.nr_hugepages = [数量],如vm.nr_hugepages = 100,根据实际需求修改数量。/etc/sysctl.conf文件后,执行sudo sysctl -p命令,让新的配置立即生效。cat /proc/meminfo | grep -i huge命令,检查HugePages_Total的值是否与设置相符,以确认 Huge Pages 是否配置成功。huge page size显示为 2048,单位是 KB,即 2M,通常不需要修改。如果你确实想修改,以下操作可能涉及到内核参数等底层设置,需要谨慎操作:cat /proc/meminfo | grep Hugepagesize命令,确认当前系统的 Huge Pages 大小。执行getconf PAGE_SIZE可以查看系统默认的页面大小。/boot/config-$(uname -r)文件中是否有相关配置选项,如CONFIG_HUGETLB_PAGE等。例如,如果想设置 1GB 的 Huge Pages,需要内核支持CONFIG_HUGETLB_PAGE_1GB等相关配置。sysctl命令临时修改,如要设置为 1GB(1073741824 字节)的 Huge Pages,命令为sudo sysctl -w vm.nr_hugepages=10(假设需要 10 个 1GB 的 Huge Pages),同时可能需要设置sudo sysctl -w vm.hugetlb_shm_group=your_group_id,将your_group_id替换为实际的组 ID,用于指定共享内存的访问权限。/etc/sysctl.conf文件,添加或修改vm.nr_hugepages=10和vm.hugetlb_shm_group=your_group_id,保存后执行sudo sysctl -p使配置生效。