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

CentOS下cpu分析 top的更多相关文章

  1. 多线程环境下 cpu % 分析

    1. top -H(查看阻塞进程,线程) 2. jstack  pid(查看堆栈信息) 另附 利用 Java dump 进行 JVM 故障诊断 http://www.blogjava.net/yuwe ...

  2. centos下性能分析工具perf的安装和简单使用

    1.安装: cat /etc/redhat-releaseCentOS release 6.6 (Final) sudo yum install perf 2.

  3. Linux Centos下查看cpu、磁盘、内存使用情况,关闭MySQL日志

    Linux Centos下查看cpu.磁盘.内存使用情况,关闭MySQL日志 lsblk 查看分区和磁盘df -h 查看空间使用情况fdisk -l 分区工具查看分区信息cfdisk /dev/sda ...

  4. Linux下high CPU分析心得【非原创】

    非原创,搬运至此以作笔记, 原地址:http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html 1.用top命令查看哪个进程占用CPU高ga ...

  5. CentOS下使用Iptraf进行网络流量的分析笔记

    CentOS下使用Iptraf进行网络流量的分析笔记 一.概述 Iptraf是一款linux环境下,监控网络流量的一款绝佳的免费小软件. 本博客其他随笔参考: Centos安装流量监控工具iftop笔 ...

  6. centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息

    centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息 rose_willow rose_willow 发布于 2016/06/16 11:32 字数 902 阅读 405 收藏 0 点赞 0 ...

  7. [转]CentOS下性能监测工具 dstat

    原文链接:http://www.bkjia.com/Linuxjc/935113.html 参考链接:https://linux.cn/article-3215-1.html,http://lhfli ...

  8. Linux下性能分析工具汇总

    来自:http://os.51cto.com/art/201104/253114.htm 本文讲述的是:CPU性能分析工具.Memory性能分析工具.I/O性能分析工具.Network性能分析工具. ...

  9. Centos下Redis集群的搭建实现读写分离

    Centos下Redis一主多从架构搭建 搭建目标:因为自己笔记本电脑配置较低的原因,模拟两台机器之间搭建一主一从的架构,主节点Redis主要用来写数据,数据写入到主节点的Redis,然后从节点就可以 ...

随机推荐

  1. java面试-阻塞队列

    一.阻塞队列 当阻塞队列是空,从队列中获取元素的操作会被阻塞 当阻塞队列是满,往队列中添加元素的操作会被阻塞 二.为什么用,有什么好处? 我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为 ...

  2. 【3.0 递归 Recursion 02】

    [递归:阶乘] 1.寻找基本情况 对于阶乘而言,最基本的情况就是0!和1!,二者的结果都是1 我们不妨现在方法中写下这个情况,帮助我们跳出递归 if(i<=1){ return 1 ; } 接下 ...

  3. Unity2D项目-平台、解谜、战斗! 1.2战斗组件Defence、Attack

    各位看官老爷们,这里是RuaiRuai工作室,一个做单机游戏的兴趣作坊. 接上文,我们定义了两个分别具有"攻击"和"被攻击"语义的组件CanFight和CanB ...

  4. Java(114-132)【Scanner类、Random类、ArrayList类】

    1.API概述和使用步骤 应用程序编程接口.Java的API是一本程序员的字典,学会查询 2.Scanner 概述及其API文档 键盘输入 类都是大写的Scanner,关键字是小写的public 3. ...

  5. Day08_40_集合_List

    List集合 List接口是继承Collection接口,所以Collection集合中有的方法,List集合也会继承过来,可以直接使用. All Superinterfaces: Collectio ...

  6. xss-labs全关教程

    0x01 Level 1 查看源码,可以看到接收了name参数,并直接嵌入到HTML页面中了 没有任何过滤,而且直接会当作代码执行. 0x02 Level 2 先传入<script>ale ...

  7. .NET6 平台系列3 .NET CLR 详解

    系列目录     [已更新最新开发文章,点击查看详细] CLR 简介 运行时(Runtime Environment,简称Runtime ),是指那些支持在特定的平台上,用于运行特定编程语言编写的软件 ...

  8. 1. Robot Framework入门

    RF定义: 通用型的 自动测试框架, 绝大部分的软件的的自动化系统都可以采用它. 特点: 测试数据文件(Test Data)对应一个个的测试用例.测试数据文件里面使用的功能小模块叫关键字,由测试库(T ...

  9. PHP生成随机数的几种方法

    第一种方法用mt_rand() function GetRandStr($length){ $str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV ...

  10. dedecms发布文章排序按发布时间,不是更新时间

    织梦DEDECMS5.7这个版本存在一个问题,修改文章的同时也修改了文章的发布时间,这种情况下,如果我们调用最新文章时使用按"发布日期排序",就会打乱原来我们网站上的文章的顺序. ...