`
perfect5085
  • 浏览: 271334 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux中top和free命令详解

阅读更多

top:命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.

该命令可以按CPU使用.内存使用和执行时间对任务进行排序;

而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. 

top - 01:06:48 up  1:22,  1 user,  load average: 0.06, 0.60,  0.48

            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

            Mem:    191272k total,   173656k used,    17616k free,    22052k  buffers

            Swap:   192772k total,        0k used,   192772k free,   123988k  cached

 

            PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM     TIME+  COMMAND

            1379 root      16   0  7976 2456 1980 S  0.7  1.3   0:11.03  sshd

            14704 root      16   0  2128  980  796 R  0.7  0.5   0:02.72 top

            1 root      16   0  1992  632  544 S  0.0  0.3   0:00.90 init

            2 root       34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0

            3 root       RT   0     0    0    0 S  0.0  0.0   0:00.00  watchdog/0

 

统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime  命令的执行结果。其内容如下:

01:06:48 当前时间

up 1:22 系统开机到现在的运行时长,单位:分

1 user 当前登录用户数

load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。

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

 

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

Tasks: 29 total 进程总数

1 running 正在运行的进程数

28 sleeping 睡眠的进程数

0 stopped 停止的进程数

0 zombie 僵尸进程数

Cpu(s): 0.3% us 用户空间占用CPU百分比

1.0% sy 内核空间占用CPU百分比

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

98.7% id 空闲CPU百分比

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

0.0% hi

0.0% si

 

最后两行为内存信息。内容如下:

Mem: 191272k total 物理内存总量

173656k used 使用的物理内存总量

17616k free 空闲内存总量

22052k buffers 用作内核缓存的内存量

Swap: 192772k total 交换区总量

0k used 使用的交换区总量

192772k free 空闲交换区总量

123988k cached 缓冲的交换区总量。

            内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,

            该数值即为这些内容已存在于内存中的交换区的大小。

            相应的内存再次被换出时可不必再对交换区写入。

 

进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

序号 列名 含义

a PID 进程id

b PPID 父进程id

c RUSER Real user name

d UID 进程所有者的用户id

e USER 进程所有者的用户名

f GROUP 进程所有者的组名

g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?

h PR 优先级

i NI nice值。负值表示高优先级,正值表示低优先级

j P 最后使用的CPU,仅在多CPU环境下有意义

k %CPU 上次更新到现在的CPU时间占用百分比

l TIME 进程使用的CPU时间总计,单位秒

m TIME+ 进程使用的CPU时间总计,单位1/100秒

n %MEM 进程使用的物理内存百分比

o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。

q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

r CODE 可执行代码占用的物理内存大小,单位kb

s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

t SHR 共享内存大小,单位kb

u nFLT 页面错误次数

v nDRT 最后一次写入到现在,被修改过的页面数。

w S 进程状态。

            D=不可中断的睡眠状态

            R=运行

            S=睡眠

            T=跟踪/停止

            Z=僵尸进程

x COMMAND 命令名/命令行

y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名

z Flags 任务标志,参考 sched.h

 

默认情况下仅显示比较重要的  PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND  列。可以通过下面的快捷键来更改显示内容。

更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z  即可显示或隐藏对应的列,最后按回车键确定。

按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z  可以将相应的列向左移动。最后按回车键确定。

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的  R 键可以将当前的排序倒转。

 

 

free命令用来显示内存的使用情况

 

b.格式

 

  free [-b -k -m] [-o] [-s delay] [-t] [-V]

 

  c.主要参数

 

  -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。

 

  -s delay:显示每隔多少秒数来显示一次内存使用情况。

 

  -t:显示内存总和列。

 

  -o:不显示缓冲区调节列。 

 

使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次

#free -b -s5 

 

             total       used       free     shared    buffers     cached

Mem:       3266180    3250004      16176          0     110652    2668236

-/+ buffers/cache:     471116    2795064

Swap:      2048276      80160    1968116

 

total:总计物理内存的大小。

used:已使用多大。

free:可用有多少。

Shared:多个进程共享的内存总额。

Buffers/cached:磁盘缓存的大小。

 

第三行(-/+ buffers/cached):

used:已使用多大。

free:可用有多少。

第四行就不多解释了。

区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,

第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.

第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

如上例:

2795064=16176+110652+2668236

 

接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行交换。

 

占用内存的测量

 

测量一个进程占用了多少内存,linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。

 

/proc/meminfo 机器的内存使用信息

 

/proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。

 

/proc/pid/statm 进程所占用的内存

分享到:
评论

相关推荐

    Linux Top命令参详解

    ### Linux Top 命令参数详解 #### 一、引言 `top` 命令是 Linux 系统中最常用的系统监控工具之一,它能够实时地显示系统中各个进程的资源占用状况,包括 CPU 使用率、内存使用情况等。在实际应用中,无论是对于系统...

    ubuntu中top命令详解

    在Linux系统中,`top`命令是一个非常强大的实时系统监控工具...总之,`top`命令是Ubuntu和其他Linux系统中非常实用的系统监控工具,它提供了丰富的系统和进程信息,帮助系统管理员和用户实时监控和管理系统的运行状态。

    Linux命令详解词典.pdf

    《Linux命令详解词典》是一本详尽解析Linux操作系统中常用命令的参考书籍。Linux作为开源、免费的操作系统,其强大的命令行工具是其高效工作的重要组成部分。这本书旨在帮助用户理解和掌握这些命令,从而更好地在...

    Linux命令详解手册.pdf

    Linux命令详解手册是一份关于Linux操作系统下各种命令的权威指南,涵盖了系统管理、系统设置、文档编辑和压缩备份等众多方面的命令。这份手册详细列举并解释了每个命令的用途和使用方法,是Linux用户管理和维护系统...

    Linux命令详解手册

    Linux命令详解手册是一本适合Linux新手和有一定基础的用户深入学习Linux命令的指南。它详细介绍了大量的Linux命令,涵盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面的操作。掌握这些命令对于理解和使用...

    linux free命令详解

    《深入解析Linux free命令》 Linux操作系统中,监控系统资源的使用情况是日常管理的重要一环,其中`free`命令便是用来查看系统内存使用状态的工具。本文将详细介绍`free`命令的使用方法和解析其输出结果,以帮助...

    linux命令详解阿手册PDF文档

    《Linux命令详解手册》是一份全面的Linux命令参考资料,它详细介绍了Linux系统中广泛使用的一系列命令,覆盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面。为了方便用户查阅,该手册按照命令的功能进行了...

    Linux命令详解手册.zip

    "Linux命令详解手册"提供了全面的命令指南,帮助用户理解和运用各种命令来高效地操作Linux系统。下面将详细阐述Linux命令的主要类别及其重要用途。 1. 文件和目录管理: - `ls`:列出目录内容,常用于查看当前目录...

    Linux-Linux系统操作命令详解

    掌握Linux系统操作命令是进行有效管理和维护系统的关键。本文将深入解析一系列基础及高级的Linux命令,帮助你快速入门并逐步提升到精通水平。 1. **用户系统相关命令**: - `su` 和 `sudo` 用于切换用户,`sudo -i...

    top命令详解.txt

    在深入探讨“top命令详解”之前,我们先来理解一下top命令的基本概念及其在系统监控中的重要性。top命令是Unix、Linux等类Unix操作系统中一个非常强大的实时进程监测工具,它提供了系统运行状态的动态视图,包括CPU...

    Linux 命令详解手册中文版

    以上只是部分常用Linux命令,深入学习"Linux 命令详解手册中文版"将涵盖更多细节和高级用法。通过熟练掌握这些命令,用户能更高效地与Linux系统交互,提升工作效率。对于初学者来说,这是一个很好的起点,而随着经验...

    linux下top使用方法

    ### Linux下top命令使用方法详解 #### 一、top 命令简介 `top` 命令是Linux系统中一个非常强大的实时监控工具,它可以帮助用户了解系统的整体运行状态,包括CPU使用率、内存使用情况以及各个进程的状态等。通过`...

    linux 命令大全 各种命令详解

    以上只是Linux命令大全中的一部分,实际上还有许多其他命令,如进程管理(`ps`, `kill`, `top`),文件搜索(`locate`, `which`),系统信息查询(`uname`, `df`, `free`),网络配置(`ifconfig`, `route`),日志...

    linux下top命令的使用.docx

    ### Linux 下 `top` 命令的使用详解 `top` 命令是 Linux 系统中非常重要的实时监控工具之一,主要用于查看和监控系统资源使用情况,特别是 CPU 和内存的使用情况。虽然大多数程序员都熟悉 `top` 命令的基本使用,但...

    TOP命令实例详解

    #### 三、交互命令详解 `top`命令支持多种交互式操作,下面是一些常用的命令: ##### 3.1 `h`或`?`: 显示帮助菜单 按下`h`或`?`键可以查看`top`命令的支持命令列表。 ##### 3.2 回车或空格键: 刷新显示 默认...

    Linux中top的含义

    ### Linux中的Top命令详解 #### 一、Top命令概述 `top`命令是Linux系统中一个非常实用且强大的工具,用于实时显示系统中各个进程的资源占用状况。它提供了CPU使用率、内存使用情况以及系统运行时间等信息,是系统...

    Linux命令详解手册 英文版

    在这本《Linux命令详解手册 英文版》中,作者Christopher Negus和François Caen提供了超过1000个针对Fedora、CentOS以及Red Hat的命令。这些命令涵盖了从基本的系统管理命令到高级的网络配置和故障排除工具的广泛...

    linux top命令详解

    `top`命令是Linux系统中一个非常重要的实时系统监控工具,它提供了动态查看系统进程、CPU使用率、内存使用情况等关键信息的功能。本文将深入解析`top`命令的各个方面,帮助你更好地理解和利用这个命令。 ### 1. ...

    Linux常用必会60个命令实例详解

    下面我们将介绍 Linux 中的60个必学命令,这些命令按照它们在系统中的作用分成六个部分:安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令和其他命令。 安装和登录命令 1. login ...

    linux-Linux命令大全内容包含Linux命令手册详解学习搜集

    - 在Linux世界中,命令手册(man pages)是获取命令用法和参数信息的主要方式。例如,输入`man ls`可以查看`ls`命令的帮助文档,了解如何列出目录内容。 2. **基础命令**: - `cd`:改变当前工作目录,是日常操作...

Global site tag (gtag.js) - Google Analytics