1、top

top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。

第一部分 -- 最上部的 系统信息栏 :

第一行(top):

“00:11:04”为系统当前时刻;

“3:35”为系统启动后到现在的运作时间;

“2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;

“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;

第二行(Tasks):

“59 total”为当前系统进程总数;

“1 running”为当前运行中的进程数;

“58 sleeping”为当前处于等待状态中的进程数;

“0 stoped”为被停止的系统进程数;

“0 zombie”为被复原的进程数;

第三行(Cpus):

分别表示了 CPU 当前的使用率;

第四行(Mem):

分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;

第五行(Swap):

表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

第二部分 -- 中间部分的内部命令提示栏:

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:

<空格>:立刻刷新。

s - 改变画面更新频率

l - 关闭或开启第一部分第一行 top 信息的表示

t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示

m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示

N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)

P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)

M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)

h - 显示帮助

n - 设置在进程列表所显示进程的数量

q - 退出 top

第三部分 -- 最下部分的进程列表栏:

以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

32497 jacky     20   0  669m 222m  31m R   10  5.6       29:27.62 firefox

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

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 键可以将当前的排序倒转。

2、free

a.作用

free命令用来显示内存的使用情况,使用权限是所有用户。

b.格式

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

c.主要参数

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

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

-t:显示内存总和列。

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

d.应用实例

free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。#free -b -s5

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

用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...

还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。

内存free命令:[root@scs-2 tmp]# free

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

什么时候内存会被交换,以及按什么方交换:

当可用内存少于额定值的时候,就会开会进行交换。

如何看内存额定值:[root@scs-2 tmp]# cat /proc/meminfo

或是查看/proc/kcore文件的大小(内存镜像):[root@scs-2 tmp]# ll -h /proc/kcore

-r-------- 1 root root 4.1G Jun 12 12:04 /proc/kcore

备注:占用内存的测量

测量一个进程占用了多少内存:

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

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

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

输出解释:

CPU 以及CPU0。。。的每行的每个参数意思(以第一行为例)为:

参数 解释 /proc/status

Size (pages) 任务虚拟地址空间的大小 VmSize/4

Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4

Shared(pages) 共享页数 0

Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4

Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4

Drs(pages) 程序数据段和用户态的栈的大小 (VmData+ VmStk )4

3、uptime

18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21

现在的时间

系统开机运转到现在经过的时间

连线的使用者数量

最近一分钟,五分钟和十五分钟的系统负载

参数: -V 显示版本资讯。

4、vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70

1、观察磁盘活动情况:

磁盘活动情况主要从以下几个指标了解:

bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。

bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。

wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。

2 观察cpu活动情况

vmstat比top更能反映出cpu的使用情况:

us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。

sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。

id:cpu空闲的时间比例。

wa:cpu等待未决的磁盘IO的时间比例。

5、iostat

用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量

参数:

-c 只显示CPU行

-d 显示磁盘行

-k 以千字节为单位显示磁盘输出

-t 在输出中包括时间戳

-x 在输出中包括扩展的磁盘指标avg-cpu: %user %nice %sys %iowait %idle

20.25 0.18 2.61 76.39 0.57

%iowait 等待本地I/O时CPU空闲时间的百分比

%idle 未等待本地I/O时CPU空闲时间的百分比Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

hda 9.86 284.34 84.48 685407 2036

每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。

Linux下查看CPU等基本命令,Linux查看CPU和内存使用情况的常用命令相关推荐

  1. linux下的二进制文件的编辑和查看 -

    linux下的二进制文件的编辑和查看 一.在Linux下查看二进制文件的软件: xxd (默认2进制) hexdump  (默认16进制,可转其他进制) od (默认8进制,可转其他进制) 二.编辑: ...

  2. linux 关闭tomcat日志打印,linux下打开与关闭tomcat 实时查看tomcat运行日志

    摘要 腾兴网为您分享:linux下打开与关闭tomcat 实时查看tomcat运行日志,小米云盘,尚游戏,锐捷,卖萌相机等软件知识,以及360驱动大师,哔哩哔哩专栏,大力菠菜网,蹭饭网,bartend ...

  3. linux格式化大于2t硬盘分区,linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区...

    linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找 ...

  4. zip分卷压缩linux命令,linux下zip分卷压缩及linux下zip分卷解压

    本文关键词:linux合并zip文件.linux下zip分卷压缩及linux下zip分卷解压.linux下zip分卷解压.linux下zip分卷压缩. 先压缩原始文件 [root@laofuxi.co ...

  5. linux下能运行python,(转)Linux下运行python

    原文: http://blog.csdn.net/jackywgw/article/details/48847187 在linux命令行下运行python,可以直接输出hello world jack ...

  6. 马上6 linux客户端,三款 Linux 下的 Git 图形客户端 | Linux 中国

    原标题:三款 Linux 下的 Git 图形客户端 | Linux 中国 了解这三个 Git 图形客户端工具如何增强你的开发流程. -- Jack Wallen 致谢 编译自 | https://ww ...

  7. linux下安装.hex文件,HexEdit Linux下命令集

    Linux下Ganglia集群监控安装.配置笔记 http://www.blogjava.net/henry14/archive/2011/12/17/ganglia.html 枪声依旧 Linux下 ...

  8. Shell脚本和Python查看Nginx并发连接数、进程数和常驻内存占用情况

    Shell脚本查看Nginx并发连接数.进程数和常驻内存占用情况 http://xiaoyongxing1.blog.163.com/blog/static/642807522015144302240 ...

  9. 《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务

    文章目录 二.高级篇(大厂进阶) 5.Docker-compose容器编排 5.1是什么 5.2能干嘛 5.3去哪下 5.4 Compose核心概念 5.5 Compose使用的三个步骤 5.6 Co ...

最新文章

  1. 遍历Repeater与ItemDataBound事件发现的几个问题。
  2. html前端获取地理位置_简单阐述什么是前端?后端?
  3. 【Android 逆向】应用数据目录 ( files 数据目录 | lib 应用自带 so 动态库目录 | databases sqlite3 数据库目录 | cache 缓存目录 )
  4. centos7怎么安装中文环境支持包
  5. Android资源文件在配置文件中的使用
  6. 背包(二维数组版和一维数组版)
  7. Android设计模式之——命令模式
  8. golang字节数组拷贝BlockCopy函数实现
  9. pytorch 创建神经网络
  10. java读取文件(按字符或字节读取)
  11. 码云怎么创建公开的仓库_使用码云创建属于你的免费私有git仓库
  12. Android 对应的xml配置值,颜色表
  13. SE5边缘计算盒子学习笔记-week1
  14. bash 脚本编程 教程
  15. matlab图像去毛刺_MATLAB数字图像处理
  16. 计算机考研和软件的区别吗,考研考计算机与考软件有什么区别
  17. Flutter中StatefulWidget生命周期小记
  18. Geek ? 什么是 Geek ? 谁是 Geek ?
  19. 企业电子邮箱怎么申请免费注册账号?
  20. java http请求发送unicode_Java发送http请求

热门文章

  1. Minimal安装CentOS 7使用yum报This system is not registered to Red Hat Subscription Management.
  2. 研发手Q推广遇到的一系列问题
  3. 实现接口时@Override注解问题
  4. [LeetCode]题解(python):025-Reverse Nodes in k-Group
  5. freemarke之TemplateDirectiveModel详解
  6. Qt下使用QtSql连接sqlite3所遇到的问题总结
  7. PHP中遍历关联数组的方法
  8. 关于JS引擎效率的怨念
  9. osgi学习之---扩展点理解
  10. 解读Raw Socket