lsmem命令列出可用内存的范围及其在线状态。列出的内存块对应于sysfs中的内存块表示方式。该命令还会显示内存块大小以及处于在线和离线状态的内存量。默认输出与 s390-tools 的原始实现兼容但强烈建议不要在脚本中使用默认输出。在需要稳定输出的环境中请始终使用--output选项配合列名列表来明确定义期望的列。当当前内存块在前一内存块的某个输出列上存在差异时lsmem命令总是会列出新的内存范围。此默认行为可以通过--split选项覆盖例如lsmem --splitZONES。可以使用特殊词 “none” 来忽略内存块之间的所有差异并创建尽可能大的连续范围。相反的含义是使用--all列出各个内存块。请注意如果拆分策略强制lsmem忽略某些属性的差异则某些输出列可能提供不准确的信息。例如如果将可移除和不可移除的内存块合并到一个范围那么整个范围在lsmem输出中都将被标记为不可移除。支持的列有RANGE,SIZE,STATE,REMOVABLE,BLOCK,NODE,ZONES,CONFIGURED,MEMMAP-ON-MEMORY。RANGE内存范围的起始和结束物理地址。SIZE内存范围的大小表示该范围内的内存总量。STATE内存范围的当前在线状态。常见状态包括online、offline或过渡状态。BLOCK特定内存块的编号。NODE内存块所属的 NUMA非统一内存访问节点。ZONES内存块所属的内存区域例如 DMA、Normal、Movable。CONFIGURED内存块的配置状态。有关配置或取消配置内存块的详细信息请参阅chmem。MEMMAP-ON-MEMORY配置时内存块的 “memmap-on-memory” 状态。此设置指示内存热插拔将其内部元数据struct pages 数组或 memmap存储在何处。如果MEMMAP-ON-MEMORY设置为 1则元数据直接从新添加的热插拔内存中分配即使在系统内存压力很高的情况下也能执行热添加操作。如果设置为 0则 memmap 元数据从现有的系统内存中分配。可能的BLOCK,CONFIGURED,STATE,MEMMAP-ON-MEMORY状态BLOCKSTATECONFIGUREDMEMMAP-ON-MEMORY描述0onlineyesyes/no内存已配置memmap-on-memory 设置为 (1 或 0)并且内存当前处于在线状态。1offlineyesyes/no内存已配置但内存当前处于离线状态。2offlinenoyes/no内存处于离线状态且已取消配置。并非所有列在所有系统上都受支持。如果指定了不受支持的列lsmem会打印该列但不提供任何数据。此外如果CONFIGURED或MEMMAP-ON-MEMORY等状态与系统架构无关lsmem可能会跳过这些列。使用--help选项查看列描述。memmap on memory参数的输出显示了与memory_hotplug相关的、全局启用的memmap-on-memory设置。通常该设置是通过内核命令行中的memory_hotplug.memmap_on_memory选项来指定的。选项-a, --all列出每个单独的内存块而不是合并具有相似属性的内存块。-b, --bytes以字节为单位打印大小而不是以人类可读的形式。默认情况下大小以 1024 字节的幂次为单位显示。这些单位的正式缩写KiB、MiB、GiB...进一步缩短为仅首字母K、M、G(早期是可以缩写现在不能缩写不符合规范与标准)...。-J, --json使用 JSON 输出格式。-n, --noheadings不打印标题行。-o, --output列表指定要打印的输出列。使用--help获取所有支持的列的列表。要扩展默认列列表请以列表的格式指定列表。例如lsmem -o NODE。--output-all输出所有可用的列。-P, --pairs以 key“value” 对的形式生成输出。所有潜在不安全的字符都会进行十六进制转义\xcode。-r, --raw以原始格式生成输出。所有潜在不安全的字符都会进行十六进制转义\xcode。-S, --split列表指定用于将内存块拆分为范围的列。支持的列有STATE,REMOVABLE,NODE,ZONES,CONFIGURED,MEMMAP-ON-MEMORY或none。其他列将被静默忽略。更多详细信息请参见上面的描述部分。-s, --sysroot目录收集 Linux 实例而非运行lsmem命令的实例的内存数据。指定的目录是要检查的 Linux 实例的系统根目录。--summary[when]此选项控制摘要行的输出。可选参数when可以是never、always或only。如果省略when参数则默认为 “only”。对于--raw、--pairs和--json输出摘要输出被抑制。-h, --help显示帮助文本并退出。-V, --version显示版本信息并退出。环境变量LSMEM_COLUMNS指定要打印的输出列的逗号分隔列表。--help中列出的所有列都可以使用。作者lsmem最初由 Gerald Schaefer 用 Perl 为 s390-tools 编写。用于 util-linux 的 C 版本由 Clemens von Mann、Heiko Carstens 和 Karel Zak 编写。
linux lsmem
lsmem命令列出可用内存的范围及其在线状态。列出的内存块对应于sysfs中的内存块表示方式。该命令还会显示内存块大小以及处于在线和离线状态的内存量。默认输出与 s390-tools 的原始实现兼容但强烈建议不要在脚本中使用默认输出。在需要稳定输出的环境中请始终使用--output选项配合列名列表来明确定义期望的列。当当前内存块在前一内存块的某个输出列上存在差异时lsmem命令总是会列出新的内存范围。此默认行为可以通过--split选项覆盖例如lsmem --splitZONES。可以使用特殊词 “none” 来忽略内存块之间的所有差异并创建尽可能大的连续范围。相反的含义是使用--all列出各个内存块。请注意如果拆分策略强制lsmem忽略某些属性的差异则某些输出列可能提供不准确的信息。例如如果将可移除和不可移除的内存块合并到一个范围那么整个范围在lsmem输出中都将被标记为不可移除。支持的列有RANGE,SIZE,STATE,REMOVABLE,BLOCK,NODE,ZONES,CONFIGURED,MEMMAP-ON-MEMORY。RANGE内存范围的起始和结束物理地址。SIZE内存范围的大小表示该范围内的内存总量。STATE内存范围的当前在线状态。常见状态包括online、offline或过渡状态。BLOCK特定内存块的编号。NODE内存块所属的 NUMA非统一内存访问节点。ZONES内存块所属的内存区域例如 DMA、Normal、Movable。CONFIGURED内存块的配置状态。有关配置或取消配置内存块的详细信息请参阅chmem。MEMMAP-ON-MEMORY配置时内存块的 “memmap-on-memory” 状态。此设置指示内存热插拔将其内部元数据struct pages 数组或 memmap存储在何处。如果MEMMAP-ON-MEMORY设置为 1则元数据直接从新添加的热插拔内存中分配即使在系统内存压力很高的情况下也能执行热添加操作。如果设置为 0则 memmap 元数据从现有的系统内存中分配。可能的BLOCK,CONFIGURED,STATE,MEMMAP-ON-MEMORY状态BLOCKSTATECONFIGUREDMEMMAP-ON-MEMORY描述0onlineyesyes/no内存已配置memmap-on-memory 设置为 (1 或 0)并且内存当前处于在线状态。1offlineyesyes/no内存已配置但内存当前处于离线状态。2offlinenoyes/no内存处于离线状态且已取消配置。并非所有列在所有系统上都受支持。如果指定了不受支持的列lsmem会打印该列但不提供任何数据。此外如果CONFIGURED或MEMMAP-ON-MEMORY等状态与系统架构无关lsmem可能会跳过这些列。使用--help选项查看列描述。memmap on memory参数的输出显示了与memory_hotplug相关的、全局启用的memmap-on-memory设置。通常该设置是通过内核命令行中的memory_hotplug.memmap_on_memory选项来指定的。选项-a, --all列出每个单独的内存块而不是合并具有相似属性的内存块。-b, --bytes以字节为单位打印大小而不是以人类可读的形式。默认情况下大小以 1024 字节的幂次为单位显示。这些单位的正式缩写KiB、MiB、GiB...进一步缩短为仅首字母K、M、G(早期是可以缩写现在不能缩写不符合规范与标准)...。-J, --json使用 JSON 输出格式。-n, --noheadings不打印标题行。-o, --output列表指定要打印的输出列。使用--help获取所有支持的列的列表。要扩展默认列列表请以列表的格式指定列表。例如lsmem -o NODE。--output-all输出所有可用的列。-P, --pairs以 key“value” 对的形式生成输出。所有潜在不安全的字符都会进行十六进制转义\xcode。-r, --raw以原始格式生成输出。所有潜在不安全的字符都会进行十六进制转义\xcode。-S, --split列表指定用于将内存块拆分为范围的列。支持的列有STATE,REMOVABLE,NODE,ZONES,CONFIGURED,MEMMAP-ON-MEMORY或none。其他列将被静默忽略。更多详细信息请参见上面的描述部分。-s, --sysroot目录收集 Linux 实例而非运行lsmem命令的实例的内存数据。指定的目录是要检查的 Linux 实例的系统根目录。--summary[when]此选项控制摘要行的输出。可选参数when可以是never、always或only。如果省略when参数则默认为 “only”。对于--raw、--pairs和--json输出摘要输出被抑制。-h, --help显示帮助文本并退出。-V, --version显示版本信息并退出。环境变量LSMEM_COLUMNS指定要打印的输出列的逗号分隔列表。--help中列出的所有列都可以使用。作者lsmem最初由 Gerald Schaefer 用 Perl 为 s390-tools 编写。用于 util-linux 的 C 版本由 Clemens von Mann、Heiko Carstens 和 Karel Zak 编写。