关于linux:Linux-Memory

13次阅读

共计 877 个字符,预计需要花费 3 分钟才能阅读完成。

free -h


             total    used    free    shared    buff/cache   available
Mem:    3.7G   1.1G    1.4G    1.0M        1.2G              2.4G
Swap:    0B       0B        0B

used:           已应用内存
free:目前残余内存
shared:        多个程序共享应用的内存
buff/cache:  文件查找,inode,之类的缓存,进步性能
available:示意应用程序能够申请到的内存


buff(Buffer Cache) 是一种 IO 缓存,用于内存和硬盘的缓冲,是 io 设施的读写缓冲区。依据磁盘的读写设计的,把扩散的写操作集中进行,缩小磁盘碎片和硬盘的重复寻道,从而进步零碎性能。cache(Page Cache)是一种高速缓存,用于 CPU 和内存之间的缓冲 , 是文件系统的 cache。把读取过的数据保存起来,从新读取时若命中(找到须要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会依据读取频率进行组织,把最频繁读取的内容放在最容易找到的地位,把不再读的内容一直往后排,直至从中删除。它们都是占用内存。两者都是 RAM 中的数据。简略来说,buff 是行将要被写入磁盘的,而 cache 是被从磁盘中读出来的。可应用内存 = free + buff/cache
已应用内存 = used + shared + buff/cache


革除 buff/cache(高并发下慎用,革除 cache,间接读取硬盘会造成压力过大,呈现不良状况)* sync:将所有未写的零碎缓冲区写到磁盘中,蕴含已批改的 i -node、已提早的块 I / O 和读写映射文件
* echo 1 > /proc/sys/vm/drop_caches:革除 page cache
* echo 2 > /proc/sys/vm/drop_caches:革除回收 slab 分配器中的对象(包含目录项缓存和 inode 缓存)。slab 分配器是内核中治理内存的一种机制,其中很多缓存数据实现都是用的 pagecache。* echo 3 > /proc/sys/vm/drop_caches:革除 pagecache 和 slab 分配器中的缓存对象。/proc/sys/vm/drop_caches 的值, 默认为 0 
正文完
 0