Linux系统查看内存使用情况

常用命令

  • 查看内存使用情况:free
  • 显示进程信息(包括CPU、内存使用等信息):top、ps
  • 查看驱动占用内存:lsmod

一、查看系统内存free

  free命令可以显示当前系统未使用的和已使用的内存大小,还可以显示被内核使用的内存缓冲区
在这里插入图片描述

1.1 说明如下:

  • Mem:内存的使用信息
  • Swap:交换空间的使用信息
  • total:总计物理内存的大小
  • used:已使用物理内存
  • free:可用物理内存
  • shared:多个进程共享的内存总额
  • buffers/cached:缓存缓冲使用物理内存大小
  • available:还可以被应用程序使用的物理内存大小

1.2 物理内存之间的关系

  total = used + free + buffer/cache
  avaiable = free + buffer/cache(服务器或者公共云普通用户有部分buffer/cache是用不了的就会有avaiable < free + buffer/cache)

1.3 free与available的区别

  free是未被使用的内存
  available是应用程序认为可用的内存
注意:Linux为了提升读写性能,消耗一部分内存资源作为缓存或者缓冲内存,在内核看来这部分buffer/cache属于已被使用的内存;在应用程序申请内存,而free内存不够时,就会让内核回收buffer和cache来满足应用程序的内存需求。

1.4 free参数说明

  通过free --help查看free的详细命令:
Linux系统查看内存使用情况_第1张图片
  常用命令:free -h
在这里插入图片描述

二、查看进程占用内存

  top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令可以有效的发现系统的缺陷出在哪里,如内存不够、CPU处理能力不够、IO读写过高等。

2.1 参数说明:

  • d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
  • q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
  • c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
  • S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来
  • s : 安全模式,将交谈式指令取消, 避免潜在的危机
  • i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程
  • n : 更新的次数,完成后将会退出 top
  • b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

  在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。交互命令如下:

  • h:显示帮助画面,给出一些简短的命令总结说明
  • k:终止一个进程
  • i:忽略闲置和僵死进程,这是一个开关式命令
  • q:退出程序
  • r:重新安排一个进程的优先级别
  • f或者F:从当前显示中添加或者删除项目
  • o或者O:改变显示项目的顺序
  • l:切换显示平均负载和启动时间信息
  • m:切换显示内存信息
  • t:切换显示进程和CPU状态信息
  • c:切换显示命令名称和完整命令行
  • M:根据驻留内存大小进行排序
  • P:根据CPU使用百分比大小进行排序
  • T:根据时间/累计时间进行排序
  • w:将当前设置写入~/.toprc文件中

2.2 直接在终端中输入top指令

Linux系统查看内存使用情况_第2张图片
第一到第五行的详细说明如下:

  • top - 11:32:49 当前系统时间

  • up 19:18 系统已经运行了19h18min

  • 4 users 共有4个用户为登录状态

  • load average: 0.00, 0.01, 0.05 系统负载,即任务队列的平均长度,load average后面的三个数字分别表示距离现在一分钟,五分钟,十五分钟的负载情况。

  • 注意:load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

  • Tasks: 140total 总进程数

  • 2 running 正在运行的进程数

  • 138 sleeping 睡眠的进程数

  • 0 stopped 停止的进程数

  • 0 zombie 冻结进程数

  • %Cpu(s): 0.0 us, 用户空间占用CPU百分比(用户态使用CPU占比)

  • 0.6 sy 内核空间占用CPU百分比 (系统态使用CPU占比)

  • 0.0 ni 用做nice加权的进程分配的用户态cpu时间比

  • 99.4 id 空闲的cpu时间比

  • 0.0 wa IO wait ,cpu等待磁盘写入完成时间

  • 0.0 hi Hardware IRQ,硬中断消耗时间

  • 0.0 si Software IRQ,软中断消耗时间

  • 0.7 st 被hypervisor(管理程序,一般为服务器或者虚拟机)偷取时间

  • KiB Mem : 16265580 total 物理内存总量,单位:Mb

  • 3006752 free 空闲内存总量

  • 3153224 used 使用的物理内存总量

  • 10105604 buff/cache 用作内核缓存的内存量

  • KiB Swap: 0 total 交换区总量

  • 0 free 空闲交换区总量

  • 0 used 使用的交换区总量

  • 12773304 avail Mem 在不交换的情况下,对启动新应用程序可用内存的估计

  • top命令第七行是各个进程的监控:

  1. PID:进程id
  2. USER:进程所有者
  3. PR:进程优先级
  4. NI : nice值。负值表示高优先级,正值表示低优先级
  5. VIRT:进程使用的虚拟内存总量,单位kb
  6. RES:进程使用的、未被换出的物理内存大小,单位kb
  7. SHR:共享内存大小,单位kb
  8. S:进程状态
  9. %CPU:上次更新到现在的CPU时间占用百分比
  10. %MEM:进程使用的物理内存百分比
  11. TIME+:进程使用的CPU时间总计,单位1/100秒
  12. COMMAND: 进程名称(命令名/命令行)
      此界面显示的并不是所有进程,由于页面显示限制仅仅显示了这几行,我们可以通过top -b -n 1查看系统的所有进程的快照。

2.3 查看内核占用内存

Linux系统查看内存使用情况_第3张图片
  一些参数解释:

  • MemTotal: 总内存
  • MemFree: 空闲内存
  • Buffers: 给文件的缓冲大小
  • Cached: 高速缓冲存储器使用的大小
  • SwapCached: 被高速缓冲存储用的交换空间大小
  • Active: 活跃使用中的高速缓冲存储器页面文件大小
  • Inactive: 不经常使用的高速缓冲存储器页面文件大小
  • SwapTotal: 交换空间总大小
  • SwapFree: 空闲交换空间
  • Dirty: 等待被写回到磁盘的大小
  • Writeback: 正在被写回的大小
  • AnonPages: 未映射的页的大小
  • Mapped: 设备和文件映射的大小
  • Slab: 内核数据结构缓存的大小,可减少申请和释放内存带来的消耗
  • SReclaimable: 可收回slab的大小
  • SUnreclaim: 不可收回的slab的大小23204+14164=37368
  • PageTables: 管理内存分页的索引表的大小
  • NFS_Unstable: 不稳定页表的大小
  • VmallocTotal: 虚拟内存大小
  • VmallocUsed: 已经被使用的虚拟内存大小
  • HugePages_Total: 大页面的分配

三、lsmod查看驱动占用内存

Linux系统查看内存使用情况_第4张图片

  • Module表示模块的名称
  • Size表示模块大小
  • Used 表示依赖的模块个数
  • by表示依赖的模块内容

你可能感兴趣的:(linux,linux)