长期支持版本

    社区创新版本

      管理内存

      基本概念

      内存是计算机的重要组成部件,用于暂时存放CPU中的运算数据,以及与硬件等外部存储器交换的数据。特别地,非统一内存访问架构(non-uniform memory access,简称NUMA)是一种为多处理器的电脑设计的内存架构,内存访问时间取决于内存相对于处理器的位置。在NUMA下,处理器访问本地内存的速度比非本地内存速度(内存位于另一个处理器,或者是处理器之间共享的内存)快。

      查看内存

      1. free:可用于显示系统内存状态

        例如:

        # 显示系统内存状态,以MB单位显示
        free -m
        

        回显信息如下:

        [root@openEuler ~]# free -m
                       total        used        free      shared  buff/cache   available
        Mem:            2633         436         324          23        2072        2196
        Swap:           4043           0        4043
        

        在命令的输出信息中,各字段所代表的含义如下:

        标识含义
        total总内存数。
        used已经使用的内存数。
        free空闲的内存数。
        shared多个进程共享的内存总数。
        buff/cache缓冲和缓存内存总数。
        available估计有多少内存可用于启动新应用程序,而不交换。
      2. vmstat:可以动态地监控系统内存,查看系统内存的使用情况。

        例如:

        # 监测系统内存,显示活跃和非活跃内存
        vmstat -a
        

        回显信息如下:

        [root@openEuler ~]# vmstat -a
        procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
        r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
        2  0    520 331980 1584728 470332    0    0     0     2   15   19  0  0 100  0  0
        

        在命令的输出信息中,与内存相关的memory字段所代表的含义如下:

        字段含义
        memory内存信息字段。-swpd:虚拟内存的使用情况,单位为 KB。-free:空闲的内存容量,单位为 KB。-inact:非活跃的内存容量,单位为 KB。-active:活跃的内存容量,单位为 KB。
      3. sar:可用于监控系统的内存使用情况

        例如:

        # 系统内存在采样时间内的使用情况,每2秒统计一次,统计 3 次
        sar -r 2 3
        

        回显信息如下:

        [root@openEuler ~]# sar -r 2 3
        
        04:02:09 PM kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kb
        dirty
        04:02:11 PM    332180   2249308    189420      7.02    142172   1764312    787948     11.52    470404   1584924
        36
        04:02:13 PM    332148   2249276    189452      7.03    142172   1764312    787948     11.52    470404   1584924
        36
        04:02:15 PM    332148   2249276    189452      7.03    142172   1764312    787948     11.52    470404   1584924
        36
        Average:       332159   2249287    189441      7.03    142172   1764312    787948     11.52    470404   1584924
        36
        

        在命令的输出信息中,各字段所代表的含义如下:

        字段含义
        kbmemfree内存的未使用空间。
        kbmemused内存的已使用空间。
        %memused已使用空间的百分比。
        kbbuffers缓冲区的数据存取量。
        kbcached系统全域的数据存取量。
      4. numactl:可用于查看NUMA节点配置和状态

        例如:

        # 查看当前的NUMA配置
        numactl -H
        

        回显信息如下:

        [root@openEuler ~]# numactl -H
        available: 1 nodes (0)
        node 0 cpus: 0 1 2 3
        node 0 size: 2633 MB
        node 0 free: 322 MB
        node distances:
        node   0
        0:  10
        

        服务器共划分为1个NUMA节点。每个节点包含4个CPU core,每个节点的内存大小约为6GB。 同时,该命令还给出了不同节点间的距离,距离越远,跨NUMA内存访问的延时越大。应用程序运行时应减少跨NUMA访问内存。

        numastat:可用于观察各个NUMA节点的状态

        # 观察NUMA节点的状态
        numastat
        
        [root@openEuler ~]# numastat
                                node0
        numa_hit                 5386186
        numa_miss                      0
        numa_foreign                   0
        interleave_hit             17483
        local_node               5386186
        other_node                     0
        

        numastat命令输出字段及其含义如下:

        标识含义
        numa_hit节点内CPU核访问本地内存的次数。
        numa_miss节点内核访问其他节点内存的次数。
        numa_foreign初始分配在本地,最后分配在其他节点的叶数量。每个numa_foreign对应numa_miss事件。
        interleave_hitinterleave策略页成功分配到这个节点。
        local_node该节点的进程成功在这个节点上分配内存访问的大小。
        other_node该节点的进程在其他节点上分配的内存访问大小。

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份