Ubuntu查看系统资源占用(内存,cpu和进程)

1. free

用来显示内存的使用情况,使用权限是所有用户。
free [-b-k-m] [-o] [-s delay] [-t] [-V]

参数:

-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。 


2. uptime

用来显示任务队列信息。

| 现在的时间 | 系统开机运转到现在经过的时间 | 连线的使用者数量 | 最近一分钟,五分钟和十五分钟的系统负载 |
11:00:16 up 1 day,  2:24,  4 users,  load average: 0.21, 0.25, 0.36

3. top

实时地对系统处理器的状态进行监视。

命令格式:
top [-] [d] [p] [q] [c] [C] [S]    [n]
参数说明:
d:  指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p:  通过指定监控进程ID来仅仅监控某个进程的状态。
q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S: 指定累计模式
s : 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i:  使top不显示任何闲置或者僵死进程。
c:  显示整个命令行而不只是显示命令名
在top命令的显示窗口,我们还可以输入以下字母,进行一些交互:
h或者?  : 显示帮助画面,给出一些简短的命令总结说明。
k  :终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
i:忽略闲置和僵死进程。这是一个开关式命令。
q:  退出程序。
r:  重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S:切换到累计模式。
s :  改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5。
f或者F :从当前显示中添加或者删除项目。
o或者O  :改变显示项目的顺序。
l: 切换显示平均负载和启动时间信息。即显示影藏第一行
m: 切换显示内存信息。即显示影藏内存行
t : 切换显示进程和CPU状态信息。即显示影藏CPU行
c:  切换显示命令名称和完整命令行。 显示完整的命令。 这个功能很有用。
M : 根据驻留内存大小进行排序。
P:根据CPU使用百分比大小进行排序。
T: 根据时间/累计时间进行排序。
W:  将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

TOP前五行统计信息:
(1)第一行是任务队列信息,同uptime命令的执行结果
(2)第二、三行为进程和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 

(3)第四五行为内存信息
Mem: 191272k total物理内存总量
173656k used使用的物理内存总量
17616k free空闲内存总量
22052k buffers用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used使用的交换区总量
192772k free空闲交换区总量
123988k cached缓冲的交换区总量。 内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。


(4) 进程信息

列名

含义

PID

进程id

PPID

父进程id

RUSER

Real user name

UID

进程所有者的用户id

USER

进程所有者的用户名

GROUP

进程所有者的组名

TTY

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

PR

优先级

NI

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

P

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

%CPU

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

TIME

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

TIME+

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

%MEM

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

VIRT

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

SWAP

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

RES

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

CODE

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

DATA

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

SHR

共享内存大小,单位kb

nFLT

页面错误次数

nDRT

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

S

进程状态。
            D=不可中断的睡眠状态
            R=运行
            S=睡眠
            T=跟踪/停止
            Z=僵尸进程

COMMAND

命令名/命令行

WCHAN

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

Flags

任务标志,参考 sched.h



4. vmstat 

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0 948544  93988  22672 443688    8   11    51    25   64   87  6  1 91  1

(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的时间比例。


<think>好的,用户现在问的是如何在Linux系统下查看系统进程内存占用的指令。我之前已经回答过关于git命令的问题,用户可能是在学习系统管理或者开发相关的内容。现在需要确定用户的具体需求是什么,可能他们正在管理服务器,或者优化程序性能,需要监控资源使用情况。 首先,用户可能对Linux基础命令不太熟悉,或者想了解有哪些常用工具可以使用。常见的进程内存查看指令有很多,比如top、ps、htop、free、vmstat等。需要区分这些工具的不同用途,以及它们的常用参数。 接下来要考虑用户的使用场景。如果是实时监控,可能会推荐top或htop,这些工具提供动态更新的视图。如果用户需要一次性快照,可能更适合ps命令结合特定参数。内存方面,free命令简单直接,而vmstat可以提供更详细的系统资源信息,包括内存、交换分区、IOCPU等。 用户可能还关心如何快速找到占用资源最多的进程,这时候需要提到排序功能,例如在top中使用交互命令按内存CPU排序,或者ps命令的--sort参数。此外,是否需要了解更友好的界面,比如htop,可能需要安装,但用户体验更好。 还要注意用户是否需要保存或导出数据,比如将ps的输出重定向到文件,或者使用工具如glances提供更全面的报告。另外,用户可能对某些参数不熟悉,需要给出具体的例子,比如ps aux的解释,以及free -h的人性化显示。 潜在的问题可能是用户遇到高内存占用,需要识别问题进程,或者优化应用程序。因此,除了查看命令,可能还需要指导他们如何根据输出采取行动,比如结束进程或调整配置。 最后,要确保回答结构清晰,分点说明每个命令的用途、常用参数示例,帮助用户逐步理解应用。同时,保持语言简洁,避免技术术语过于复杂,适合不同层次的用户理解。</think>以下是 Linux 系统中查看进程内存占用的常用指令及详细说明: --- ### **一、查看系统进程** #### **1. `ps` 命令** **用途**:静态查看当前进程快照(非实时)。 **常用参数组合**: - `ps aux`:查看所有用户的所有进程(含详细信息) ```bash ps aux # 输出列包括:USER, PID, %CPU, %MEM, VSZ(虚拟内存), RSS(物理内存), COMMAND 等 ``` - `ps -ef`:以完整格式列出进程 ```bash ps -ef # 输出列包括:UID, PID, PPID(父进程ID), C, STIME, TTY, TIME, CMD ``` **过滤特定进程**: ```bash ps aux | grep nginx # 查找与 "nginx" 相关的进程 ``` --- #### **2. `top` 命令** **用途**:实时动态监控进程及资源占用(按 CPU 使用率默认排序)。 **关键操作**: - 按 `P`:按 CPU 使用率排序 - 按 `M`:按内存使用率排序 - 按 `k`:终止指定 PID 的进程 - 按 `q`:退出界面 **输出重点列**: - `%CPU`:CPU 占用百分比 - `%MEM`:内存占用百分比 - `RES`:物理内存占用量(单位 KB) --- #### **3. `htop` 命令** **用途**:增强版 `top`(需安装,支持鼠标操作彩色界面)。 ```bash sudo apt install htop # Debian/Ubuntu 安装 htop # 启动 ``` **优势**: - 可视化内存/CPU 使用条 - 直接通过方向键或鼠标选择进程 - 支持树状结构查看进程关系 --- ### **二、查看内存占用** #### **1. `free` 命令** **用途**:查看系统内存及交换分区(Swap)使用情况。 **常用参数**: - `-h`:人性化显示单位(自动转换为 KB/MB/GB) - `-s 秒数`:间隔刷新(如 `free -h -s 5` 每 5 秒更新一次) **输出示例**: ```bash free -h total used free shared buff/cache available Mem: 7.7G 2.1G 3.2G 123M 2.4G 5.2G Swap: 2.0G 0B 2.0G ``` **关键字段**: - `available`:实际可用内存(含缓冲缓存可回收部分) --- #### **2. `vmstat` 命令** **用途**:查看内存、交换分区、IO CPU 的统计信息。 ```bash vmstat -w 1 # 每 1 秒刷新一次(-w 为宽格式输出) ``` **输出列含义**: - `memory` 部分:`free`(空闲内存)、`buff`(缓冲)、`cache`(缓存) - `swap` 部分:`si`(每秒从磁盘读入 Swap 的数据量)、`so`(每秒写入 Swap 的数据量) --- #### **3. `/proc/meminfo` 文件** **用途**:查看详细内存分配信息。 ```bash cat /proc/meminfo # 输出所有内存相关统计(单位 KB) ``` **关键字段**: - `MemTotal`:总物理内存 - `MemFree`:未使用的内存 - `Buffers`:缓冲内存 - `Cached`:缓存内存 - `SwapTotal` `SwapFree`:交换分区总量与剩余量 --- ### **三、快速定位高内存/CPU 进程** #### **1. 按内存排序显示进程** ```bash ps aux --sort=-%mem | head -n 10 # 显示内存占用前 10 的进程 ``` #### **2. 按 CPU 排序显示进程** ```bash ps aux --sort=-%cpu | head -n 10 # 显示 CPU 占用前 10 的进程 ``` #### **3. 使用 `top` 动态筛选** 在 `top` 界面中: - 按 `Shift + M`:按内存排序 - 按 `Shift + P`:按 CPU 排序 --- ### **四、总结表格** | **场景** | **推荐命令** | **特点** | |------------------------|--------------------|-----------------------------------| | 实时监控进程资源 | `top` 或 `htop` | 动态刷新,交互式操作 | | 一次性查看所有进程 | `ps aux` | 静态快照,适合脚本处理 | | 查看内存总量及使用情况 | `free -h` | 快速了解物理内存 Swap 使用 | | 分析内存详细分配 | `cat /proc/meminfo`| 查看内核级内存统计 | --- ### **注意事项** 1. **权限问题**:非 root 用户可能无法查看其他用户的进程详细信息。 2. **内存计算**:Linux 会利用空闲内存作缓存(`buff/cache`),因此 `free` 列显示较小是正常现象。 3. **进程终止**:谨慎使用 `kill` 或 `top` 中的 `k` 功能,避免误杀关键进程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值