1.前言
大多数linux进程(即使没有明确运行)都在后台运行,以提供服务,并为用户调用所执行的应用程序做好准备。
在linux中,有一个命令允许您查看系统中的资源是如何使用(或浪费)的,我想快速解释一下如何监视运行在您机器上的进程。
2.统一查看正在运行进程的命令行工具-top
答案很简单,有一个简单的linux命令可以让您精确地查看正在计算机上运行的进程,以及内存使用情况、CPU消耗和有关使用的交换内存的详细信息。它可以从您最喜欢的shell访问。
该命令是top,它允许您查看机器中当时正在发生的事情,更一般地说是您的系统状态,包括正在运行的进程。
top
你将会看到以下输出结果:
Linux怎么查看正在运行的进程
好了,正在运行的进程状态已经显示出来了,怎么看这个结果呢?
开始的时候输出可能会让人感到困惑,请查看下面的说明,以便更好地理解正在运行的进程状态
系统正常运行时间和系统平均负载
第一行显示了系统的正常运行时间,即系统运行了多少小时或几天
top-12:45:10up9days,20:11,1user,loadaverage:0.00,0.01,0.05
比如,正在运行的状态显示以下
12:45:10当前时间
9days,20:11系统启动运行的时间
1user表示有1个用户正在使用系统
接下来的3个值显示了最后1分钟/5分钟/15分钟的平均负载:0.00,0.01,0.05
监控任务状态:
第二行提供关于系统中实际加载的进程状态的信息
Tasks:133total,1running,132sleeping,0stopped,0zombie
基本上,数字附近的单词是任务的当前状态。
3.Linux怎么查看正在运行的进程占用的CPU
第三行代表系统中CPU状态的简要概述。
%Cpu(s):0.0us,0.2sy,0.0ni,99.8id,0.0wa,0.0hi,0.0si,0.0s
每个参数表示cpu状态的不同指示符,简单来说,这就是它们的含义:
- us用户CPU时间——CPU占用用户运行的进程的时间
- sy系统CPU时间—与我们相似,但是它定义了运行linux内核和相关进程所花费的时间
- niniceCPU时间——当使用nice命令进行优先级排序时,它指示CPU运行这些进程所花费的时间。
- waI/O等待——表示当I/O操作完成时,CPU必须等待的时间。
- hi硬件IRQ——CPU为硬件中断服务所花费的时间
- si软件中断——类似于hi,但它指的是软件中断
- st偷取时间——由于每个现代CPU都支持虚拟化,所以这个索引指的是管理程序偷取的CPU数量,用于执行运行虚拟机之类的任务。
Linux怎么查看正在运行的进程占用的CPU
4.怎么查看内存使用率,物理和交换空间
下面两行代码概述了系统中物理内存和交换内存的内存状态。
由于现代系统大量使用缓存,您将更有可能经常看到物理内存几乎被占满了。
相反,当物理内存不能处理更多的东西时,交换空间是一种“备份”,因此它被迫在磁盘上写东西以避免丢失。如果交换空间的使用高,这是一个清楚的警告,表明某些事情没有按照预期进行。
这一行是指物理内存:
KiBMem:4026096total,277300free,1235948used,2512848buff/cache
下一行就是给出交换内存的信息
KiBSwap:0total,0free,0used.2252720availMem
好了,我们的想查看的进程在哪里?
在这里,前面几行之外的列表表示在您的系统上正在运行的进程、守护进程和服务的列表,每一行都带有关于单个进程的变量说明。以下是我的查看记录:
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
1598mysql20016429801907329364S0.34.722:05.24mysqld
1788root20016201223001612R0.30.10:00.07top
76024root391935030889644192S0.30.29:48.53bcm-si
1root20019100039042584S0.00.12:46.70systemd
以上输出结果提供了关于在您的系统上正在运行的进程的各种信息,稍后我将尝试向您解释这些信息。
- PID–进程的ID号
- USER–显示用户正在运行的进程
- PR–此指示符显示进程优先级,如果您在输出结果中看到“rt”表示进程具有实时优先级,则此指示符用于系统进程。
- NI–指示是否使用命令nice来增强给定进程的优先级。
- VIRT–指进程使用的虚拟内存的数量,这意味着它在内存中存储数据、库和交换的页面
- RES–物理内存上有多少进程处于“RES”状态
- SHR–指示为进程共享的内存段的大小
- S–当前正在运行的进程的状态
- %CPU–共享cpu运行给定正在运行进程所花费的时间百分比
- %MEM–正在运行的进程使用的物理内存的百分比
- %TIME+–cpu运行给定正在运行的进程所花费的总时间
- COMMAND–用于初始化进程的命令
怎么查看内存使用率,物理和交换空间
5.我该怎么处理这些信息呢?
收集到这些正在运行的进程信息后,这些信息将帮助您排除各种问题,比如内存/CPU/泄漏、OOM错误,或者仅仅是了解当时正在运行的进程。
当然,你可以结合grep命令过滤和定制你想要看的内容,比如
top|grepNI