linux积累--buffers(缓冲)&cache(缓存)&swap(虚拟内存)&free

用free -h 查看:
在这里插入图片描述

  • total:内存总数;
  • used:已经使用的内存数;
  • free:空闲的内存数;
  • shared:当前已经废弃不用;
  • buff/cache:缓存内存数;
    关系:total = used + free
  1. 缓存(cache):

把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。

优点:减少系统调用次数,降低CPU上下文切换和磁盘访问频率。
cache是高速缓存,用于CPU和内存之间的缓冲

  1. 缓冲(buffers):

根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容(即写入磁盘),也可以通过sync命令手动清空缓冲
buffer是I/O缓存,用于内存和硬盘的缓冲

  1. 虚拟内存(Swap):

Swap意思是交换分区,通常我们说的虚拟内存,是从硬盘中划分出的一个分区。当物理内存不够用的时候,内核就会释放缓存区(buffers/cache)里一些长时间不用的程序,然后将这些程序临时放到Swap中,也就是说如果物理内存和缓存区内存不够用的时候,才会用到Swap。

swap清理:swapoff -a && swapon -a

free: 可用内存

参考:

linux下的缓存机制buffer、cache、swap - 运维总结 ["Cannot allocate memory"问题]:https://www.cnblogs.com/kevingrace/p/5991604.html
虚拟内存高说明:https://www.cnblogs.com/ywcz060/p/5565801.html(我咋感觉这篇文章不对呢)
Linux 虚拟内存和物理内存的理解:https://blog.csdn.net/penzchan/article/details/12882277

相关:

swappiness(0~100)

  • Linux的一个内核参数,控制系统在进行swap时,内存使用的相对权重。https://www.maixj.net/ict/swappiness-22576
  • 值越低,就会让Linux系统尽量少用swap分区,多用内存;参数值越高就是反过来,使内核更多的去使用swap空间
  • Ubuntu系统swappiness默认值为60,表示的含义可以这样来理解,当剩余物理内存低于40%(40=100-60)时,开始使用swap分区。
    swappiness=0 完全使用内存;swappiness=100 完全使用swap

缺页中断

  • malloc()和mmap()等内存分配函数,在分配时只是建立了进程虚拟地址空间,并没有分配虚拟内存对应的物理内存。
  • 当进程访问这些没有建立映射关系的虚拟内存时,处理器自动触发一个缺页异常。

CPU上下文切换

  • CPU给每个进程一定的服务时间,当时间片用完后,内核从正在运行的进程中收回处理器,同时把进程当前运行状态保存下来,然后加载下一个任务,这个过程叫做上下文切换。实质上就是被终止运行进程与待运行进程的进程切换。

https://virtual.51cto.com/art/201903/593315.htm?pc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值