0%

linux的top命令和内存参数

1. top命令

  • linux 截图
image-20240707225501852
  • mac截图
image-20240707225051559

1.1 介绍

top 命令界面分为两个主要部分:

  1. 系统信息部分:位于顶部,显示系统总体状态,包括系统时间、系统运行时间、用户会话、系统负载、CPU 使用率、内存和交换区使用情况等。
  2. 进程信息部分:位于下方,显示当前系统中各个进程的详细信息,包括进程 ID、用户、优先级、虚拟内存使用情况、物理内存使用情况、CPU 使用率、命令等。
image-20240707225501852

1.2 系统信息部分

  • uptime: 显示系统当前时间和启动累计时间。
  • load average: 显示系统的平均负载,分别是 1 分钟、5 分钟和 15 分钟的负载值。
  • tasks: 显示任务的总数和各状态的任务数,如运行、睡眠、停止和僵尸任务。
  • cpu(s): 显示 CPU 使用情况,包括用户态、系统态、低优先级用户态、空闲、IO 等待、硬中断、软中断和虚拟化时间。
  • mem: 显示物理内存的总量、使用量、空闲量和缓存量。
  • swap: 显示交换区的总量、使用量、空闲量和缓存量。

1.3 进程信息部分

  • PID: 进程 ID。
  • USER: 启动该进程的用户。
  • PR: 进程优先级。
  • NI: 进程的 nice 值,负值表示高优先级,正值表示低优先级。
  • VIRT: 进程使用的虚拟内存总量。【虚拟内存】
  • RES: 进程使用的常驻内存总量。【物理内存】
  • SHR: 进程使用的共享内存总量。【共享内存】
  • S: 进程状态(R: 运行,S: 睡眠,D: 不可中断睡眠,Z: 僵尸进程,T: 停止)。
  • %CPU: 进程占用的 CPU 百分比。
  • %MEM: 进程占用的内存百分比。
  • TIME+: 进程占用的 CPU 时间总和。
  • COMMAND: 启动进程的命令名。

1.3 常用操作

  • h: 显示帮助信息。
  • q: 退出 top
  • Space: 立即刷新。
  • P: 按 CPU 使用率排序。
  • M: 按内存使用量排序。
  • N: 按进程 ID 排序。
  • T: 按运行时间排序。
  • k: 终止一个进程。按 k 后,输入进程 ID,再按 回车
  • r: 重新调度一个进程的优先级。按 r 后,输入进程 ID,再输入新优先级值。
  • u: 只显示特定用户的进程。按 u 后,输入用户名。

top 命令的强大之处在于其实时性和灵活性,用户可以根据需求调整显示内容和排序方式,从而更好地监控和管理系统资源。

2. 内存参数

2.1 Mem, Swap

1. 物理内存

mem 代表物理内存(RAM),是计算机中用于临时存储和访问数据的高速存储器。物理内存的特点是速度快,但容量相对有限。top 命令中的 mem 部分详细描述了物理内存的使用情况,包括以下几个关键指标:

几个关键指标:

  • total: 总物理内存容量。
  • used: 已使用的物理内存量。
  • free: 空闲的物理内存量。
  • buffers/cache: 用于缓存和缓冲的内存量。

2. 交换内存

swap 代表交换分区或交换文件,是硬盘上的一个特殊区域,用于在物理内存不足时临时存储不常用的数据。交换分区的特点是容量较大,但速度比物理内存慢很多。top 命令中的 swap 部分详细描述了交换分区的使用情况,包括以下几个关键指标:

  • total: 总交换分区容量。
  • used: 已使用的交换分区量。
  • free: 空闲的交换分区量。
  • cached: 交换分区中缓存的内存量。

3. 区别

物理内存: 速度快,是 CPU 直接访问的存储区域。
交换分区: 速度慢,是硬盘上的存储区域,需要通过磁盘 I/O 访问。

物理内存: 容量有限,受计算机硬件限制。
交换分区: 容量相对较大,可以根据需要调整,但依赖于硬盘的总容量。

物理内存: 用于存储和快速访问当前运行的程序和数据。
交换分区: 用于在物理内存不足时,临时存储不活跃的进程和数据,以释放物理内存。

image-20240707225501852

2.2 进程的 RES, VIRT, SHR

  • RES 【Resident size (kb)】

    任务已使用的非交换物理内存。

  • VIRT 【Virtual Image (kb)】

    任务使用的虚拟内存总量。它包括所有代码、数据和共享库以及已换出的页面和已映射但未使用的页面。

  • SHR 【Shared Mem size (kb)】

    一个任务所使用的共享内存量。它只是反映了可能与其他进程共享的内存。

2.3 虚拟内存和交换分区

1. 虚拟内存

关于虚拟内存这个术语存在一些混淆,它实际上指的是以下两个非常不同的概念

  1. 使用磁盘页面来扩展计算机物理内存的概念量——正确的术语实际上是分页。
  2. 各种操作系统/CPU 使用的一种抽象,用来创建每个进程在单独的连续地址空间中运行的假象。

2. 交换分区

交换分区,是在不使用时用于存储额外RAM页的磁盘部分的名称。

2.4 虚拟内存增加,物理内存不增加

当进程通过内存映射文件(如共享库、动态链接库)访问文件内容时,操作系统会将文件的部分内容映射到进程的地址空间中。

这些映射的内容会占用进程的虚拟内存空间,但实际上并不会立即加载到物理内存中,而是在需要访问时才会被载入。因此,虚拟内存会增加,但物理内存不会立即增加。

3. 参考资料

可以加首页作者微信,咨询相关问题!