• CentOS下cpu分析 top


    CentOS下 cpu 分析-top

    时间:2017-03-20 12:09来源:linux.it.net.cn 作者:IT
     
    一. 前言
    我们都知道windows下对各个运行的任务,要通过任务管理器来管理和查看。
    那么在linux下呢?
    经常用到的系统性能分析命令:Top [显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等]
    它实时动态的进行查看系统中各个进程资源占用情况。
    该命令可以按 [ CPU使用/内存使用 ]对任务进行排序
     
    二. 详细参数
     
     
    特别的,top命令的前五行都是一个系统的基本信息情况,这里不做过多的解释,上边图中都有了。
    这里着重说一下第四行内存参数,free空闲内存总量。
    纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
     
    如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached
     
    对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
     
     
    下边,展开叙述对上边截图中大部分的一个进程分析,即【第七行1以下的东西】~
     
    PID — 进程id
    USER — 进程所有者
    PR — 进程优先级
    NI — nice值。负值表示高优先级,正值表示低优先级
    VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    SHR — 共享内存大小,单位kb
    S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU — 【上次更新到现在的CPU时间占用百分比】
    %MEM — 【进程使用的物理内存百分比】
    TIME+ — 进程使用的CPU时间总计,单位1/100秒
    COMMAND — 进程名称(命令名/命令行)
     
     
    常用操作:
    1.按 【 1 】 键,效果:展开每个cpu使用情况
    2.按 【 x 】 键,效果:cpu使用率排序
    3.按 【 shift + > 】 键,效果:mem使用排序
    4. top -n 2 : 设置更新次数为2次,2次后终止更新显示
    5. top -d 3 : 设置更新周期为3秒,由原来的1秒刷变3秒
    6. top -p pid: 显示指定进程的信息
    7. top -i: 忽略闲置和僵死进程
     
    三. 分析注意
     
    1.buffers(第四行)与cached(第五行)区别:
    buffers指的是块设备的读写缓冲区,cached指的是文件系统本身的页面缓存。
    他们都是Linux系统底层的机制,为了加速对磁盘的访问。
     
    2.Linux系统平均负载3个数字的含义(第一行)
    "Load Average",系统平均负载。
    先大致给一下这3个数字的含义:分别表示系统在过去1分钟、5分钟、15分钟内运行进程队列中的平均进程数量。
    运行队列嘛,没有等待IO,没有WAIT,没有KILL的进程通通都进这个队列。
     
    a).1,5,15分钟三个数组,参考哪个呢?
    后两个好点。
     
    b).那么怎么分析负载是否过高呢?
    个人认为哈,单核负载在0.7以下是安全的,超过0.7就需要进行优化了。
    公式: 负载值 / cpu核数 = 比较值
     
    c).怎样知道我的CPU是几核呢?
     
    1. grep 'model name' /proc/cpuinfo | wc -l  
    d).另外还有一个最直接的显示系统平均负载的命令
     
    1. cat /proc/loadavg      
    除了前3个数字表示平均进程数量外,后面的1个分数,分母表示系统进程总数,分子表示正在运行的进程数;最后一个数字表示最近运行的进程ID.
     
     
    3.交换区概念:
    当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
    详细见:vmstat:http://blog.csdn.net/ty_hf/article/details/63394960
  • 相关阅读:
    【BZOJ4367】[IOI2014]holiday假期 分治+主席树
    【BZOJ1264】[AHOI2006]基因匹配Match DP+树状数组
    【BZOJ4379】[POI2015]Modernizacja autostrady 树形DP
    【BZOJ4380】[POI2015]Myjnie 区间DP
    【BZOJ4382】[POI2015]Podział naszyjnika 堆+并查集+树状数组
    【BZOJ4384】[POI2015]Trzy wieże 树状数组
    【BZOJ4388】JOI2012 invitation 堆+线段树+并查集(模拟Prim)
    【BZOJ4550】小奇的博弈 博弈论
    Sqlserver列出所有数据库名,表名,字段名
    聚合与组合的区别?
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/12518976.html
Copyright © 2020-2023  润新知