• Linux内存性能指标、CPU性能指标


    内存性能指标

    内存基础概念

    先执行一下 top 命令,看结果中关于内存的相关部分


    # top

    其中的 VIRTRESSWAP 都是什么呢?

    分别是下面的3个概念:

    物理内存 Resident - RES

    实际的内存空间 RAM

    交换区 Swapped - SWAP

    当物理内存不足时,操作系统会把内存中不常用的页换出到磁盘空间

    当被换出的页需要被访问时,再换入到物理内存

    所以交换区就是用来临时存放内存中不常用的内容的,感觉就想内存的一个小仓库

    虚拟内存 Virtual - VIRT


    虚拟内存 = 物理内存 + 交换区

    程序操作内存时,实际就是操作虚拟内存中的地址,操作系统再负责映射到物理地址,或者交换区

    快速了解内存状态


    # free



    主要指标

    total - 物理内存总大小

    used - 已经使用的物理内存大小

    free - 空闲的物理内存

    shared - 多个进程共享内存的大小

    buffers/cached - 做为缓存的内存大小

    swap - 交互空间的使用状态

    关于内存的几个常见问题:

    1、空闲空间少,是不是内存不够了?

    其实linux中空闲的物理空间经常是很少的,和linux使用内存的思路有关

    linux会尽量提高内存使用率,经常会把磁盘上的内容缓存到内存,用来加速

    linux认为内存闲着也是闲着,还不如拿来做缓存

    当内存不足时,linux就会释放缓存部分,让给真正需要的程序使用

    2、buffer 和 cache 是什么区别?

    buffer 缓存的是磁盘文件的元数据,例如文件属性、目录结构等等

    cache 缓存的是真正的文件内容

    3、如何判断内存真正不足?

    内存不足主要有2个明显的表现

    (1)持续的内存换入换出

    (2)较多的主缺页中断

    主缺页中断的概念:

    缺页中断包含主/次缺页中断

    次缺页中断,是在内存中可以找到目标页

    主缺页中断,是在内存中找不到,需要到磁盘中找

    所以较多的主缺页中断意味着较多的访问磁盘

    可以通过 sar 命令查看指标

    # sar -B 1 3



    pgpgin/pgpgout 就是内存的换入换出

    fault 次缺页中断

    majflt 主缺页中断

    vmstat 命令也可以查看一些内存信息

    # vmstat 1 5



    memory 部分是内存信息

    si/so 是交换区的换入换出

    补充技巧

    执行top命令后,通常不会显示SWAP列,需要自己指定显示

    在top的界面中点击‘f’,进入列编辑模式,按下字母‘p’, 会看到SWAP列被选中,然后按回车键返回top界面,SWAP列便显示出来了

    CPU 性能指标

    CPU性能指标可以从两方面来看:静态动态

    静态指标主要包括:

    CPU的型号、主频、核数、cache等

    动态指标主要包括:

    CPU的平均负载状况、CPU的使用率、最耗CPU的进程有哪些?

    查看静态信息:

    在服务器运行过程中,一般我们比较少关注CPU的静态信息,但我们刚开始拿到一台服务器时,就会很关心静态信息了

    好根据这些信息判断分配给这台服务器多大的压力等

    通过 /proc/cpuinfo 文件来查看



    查看动态信息:


    服务器变慢时,通常会先查看下CPU的负载是否过高,如果高了,再看下是哪些进程最耗费CPU,CPU使用率也是重要指标,让我们知道CPU消耗在哪些部分

    01、CPU负载状况

    通过负载信息能够直观的了解到CPU的压力状况,linux会给出最近1分钟、5分钟、15分钟的平均负载值

    可以通过 top 命令查看

    uptime 命令更加简洁直观

    查看到负载值后,怎么判断CPU的负载是否过高呢?

    有一个经验型的标准:

    CPU负载上限值 = CPU的核数 * 4

    例如是4核CPU,那么CPU的负载最好不要超过16,否则,CPU的压力就很大了

    好比一个超市,有4个收银台,如果有16个顾客在排队结账,每个窗口4个人,顾客可以接受,收银员也不会感觉压力很大

    02、耗费CPU的主要进程

    发现CPU负载过高后,我们肯定想知道是谁把CPU搞的这么忙


    通过 top 命令查看

    ps 命令根据CPU使用量对进程排序

    # ps -aux --sort -pcpu | less

    03、CPU使用率

    通过 top 命令查看

    还可以查看每个核的使用率状况,执行 top 后按数字1键,就可以列出每个cpu的使用率



    其中有几个主要信息项

    id - CPU的空闲度

    us - 用户进程对CPU的使用率

    sy - 系统进程对CPU的使用率
     
    wa - IO等待情况

    st - 如果系统中运行了虚拟机,此项显示虚机使用CPU的情况

  • 相关阅读:
    C++面试考点
    C++面试考点
    C++11 引用叠加规则和模板参数类型推导规则
    C++11 引用叠加规则和模板参数类型推导规则
    C++11 auto和decltype推导规则
    C++11 auto和decltype推导规则
    RVO和NRVO
    RVO和NRVO
    Strange Bank(找零问题)
    eli和字符串 (牛客假期训练)
  • 原文地址:https://www.cnblogs.com/HCT118/p/5625629.html
Copyright © 2020-2023  润新知