linux查内存-freetop

Posted 冰梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux查内存-freetop相关的知识,希望对你有一定的参考价值。

一、free

显示当前系统未使用的和已使用的内存状态,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等
1、参数说明
-b:以Byte为单位显示内存使用情况; -k:以KB为单位显示内存使用情况; -m:以MB为单位显示内存使用情况;
-g 以GB为单位显示内存使用情况; -o:不显示缓冲区调节列; -s<间隔秒数>:持续观察内存使用状况; -t:显示内存总和列; -V:显示版本信息。
2、实例

total:内存总数;
used:已经使用的内存数;
free:空闲的内存数;
shared:当前已经废弃不用;
buffers:缓存内存数;
cached :缓存内存数。
-/+ buffer:用于存放要输出到disk(块设备)的数据,cache是存放从disk上读出的数据。这二者是为了提高IO性能,并由OS管理
-buffers/cache 的内存数:1397032 (等于第1行的 used - buffers - cached)
+buffers/cache 的内存数: 2752124 (等于第1行的 free + buffers + cached)
swap:交换分区

二、top

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等
1、参数说明
-b:以批处理模式操作; -c:显示完整的治命令; -d:屏幕刷新间隔时间; -I:忽略失效过程; -s:保密模式; -S:累积模式; -i<时间>:设置间隔时间; -u<用户名>:指定用户名; -p<进程号>:指定进程; -n<次数>:循环显示的次数。
2、实例

第一行,任务队列信息,具体参数说明情况如下:

14:18:28 — 当前系统时间

up 2 days, 5:44 — 系统已经运行了2天56小时44分钟

2 users — 当前有2个用户登录系统

load average: 1.08, 1.08, 0.98 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

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

第二行,Tasks — 任务(进程),具体信息说明如下:

系统现在共有377个进程,其中处于运行中的有2个,375个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行,cpu状态信息,具体属性说明如下:

11.3%us — 用户空间占用CPU的百分比。

2.0% sy — 内核空间占用CPU的百分比。

0.0% ni — 改变过优先级的进程占用CPU的百分比

86.6% id — 空闲CPU百分比

0.1% wa — IO等待占用CPU的百分比

0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.0% si — 软中断(Software Interrupts)占用CPU的百分比

第四行,内存状态,具体信息如下

20472700k total — 物理内存总量

20288656k used — 使用中的内存总量

180444k free — 空闲内存总量

253828k buffers — 缓存的内存量 

第五行,swap交换分区信息,具体信息说明如下

4194296k total — 交换区总量

43340k used — 使用的交换区总量

4150956k free — 空闲交换区总量

18809728k cached — 缓冲的交换区总量)

第七行以下:各进程(任务)的状态监控,项目列信息说明如下:

PID — 进程id

USER — 进程所有者

PR — 进程优先级

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

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

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

SHR — 共享内存大小,单位kb

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

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

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

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

COMMAND — 进程名称(命令名/命令行)

三、cat /proc/meminfo

MemTotal:        2052440 kB //总内存
MemFree:           50004 kB //空闲内存
Buffers:           19976 kB //给文件的缓冲大小
Cached:           436412 kB //高速缓冲存储器(http://baike.baidu.com/view/496990.htm)使用的大小
SwapCached:        19864 kB //被高速缓冲存储用的交换空间大小
Active:          1144512 kB //活跃使用中的高速缓冲存储器页面文件大小
Inactive:         732788 kB //不经常使用的高速缓冲存储器页面文件大小
Active(anon):     987640 kB //anon:不久
Inactive(anon):   572512 kB
Active(file):     156872 kB
Inactive(file):   160276 kB
Unevictable:           8 kB
Mlocked:               8 kB
HighTotal:       1177160 kB //The total and free amount of memory, in kilobytes, that is not directly mapped into kernel space.
HighFree:           7396 kB // The HighTotal value can vary based on the type of kernel used.
LowTotal:         875280 kB // The total and free amount of memory, in kilobytes, that is directly mapped into kernel space.  used. 
LowFree:           42608 kB //The LowTotal value can vary based on the type of kernel
SwapTotal:        489940 kB //交换空间总大小
SwapFree:         450328 kB //空闲交换空间
Dirty:               104 kB //等待被写回到磁盘的大小
Writeback:             0 kB //正在被写回的大小
AnonPages:       1408256 kB //未映射的页的大小
Mapped:           131964 kB //设备和文件映射的大小
Slab:              37368 kB //内核数据结构缓存的大小,可减少申请和释放内存带来的消耗
SReclaimable:      14164 kB //可收回slab的大小
SUnreclaim:        23204 kB //不可收回的slab的大小23204+14164=37368
PageTables:        13308 kB //管理内存分页的索引表的大小
NFS_Unstable:          0 kB //不稳定页表的大小
Bounce:                0 kB //bounce:退回
WritebackTmp:          0 kB //
CommitLimit:     1516160 kB
Committed_AS:    2511900 kB
VmallocTotal:     122880 kB //虚拟内存大小
VmallocUsed:       28688 kB //已经被使用的虚拟内存大小
VmallocChunk:      92204 kB
HugePages_Total:       0 //大页面的分配
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       10232 kB
DirectMap2M:      899072 kB

四、gnome-system-monitor

一个显示最近一段时间内的CPU、内存、交换区及网络使用情况的视图工具

五、ps aux --sort -rss

 

a 显示终端上的所有进程,包括其他用户的进程。
r 只显示正在运行的进程

x 显示所有程序,不以终端机来区分

 

六、vmstat

 

vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存

七、KDE System Monitor

 

以上是关于linux查内存-freetop的主要内容,如果未能解决你的问题,请参考以下文章

Windbg 查内存占用

linux内存泄漏怎么查

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

C 中的共享内存代码片段

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

微信小程序代码片段