Linux 中查看进程及资源使用情况

原文:Linux 中查看进程及资源使用情况

自带的 top 命令类似于平时我们使用的任务管理器,能够列出当前系统中的进程及资源的使用情况。

$ man top
       top - display Linux tasks

使用起来很简单,不加任何参数的情况下已经很实用了。其输出大致是下面这个样子:

top命令的输出界面

q 可退出该界面。

Tips: top 的输出每 3 秒刷新一次,如果想将画面定格,Mac 下可使用 control + s 来停止刷新,control + q 恢复刷新。当然,还可以通过在当前界面按 d 来设置刷新频率,如下图。

d 设置刷新频率" style="max-width:100%;">

按 d 设置刷新频率

下面来细看各部分的内容的含义。

top

关于机器运行的统计信息。从????至????依次是:

  • 22:23:10 系统当前时间。
  • up 80 days, 11:44 系统已经运行了80多天了。
  • 1 user 当前登录的用户数。1 个,也就是我自己。
  • load average: 1.31, 1.33, 1.29 系统平均负荷(Load),三个值,分别表示过去 1 分钟,5 分钟和 15 分钟的平均负荷。

Tasks

进程统计信息,分别是:

  • 66 total 总计 66 个进程。
  • 1 running 其中 1 个正在运行。
  • 65 sleeping 65 个处于休眠。
  • 0 stopped 0 个停止。
  • 0 zombie 以及 0 个僵尸进程

这里,其他都好理解,什么又是僵尸进程?简单理解它是这么种进程,任务已经完成但没有退出,仍然显示在进程列表中。常见的情形是子进程,子进程中任务完成后,主进程还可能保持与其进行通信等。继续了解可阅读 What is Zombie Process in Linux?

CPU

这一行是 CPU 使用情况的统计。分成了 8 个部分,他们相加后当然应该是 100% 啦。

  • 100.0 us :(user) 用户消耗的 CPU 百分比。
  • 0.0 sy :(system) 系统消耗的 CPU。
  • 0.0 ninice 进程消耗的 CPU。
  • 0.0 id :(idle) 空闲的 CPU。
  • 0.0 wa :(waiting) 等待处理 I/O 操作的 CPU 资源。
  • 0.0 hi :(Hardware IRQ)处理硬件交互的 CPU 资源。
  • 0.0 si :(Software Interrupts)处理软件交互的 CPU 资源。
  • 0.0 st :(Steal Time)如果当前处于虚拟系统(vm)中,此项表示由管理程序从此系统偷走拿去处理其他任务的 CPU 资源。

其他好说,什么是 nice 进程。简单理解,进程的 nice 值与 priority 都是标识进程优先级的,前者是用户层面的优先级,后者是 Linux Kernel 使用的值。继续了解可移步 Process ‘niceness‘ vs. ‘priority‘

Mem & Swap

这两行表示物理内存(RAM)及 swap 空间的使用情况。拿内存这一行来说,依次表示:

  • 606704 total 总内存
  • 89464 free 空闲的部分
  • 128300 used 使用的部分
  • 388940 buff/cache buff 或缓存的部分

关于内存这部分,可阅读此文章 Linux memory management 进一步了解详情。

关于 swap 的理解可阅读 All about Linux swap space

进程列表

紧接着列出的是各进程,默认以 CPU 使用量排序。

  • PID: 进程的 id,通过它来操作指定进程。
  • USER: 进程的所有者。
  • PR: 进程的优先级。
  • NI: 进程的 NICE 值,默认 0。
  • VIRT: 进程使用的虚拟内存。
  • RES: 进程使用的物理内存。
  • SHR: 进程使用的共享内存。
  • S: status,进程的状态: S=睡眠中/sleep R=支行中/running Z=僵尸进程/zombie (S)。
  • %CPU: 进程消耗的 CPU 百分比。
  • %MEM: 进程使用的 RAM 百分比。
  • TIME+: 进程运行时长。
  • COMMAND: 进程名。

以上。

大致了解后便不会感到眼花缭乱了。对于各指标含义了解后,可方便我们在服务端排查问题,分析程序运行是否可控和正常。比如你的 Node.js 服务。

一些 top 命令

除了展现信息,在 top 的输出界面,还有很多命令可用,比如上面提到的 d 设置刷新时间。

  • 最常用的,发现某个进程快把机器爆掉了,按 k 然后输入其 PID 将该进程结束掉。
  • o 调整各列的顺序/order。
  • u 展示某个用户的进程。再次进入设置时设置成空则回到展示全部进程。
  • z 高亮运行中的进程。
  • c 展示进程的绝对路径。

htop

除了自带的 top 命令,还可安装另外一个加强版 htop,其界面更加美观,呈现的东西大同小异,但功能交互上更加方便强大。

$ htop

界面上友好的菜单已经无须多说便能上手。

相关资料

原文地址:https://www.cnblogs.com/lonelyxmas/p/10640444.html

时间: 2025-01-02 13:32:02

Linux 中查看进程及资源使用情况的相关文章

Linux中查看进程占用内存和系统资源情况的命令

用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况... 还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多. top: 主要参数 d:指定更新的间隔,以秒计算. q:没有任何延迟的更新.如果使用者有超级用户,则top命令将会以最高的优先序执行. c:显示进程完整的路径与名称. S:累积模式,

Linux中查看进程的多线程pstree, ps -L

Linux中查看进程的多线程 在SMP系统中,我们的应用程序经常使用多线程的技术,那么在Linux中如何查看某个进程的多个线程呢? 本文介绍3种命令来查看Linux系统中的线程(LWP)的情况:在我的系统中,用qemu-system-x86_64命令启动了一个SMP的Guest,所以有几个qemu的线程,以此为例来说明. 1. pstree 命令,查看进程和线程的树形结构关系.  BASH 1 2 3 4 5 [root@jay-linux ~]# pstree | grep qemu |-gn

Linux中查看进程的多线程

在SMP系统中,我们的应用程序经常使用多线程的技术,那么在Linux中如何查看某个进程的多个线程呢? 本文介绍3种命令来查看Linux系统中的线程(LWP)的情况: 在我的系统中,用qemu-system-x86_64命令启动了一个SMP的Guest,所以有几个qemu的线程,以此为例来说明. 1. pstree 命令 查看进程和线程的树形结构关系 [[email protected] ~]# pstree | grep qemu |-terminal-+-bash---qemu-sys---2

Linux中查看进程及杀死进程命令

Linux中想杀死fcitx进程,然后再重启它. [email protected]:/home/zhangbin# ps -e | grep 'fcitx' 3405 ?        00:00:00 fcitx <defunct> 3415 ?        00:00:02 fcitx   不显示标题 [email protected]:/home/zhangbin# ps -h Warning: bad ps syntax, perhaps a bogus '-'? See http

【Linux】在Linux中查看进程占用的端口号

对于 Linux 系统管理员来说,清楚某个服务是否正确地绑定或监听某个端口,是至关重要的.如果你需要处理端口相关的问题,这篇文章可能会对你有用. 端口是 Linux 系统上特定进程之间逻辑连接的标识,包括物理端口和软件端口.由于 Linux 操作系统是一个软件,因此本文只讨论软件端口.软件端口始终与主机的 IP 地址和相关的通信协议相关联,因此端口常用于区分应用程序.大部分涉及到网络的服务都必须打开一个套接字来监听传入的网络请求,而每个服务都使用一个独立的套接字. 套接字是和 IP 地址.软件端

windows和linux中查看端口占用情况并kill掉对应进程

好几次在不同的情况下遇到 需要查看端口信息 并且kill掉对应进程的情况 相关的参数总是记不全 在这里记录下 以后查看方便 windows中查看正在使用端口的信息netstat -ano|findstr "xxxx"kill 掉对应的进程taskkill /f /t /PID 具体参数信息http://blog.163.com/[email protected]/blog/static/45190050200741222590/ linux中查看正在使用的端口的信息sudo netst

查看进程占用的内存情况

可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看java用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看tomcat用户的进程内存使用情况的话可以使用如下的命令: $ top -u tomcat 内容解释: PID:进程的ID    US

linux 中的进程wait()函数

转载自:http://blog.sina.com.cn/s/blog_7776b9d3010144f9.html 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程. 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程-- 一个进程在调用exit

Linux下查看进程和线程

在linux中查看线程数的三种方法 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 2.ps xH 手册中说:H Show threads as if they were processes 这样可以查看所有存在的线程. 3.ps -mp <PID> 手册中说:m Show threads after processes 这样可以查看一个进程起的线程数. 查看进程 1. top 命令 top命令查看