系统监视和进程控制工具——top(任务管理器)

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

各行数据大致解释如下:

12:38:33

up 50days

1 user

load average: 0.06, 0.60, 0.48

当前时间

系统运行时间,格式为时:分

当前登录用户数

系统负载。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。

Tasks: 29 total

1 running

28 sleeping

0 stopped

0 zombie

Cpu(s): 0.3% us

1.0% sy

0.0% ni

98.7% id

0.0% wa

0.0% hi

0.0% si

进程总数

正在运行的进程数

睡眠的进程数

停止的进程数

僵尸进程数(主进程已经结束,可能子进程没有结束,而且占用资源。表现为进程结束,但是资源没有释放(内存))

用户空间占用CPU百分比

内核空间占用CPU百分比

用户进程空间内改变过优先级的进程占用CPU百分比

空闲CPU百分比

等待输入输出的CPU时间百分比

硬件中断占用CPU时间的百分比

软件中断占用CPU时间的百分比

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
进程名称(命令名/命令行)

另:

CPU利用率

CPU计算的时间占比(运行态时间占比)

CPU平均负载

单位时间任务量与可执行任务量的占比(运行态+就绪态总数)

CPU状态

运行态(计算处理)就绪态(内存等待)阻塞态(I/O读取硬盘)

显示内存的使用状态——free命令

选项

-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-o:不显示缓冲区调节列;
-s<间隔秒数>:持续观察内存使用状况;
-t:显示内存总和列;
-V:显示版本信息。
-w:命令行选项得到buffcache各自使用的数量

1                    2                 3                  4         5          6

1              total              used             free          shared    buffers     cached

2 Mem:      24677460     23276064     1401396          0     870540   12084008

3 -/+ buffers/cache:       10321516     14355944

4 Swap:     25151484      224188         24927296

buffer和cache的解释:

 

A buffer is something that has yet to be "written" to disk. 

从内存写入硬盘的缓存

A cache is something that has been "read" from the disk and stored for later use.

从硬盘读入内存的缓存

l  used内存,是分配出去的内存,在buffer/catch中,包括用了的和没用的(用了的是b/c used,没用的是第一行的b/c的总和。

l  第二行b/c 的free是可以被分配的,是men的剩余和第一行b/c剩余的总和。

l  第二行b/c 的总量和men的total一样,第一行men的used与free的总和和total一样。

l  b/c的used是内存真正的使用的量,其余的可能只是占用。

l  catch中使用(used)的一部分还可以释放。

以上命令可以释放catch

Centos7 下free的显示如下,基本与上一个一样,但是增加了一个available。

新版available,是真实空闲的内存(b/c行free)和可以被释放的cache的内存的总和,是真正新启动一个程序能够提供的内存。

total              used        free      shared  buff/cache   available

Mem:           1504        1491          13           0         855            869

Swap:          2047           6            2041

系统中进程的监控——ps

进程:进程是程序的一次动态执行。

守护进程:守护进程是在后台运行并提供系统服务的一些进程。

父进程、子进程:当一个进程创建另一个进程时,第1个进程被称为新进程的父进程,而新进程被称为子进程。
ps命令(用来显示当前进程的状态。)

用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

格式:ps [选项]  (选项过多,可查看http://man.linuxde.net/ps)

a:显示现行终端机下的所有程序,包括其他用户的程序。
u:以用户为主的格式来显示程序状况。
x:显示所有程序,不以终端机来区分。
-e:显示所有程序。
-l或l:采用详细的格式来显示程序状况。
-f:显示UID,PPIP,C与STIME栏位。

ps –aux 显示所有的与用户相关的完整信息

ps aux | grep 'top' 从进程中过滤出‘top’进程

ps -elf | head -3  显示前三行进程的父进程id(PPID是父进程id)


pstree命令

以树状图的方式展现进程之间的派生关系,显示效果比较直观。(centos7默认没有pstree,需要yum -y install psmisc)

选项

-a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;

-c:不使用精简标示法;

-G:使用VT100终端机的列绘图字符;

-h:列出树状图时,特别标明现在执行的程序;

-H<程序识别码>:此参数的效果和指定"-h"参数类似,但特别标明指定的程序;

-l:采用长列格式显示树状图;

-n:用程序识别码排序。预设是以程序名称来排序;

-p:显示程序识别码;

-u:显示用户名称;

-U:使用UTF-8列绘图字符;

-V:显示版本信息。

用法举例:列出PID为4729的进程的进程状态树的命令:pstree 4729

kill命令

用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。

例如:终止PID为3852的进程的命令:kill 3852

应用kill -9命令杀死进程:例如:杀死PID为3906的进程的命令:kill -9 3906

pgrep命令

通过名称或其他属性查找进程,以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。

例如:查找名为firefox的进程的命令为:pgrep firefox

pkill命令

通过名称或其他属性发信号给进程。

例如:杀死名为firefox的进程的命令为:pkill firefox

Linux基础——系统监控的更多相关文章

  1. Linux 服务器系统监控脚本 Shell【转】

    转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...

  2. Linux基础系统权限

    Linux基础系统权限 文件权限 Linux中,每个文件拥有三种权限 权限 对文件的影响 对目录的影响 r(读取) 可读取文件 可列出目录内容 w(写入) 可修改文件内容 可在目录中创建删除文件 x( ...

  3. Day 7 Linux之系统监控、硬盘分区等

    Linux之系统监控.硬盘分区等 系统监控 系统监视和进程控制工具—top和free 1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况, ...

  4. shell实战之Linux主机系统监控

    1.系统监控概述 采集的监控信息主要有内存占用率,CPU占用率,当前在线用户,磁盘挂载及磁盘空间使用率,平均每秒写入流量,平均每秒流出流量.磁盘IO:平均每秒从磁盘读入内存的速率,平均每秒从内存写入磁 ...

  5. linux常用系统监控命令

    原文:http://blog.sina.com.cn/s/blog_68f1c17001016uvy.html Linux提供了很多用于监控系统的工具,使用这些工具可以找到导致系统性能降低的瓶颈.系统 ...

  6. Linux基础: 系统加载过程和运行级别含义

    BIOS 有固化代码指向mbr,mbr指向grub(/boot/grub/下有很多引导配置信息),grub里可以配置多种linux内核vmlinux文件. 启动内核以后就开始加载各种驱动模块并进行系统 ...

  7. Shell 脚本实现 Linux 系统监控

    一.实验介绍 1.1 实验内容 本课程实现 shell 脚本监控系统的各项参数,并可以将脚本加入系统环境中,可以直接在终端里执行.还添加了几个参数,一个脚本可以执行不同的操作. 1.2 知识点 本实验 ...

  8. linux基础-第十一单元 系统监控

    第十一单元 系统监控 系统监视和进程控制工具-top和free top命令的功能 TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序 ...

  9. SLAM+语音机器人DIY系列:(一)Linux基础——2.安装Linux发行版ubuntu系统

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

随机推荐

  1. volatile关键字是什么意思

    我写了一段简单的对比代码并分别用vs2017以release方式编译然后用IDA观察汇编代码,如下图所示: 代码1 int a=5; printf("%d",a) 代码2 vola ...

  2. 微信小程序5 - 数据驱动界面

    微信小程序不可以使用js直接控制界面元素.而是通过改变 this.data中的属性,同步到界面 这个问题可以克服,带来的就是和H5不一样的编码方式.JS中更多的是改变数据的逻辑,而不是获取某个View ...

  3. mysql—触发器trigger

    触发器(trigger):一种特殊的事物, 监视某种事物操作(insert/update/delete), 并触发相关操作(insert/update/delete). 触发器(trigger)创建4 ...

  4. vs 常用工具

    工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为 ASP.NET 开发者介绍一些高效实用的工具,包括 SQL 管理,VS插件,内存管理,诊断工具等,涉及开发过程的各个环节 ...

  5. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败解决方案

    第一种方法测试过可用:地址:http://download.csdn.net/detail/itjjfamily/8853509 下面是第二种: .NET导出Excel遇到的80070005错误的解决 ...

  6. Spark源码分析(四)-Job提交过程

    原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3903478.html   本文将以一个简单的WordCount为例来看看Job的提交过程

  7. hdu 4568(SPFA预处理+TSP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4568 思路:先用spfa预处理出宝藏与宝藏之间的最短距离,宝藏到边界的最短距离,然后就是经典的求TSP ...

  8. iOS开发之 -- oc和swift下输出乘法口诀表

    闲来无事,写着玩: oc: //乘法口诀表输出 ; i<=; i++) { ; j<=i; j++) { NSLog(@"%dx%d=%d\n",i,j,i*j); } ...

  9. Java Tomcat7性能监控与优化详解

    1.   目的 通过优化tomcat提高网站的并发能力. 2.   服务器资源 服务器所能提供CPU.内存.硬盘的性能对处理能力有决定性影响. 3.   优化配置 3.1. 配置tomcat管理员账户 ...

  10. JMeter java.net.URISyntaxException: Illegal character in query at index

    请求参数未编码,会造成请求解析失败.把编码勾上,就可以了.