Linux内存解读
1.free -m命令
[root@crawler ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[1]第一行:total:总的物理内存。used:已经使用的物理内存。free:剩余的物理内存。buffers :buffers占用的物理内存。cached :cached占用的物理内存。
第二行:used:应用程序使用的物理内存。free:应用程序可用的物理内存。
第三行:total:swap总内存。used:已经使用的swap内存。free:剩余的swap内存。
[2]buffers和cached内存是操作系统为了提高系统性能,系统临时占用的内存,如果应用程序内存不够用了,可以随时释放,所以第二行的意思就是对应用程序来说的已用内存和可用内存,继续解释就是:
total used free shared buffers cached
Mem:
-(buffers/cache):
+(buffers/cache):
Swap:
[3]总之,第一行展示的是系统的内存使用情况,第二行就是对应用程序来说的内存使用情况,第三行是交换区内存的使用情况。
2.swap内存
[1]swap就是交换区的意思,swap内存占用的是磁盘空间,当物理内存不够用的时候,可以把物理内存先放到swap内存里面,后面可以再取回到物理内存里面。
[2]设置使用swap的时机:/proc/sys/vm/swappiness,这里面的值(默认是60)就是当物理内存的使用百分比超过这个值时,便开始使用swap内存。
3.buffers和cached内存
[1]buffer和cache是为了提高系统性能,系统申请的内存。
[2]buffer:缓冲区的意思。例如程序向磁盘写入100次数据,系统可以把每10次的数据存到buffer里面,然后一次性写到磁盘,起到了缓冲的作用。
cache:缓存的意思。例如从磁盘读了一些数据,系统可以把这些数据存到cache里面,下次需要读相同数据时,就不用再次读磁盘了,起到了缓存的作用。
[3]一般情况下,buffer是用来写缓冲,而cache是用来读缓存,即write-buffer和read-cache,当然buffer和cache都可以混用,看自己的情况使用。当然上面说的这些内存cache和buffer都是操作系统的行为,还要看操作系统如何实现。
Linux内存解读的更多相关文章
- Linux内存管理 (25)内存sysfs节点解读
1. General 1.1 /proc/meminfo /proc/meminfo是了解Linux系统内存使用状况主要接口,也是free等命令的数据来源. 下面是cat /proc/meminfo的 ...
- Linux内存寻址之分页机制
在上一篇文章Linux内存寻址之分段机制中,我们了解逻辑地址通过分段机制转换为线性地址的过程.下面,我们就来看看更加重要和复杂的分页机制. 分页机制在段机制之后进行,以完成线性—物理地址的转换过程.段 ...
- Linux内存管理 (5)slab分配器
专题:Linux内存管理专题 关键词:slab/slub/slob.slab描述符.kmalloc.本地/共享对象缓冲池.slabs_partial/slabs_full/slabs_free.ava ...
- Linux内存管理 (9)mmap
专题:Linux内存管理专题 关键词:文件映射.匿名映射.私有映射.共享映射 mmap/munmap是常用的一个系统调用,使用场景是:分配内存.读写大文件.连接动态库文件.多进程间共享内存. 更详细解 ...
- Linux内存寻址之分段机制及分页机制【转】
前言 本文涉及的硬件平台是X86,如果是其他平台的话,如ARM,是会使用到MMU,但是没有使用到分段机制: 最近在学习Linux内核,读到<深入理解Linux内核>的内存寻址一章.原本以为 ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 浅谈Linux内存管理机制
经常遇到一些刚接触Linux的新手会问内存占用怎么那么多?在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,在这 ...
- linux内存管理
一.Linux 进程在内存中的数据结构 一个可执行程序在存储(没有调入内存)时分为代码段,数据段,未初始化数据段三部分: 1) 代码段:存放CPU执行的机器指令.通常代码区是共享的,即其它执行程 ...
- Linux 内存管理
查看Linux内存使用情况 free -m Linux内存清理:绝大多数情况下都不需要此操作,因为cache的内存在需要的时候是可以自动释放的- 最好先sync几次,再清理内存,有下面三个级别,数值越 ...
随机推荐
- Python第十课学习
Python第十课学习 www.cnblogs.com/yuanchenqi/articles/5828233.html 函数: 1 减少代码的重复 2 更易扩展,弹性更强:便于日后文件功能的修改 3 ...
- 同一个服务器部署两个Tomcat并用Nginx实现反向代理
需求场景:由于服务器只有80端口可供外网访问,但需要部署两台tomcat来运行两个不同的项目,所以选择了nginx做反向代理 一个upstream tomcat_server对应一个 locatio ...
- C语言权威指南和书单 - 专家级别
注: 点击标题即可下载 1. Advanced Programming in the UNIX Environment, 3rd Edition 2. Essential C 3. Computer ...
- angular 实现左侧和顶部固定定位布局
1 布局基于angular ng-zorro组件库实现 由于项目中使用了组件库并且要求响应式布局,卡在这个坑上两天,多次调试后终于解决 代码仅供参考,由于没有上传依赖的库和组件包无法直接运行,提供代码 ...
- jq ajax数据交互
get 与 post 的区别 了解和使用 get和post是HTTP与服务器交互的方式, 说到方式,其实总共有四种:put,delete,post,get. 他们的作用分别是对服务器资源的增,删,改, ...
- 约瑟夫斯问题-java版数组解法和链表解法
10个人围成一圈,从1到10编号,从1开始数,数到3或3的倍数的位置,则该位置的人出局,求最后剩下哪一个号? 数组解法: 数组存放数组:a[10]存在1到10编号人 数组遍历到尾部又从头遍历:遍历数组 ...
- hdu 1698 (延迟标记+区间修改+区间求和)
In the game of DotA, Pudge's meat hook is actually the most horrible thing for most of the heroes. T ...
- bond模式
1.mode=0(balance-rr)(平衡抡循环策略) 链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路.交换机需要配置聚合口,思科叫port channel.特点:传输数据包顺序 ...
- ActiveMQ (三)—持久化消息
ActiveMQ的另一个问题就是只要是软件就有可能挂掉,挂掉不可怕,怕的是挂掉之后把信息给丢了,所以本节分析一下几种持久化方式: 一.持久化为文件 ActiveMQ默认就支持这种方式,只要在发消息时设 ...
- xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files'
xtrabackup备份MySQL报错:InnoDB: Error number 24 means 'Too many open files' 1.使用xtrabackup备份MySQL时出现如下报错 ...