微服务问题定位——free

free

功能

显示系统使用和空闲的内存情况,包括物理内存和交互区内存(swap)和内核缓冲区内存

option参数

-b 以Byte为单位显示内存使用情况

-k 以KB为单位显示内存使用情况

-m 以MB为单位显示内存使用情况

-g 以GB为单位显示内存使用情况

-o 不显示缓冲区调节列

-s<间隔秒数> 持续观察内存使用状况

-t 显示内存总和列

-V 显示版本信息

读者可以使用man free或者free -help查看完整参数列表。

样例

图片
这边关注第二行的swap的used指标,如果使用的值较大,则表示系统的内存处于不够使用的情况

为何swap used是一个指标

swap又称为交换分区,当系统的内存小于额定值的时候,内核(OS)会将系统的一部分物理内存释放出来用于当前线程的使用,一般是很久没有操作过的程序会被释放,释放的物理内存被放入到交换区,然后等当前线程执行完毕,内存富余时重新放入物理内存。

1
2
3
4
5
6
7
8
9
10
例如:物理内存,交换区,当前线程,进程x(目前存在于物理内存中)

1.当前线程 向 物理内存 申请执行所需的内存空间
2.物理内存 发现没有空间了 查找到 进程x 很久没有操作过
3.物理内存 将 进程x 释放到 交换区
4.物理内存 说 嘿 当前线程 你可以进来执行了
5.当前线程 执行完毕 嘿 我执行完了 让那哥们进来吧
6.物理内存 将 进程x 重新载入

以上就是简略的过程。

显示 Gitment 评论