导航

Linux内存解读

Posted on 2017-11-30 18:06  困或  阅读(413)  评论(0编辑  收藏  举报

1.free -m命令

[root@crawler ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3823        525       3297          0         29        154
-/+ buffers/cache:        341       3481
Swap:          199        121         78

  [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:                 3823        525       3297          0         29        154
-(buffers/cache):                341
+(buffers/cache):                          3481
Swap:                199         121         78

  [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都是操作系统的行为,还要看操作系统如何实现。