8249

41 分钟

#Bash 的 chmem 命令

chmem [OPTION]... [SIZE|RANGE]

功能

配置内存的状态。

类型

可执行文件(/usr/sbin/chmem),属于 util-linux

参数

  • OPTIONS 选项:
    • -b, --blocks - 启用或禁用 BLOCK
    • -d, --disable - 禁用内存
    • -e, --enable - 启用内存
    • -z, --zone ZONE - 启动或禁用 ZONE
      • DMA - 直接内存访问(Direct Memory Access)
      • DMA32 - 32 位 DMA
      • Normal - 常规内存
      • Highmem - 没有在内核页表中永久映射的物理内存部分
      • Movable - 可移动页
      • Device - 位于持久性内存(PMEM)和图形处理单元(GPU) 等设备上的内存
    • -v, --verbose - 打印详细信息
    • -h, --help - 显示帮助
    • -V, --version - 显示版本

#示例

配置指定大小的内存

$ lsmem                             # 查看哪些内存在线
RANGE                                  SIZE  STATE REMOVABLE  BLOCK
0x0000000000000000-0x000000005fffffff  1.5G online       yes   0-11
0x0000000100000000-0x000000041fffffff 12.5G online       yes 32-131

Memory block size:       128M
Total online memory:      14G
Total offline memory:      0B
$ sudo chmem --disable 128M         # 禁用 128M 内存
$ lsmem
RANGE                                  SIZE   STATE REMOVABLE   BLOCK
0x0000000000000000-0x000000005fffffff  1.5G  online       yes    0-11
0x0000000100000000-0x000000040fffffff   12G  online       yes  32-129
0x0000000410000000-0x0000000417ffffff  128M  offline              130

Memory block size:       128M
Total online memory:    13.9G
Total offline memory:    128M
$ sudo chmem --enable 128M          # 启用 128M 内存

配置指定的内存块

$ sudo chmem --disable -b 128       # 禁用 #128 内存块
$ lsmem
RANGE                                  SIZE   STATE REMOVABLE   BLOCK
0x0000000000000000-0x000000005fffffff  1.5G  online       yes    0-11
0x0000000100000000-0x00000003ffffffff   12G  online       yes  32-127
0x0000000400000000-0x0000000407ffffff  128M offline               128
0x0000000408000000-0x000000041fffffff  384M  online       yes 129-131

Memory block size:       128M
Total online memory:    13.9G
Total offline memory:    128M
$ sudo chmem --enable -b 128       # 启用 #128 内存块

配置指定范围的内存

$ sudo chmem --disable 0x0000000410000000-0x0000000417ffffff    # 禁用此范围的内存
$ lsmem
RANGE                                  SIZE   STATE REMOVABLE   BLOCK
0x0000000000000000-0x000000005fffffff  1.5G  online       yes    0-11
0x0000000100000000-0x000000040fffffff   12G  online       yes  32-129
0x0000000410000000-0x0000000417ffffff  128M  offline              130

Memory block size:       128M
Total online memory:    13.9G
Total offline memory:    128M
$ sudo chmem --enable 0x0000000410000000-0x0000000417ffffff     # 启用此范围的内存

配置指定 ZONE 上的内存

$ sudo chmem --disable 128M -z DMA  # 禁用 DMA 上的 128M 内存
$ lsmem
RANGE                                  SIZE   STATE REMOVABLE  BLOCK
0x0000000000000000-0x0000000047ffffff  1.1G  online       yes    0-8
0x0000000048000000-0x000000004fffffff  128M offline                9
0x0000000050000000-0x000000005fffffff  256M  online       yes  10-11
0x0000000100000000-0x000000041fffffff 12.5G  online       yes 32-131

Memory block size:       128M
Total online memory:    13.9G
Total offline memory:    128M
$ sudo chmem --enable 128M -z DMA   # 启用 DMA 上的 128M 内存

#推荐阅读

#手册

更新: 2026/3/13

作者: PlanC

创建: 2026/3/13