查看Linux内存cpu使用情况,某一应用内存占用大小

查看Linux内存、cpu使用情况排序,某一应用内存占用大小,virt,res,shr,data的意义

1.知识点

1)top命令使用

2)如何查看某一应用内存占用大小

3)回收buff/cache

1.使用

1)使用top查看cpu、内存使用以及任务运行状态,从高到低进行排序

# 查看基本信息
top -c
# 排序
M


VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

DATA
1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的。

基本可以说RES是程序当前使用的内存量。

2)查看某一应用占用内存大小

方法一:通过进程号查看

# 例如查看kafka资源使用情况
# 查看kafka进程号
ps -ef | grep kafka
# 查看进程号占用资源(159156为ps得到的进程号)
top -p 159156
# 或者查看进程的status文件(159156为ps得到的进程号) ,VmRSS对应的值就是物理内存占用
cat /proc/159156/status

方法2:ps命令直接使用任务名

# 显示的第六个参数就是物理内存占用
ps -aux | grep kafka
# 查看内存占用前10名的程序
ps aux | sort -k4,4nr | head -n 10

3)对free -h 查看到的buff/cache 进行回收

# 在系统中除了内存将被耗尽的时候可以清缓存以外,我们还可以使用下面这个文件来人工触发缓存清除的操作
cat /proc/sys/vm/drop_caches

# 这个文件可以设置的值分别为1、2、3。它们所表示的含义为:
# 表示清除 page cache。
echo 1 > /proc/sys/vm/drop_caches
# 表示清除回收 slab 分配器中的对象(包括目录项缓存和 inode 缓存)。slab 分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的 page cache。
echo 2 > /proc/sys/vm/drop_caches
# 表示清除 page cache 和 slab 分配器中的缓存对象。
echo 3 > /proc/sys/vm/drop_caches

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值