了解你服务器的心情——top命令详解

top是Linux较为常用的命令,可以监控服务器的CPU、内存、进程的运行情况,话不多说,直接操作。

输入top即可启动:

下面我们就来逐一介绍top向我们展示的内容。

第一行:系统概况

top - 19:39:14 up 20 days,  7:48,  1 user,  load average: 0.00, 0.01, 0.05
  • 19:39:14 up 20 days:系统运行时间
  • 1 user:用户数
  • load average: 0.00, 0.01, 0.05:1分钟、5分钟、15分钟的平均负载

第二行:进程概况

Tasks:  69 total,   2 running,  67 sleeping,   0 stopped,   0 zombie
  • 69 total:总进程数
  • 2 running:运行态进程数
  • 67 sleeping:睡眠态进程数
  • 0 stopped:停止态进程数
  • 0 zombie:僵尸态进程数

第三行:CPU概况

%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
  • us:用户进程CPU使用占比
  • sy:系统进程CPU使用占比
  • ni:用户进程中改变了优先级的进程CPU使用占比
  • id:空闲CPU占比
  • wa:等待IO的CPU时间占比
  • hi:硬中断占用CPU百分比
  • si:软终端占用CPU百分比

默认情况下显示的是所有CPU的平均值,如果想看每个CPU具体值,则按下『1』即可:

%Cpu0  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st

第四五行:内存概况

在Linux中,内存一共分为两块:物理内存 和 交换区。 物理内存是真正的内存,而内存资源毕竟有限,因此当物理内存不够的时候,根据LRU置换算法,那些很长时间没被使用的数据将会被存入交换区。交换区其实是硬盘,并非内存。当交换区存在数据时说明物理内存不够了。

KiB Mem :  1883724 total,   300584 free,   646088 used,   937052 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1062956 avail Mem
  • Mem 1883724 total:物理内存的总量
  • Mem 300584 free:物理内存的空闲量
  • Mem 646088 used:物理内存使用量
  • Mem 937052 buff/cache:物理内存内核缓存使用量
  • Swap 0 total:交换区总量
  • Swap 0 free:交换区空闲量
  • Swap 0 used:交换区使用量
  • Swap 1062956 avail Mem:虚拟内存总量

PS:buff/cache虽然占用物理内存,但当内存不够时也可以直接使用,因此物理内存的可使用空间为:free + buff/cache。

第六行:进程详情

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
1784 root      20   0 2072440  73204   8768 S  0.7  3.9 108:58.75 java
1182 root      20   0   46540   2624   1988 S  0.3  0.1  11:06.20 AliYunDunUpdate
  • PID:进程ID
  • USER:进程所有者
  • RES:进程所占物理内存大小(kb)
  • SHR:进程所占共享内存大小(kb)
  • VIRT:进程所占虚拟内存大小???
  • %CPU:CPU占用百分比
  • %MEM:物理内存占用百分比
  • PR:进程优先级
  • NI:nice值
  • TIME+:上次更新到现在进程使用的CPU时间总计
  • COMMAND:启动该进程的命令

小技巧

1. 间隔刷新

进入top后按下d,即可设置间隔刷新时间,默认是3秒。

2. 添加进程监控字段

进入top后按下f,即可添加/减少需要监控的进程信息。

* PID     = Process Id             vMn     = Minor Faults delta
* USER    = Effective User Name    USED    = Res+Swap Size (KiB)
* PR      = Priority               nsIPC   = IPC namespace Inode
* NI      = Nice Value             nsMNT   = MNT namespace Inode
* VIRT    = Virtual Image (KiB)    nsNET   = NET namespace Inode
* RES     = Resident Size (KiB)    nsPID   = PID namespace Inode
* SHR     = Shared Memory (KiB)    nsUSER  = USER namespace Inode
* S       = Process Status         nsUTS   = UTS namespace Inode
* %CPU    = CPU Usage
* %MEM    = Memory Usage (RES)
* TIME+   = CPU Time, hundredths
* COMMAND = Command Name/Line
  PPID    = Parent Process pid
  UID     = Effective User Id
  RUID    = Real User Id
  RUSER   = Real User Name
  SUID    = Saved User Id
  SUSER   = Saved User Name
  GID     = Group Id
  GROUP   = Group Name
  PGRP    = Process Group Id

前面有*的说明已经显示了。

3. 保存设置

对top进行设置后,默认是不保存配置的,只有按了大写的W后才会保存。

4. 监控结果输出到文件

top -d 1 -n 3 > top.log

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

sysctl.conf学习和调优

? 前言 记得第一次接触/etc/security/limits.conf和/etc/sysctl.conf时 是因为部署Oracle时要按需修改内核参数。l...

3807
来自专栏全华班

springcloud学习手册-API Gateway (API网关)

导读 | API Gateway (API网关) ? 一、为什么服务之间需要使用API Gateway (API网关)呢? 引用「Chris Richardso...

3126
来自专栏张秀云的专栏

Hbase 技术细节笔记(下)

最近在跟进 Hbase 的相关工作,由于之前对 Hbase 并不怎么了解,因此系统地学习了下 Hbase ,为了加深对Hbase的理解,对相关知识点做了笔记,并...

2K1
来自专栏性能与架构

Linux 内存性能指标

内存基础概念 先执行一下 top 命令,看结果中关于内存的相关部分 # top ? 其中的 VIRT、RES、SWAP 都是什么呢? 分别是下面的3个概念 ...

3605
来自专栏PHP技术

从运行原理及使用场景看Apache和Nginx

用正确的工具,做正确的事情。 本文只作为了解Apache和Nginx知识的一个梳理,想详细了解的请阅读文末参考链接中的博文。 Web服务器 Web服务器也称为W...

3667
来自专栏肖乐的专栏

WebSocket系列之socket.io

上篇讲了WebSocket基础知识和浏览器端的实现,WebSocket server和http server也是有区别的,这篇开始讲nodejs平台的一个很成熟...

8907
来自专栏散尽浮华

Redis Cluster集群总结性梳理

前面已经介绍了Redis Cluster集群及其部署过程,下面再补充下有关Redis Cluster应用原理部分内容,以便更加深刻透彻地理解Redis Clus...

3349
来自专栏CodingToDie

业余作者

Your good friend, an amateur writer, is full of energy and ready to write again.

494
来自专栏米扑专栏

Linux free命令:buffer 与 cache 区别

3229
来自专栏高性能服务器开发

(八)高性能服务器架构设计总结4——以flamigo服务器代码为例

一个项目的服务器端往往由很多服务组成,就算单个服务在性能上做到极致,支持的并发数量也是有限的。举个简单的例子,假如一个聊天服务器,每个用户的信息是1k,那对于一...

785

扫描关注云+社区