常用命令
- 查看内存使用情况: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的详细命令: ??常用命令: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指令
第一到第五行的详细说明如下:
-
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命令第七行是各个进程的监控:
- PID:进程id
- USER:进程所有者
- PR:进程优先级
- NI : nice值。负值表示高优先级,正值表示低优先级
- VIRT:进程使用的虚拟内存总量,单位kb
- RES:进程使用的、未被换出的物理内存大小,单位kb
- SHR:共享内存大小,单位kb
- S:进程状态
- %CPU:上次更新到现在的CPU时间占用百分比
- %MEM:进程使用的物理内存百分比
- TIME+:进程使用的CPU时间总计,单位1/100秒
- COMMAND: 进程名称(命令名/命令行)
??此界面显示的并不是所有进程,由于页面显示限制仅仅显示了这几行,我们可以通过top -b -n 1查看系统的所有进程的快照。
2.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查看驱动占用内存
- Module表示模块的名称
- Size表示模块大小
- Used 表示依赖的模块个数
- by表示依赖的模块内容
|