`

[转]关于Linux cached 内存

 
阅读更多

今天测试MBS系统,AP的weblogic 只是设置了1.5G内存,但是经过3次稳定性测试,内存的利用率达到99%。

nmon的监控揭发发现存在5.6G的cached内存,下面介绍一下:

Linux与Windows不同,会存在缓存内存,通常叫做Cache Memory。有些时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存会很少。

 

什么是Cache Memory(缓存内存)

 

当你读写文件的时候,Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。

 

其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有内存可用。如果你希望手动去释放Cache Memory(缓存内存)的话也是有办法的。

 

释放Cache Memory(缓存内存):

 

用下面的命令可以释放Cache Memory:

 

[rootmin@localhost~]#echo 3 > /proc/sys/vm/drop_caches

 

Linux中如何释放cache内存

 

因为LINUX的内核机制,一般情况下不需要特意去释放已经使用的cache。这些cache起来的内容可以增加文件以及的读写速度。

先说下free命令怎么看内存

 

[rootmin@localhost~]# free

 

total used free shared buffers cached

 

Mem: 515588 295452 220136 0 2060 64040

 

-/+ buffers/cache: 229352 286236

 

Swap: 682720 112 682608

 

其中第一行用全局角度描述系统使用的内存状况:

total——总物理内存

used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存

free——完全未被使用的内存

shared——应用程序共享内存

buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)

cached——缓存,用于已打开的文件

注意:

total=used+free

used=buffers+cached (maybe add shared also)

第二行描述应用程序的内存使用:

前个值表示-buffers/cache——应用程序使用的内存大小,used减去缓存值

后个值表示+buffers/cache——所有可供应用程序使用的内存大小,free加上缓存值

注意

-buffers/cache=used-buffers-cached

+buffers/cache=free+buffers+cached

第三行表示swap的使用:

used——已使用

free——未使用

 

cache释放:

 

1.   To free pagecache:

[rootmin@localhost~]#echo 1 > /proc/sys/vm/drop_caches

 

2.   To free dentries and inodes:

 

[rootmin@localhost~]#echo 2 > /proc/sys/vm/drop_caches

 

3.   To free pagecache, dentries and inodes:

 

[rootmin@localhost~]#echo 3 > /proc/sys/vm/drop_caches

 

说明,释放前最好sync一下,防止丢数据

 

原文地址:

http://hi.baidu.com/litertiger/item/d3370e189669980ce65c3617

分享到:
评论

相关推荐

    Linux系统查看内存使用率

    Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如:  Mem: 4086496k total, 4034428k used, 52068k free, 112620k buffers  Swap: 4192956k total,...

    手动释放Linux服务器内存(具体操作步骤)

    Linux服务器在发现内存不足时,会自动清理cached区域,释放内存,然后继续增大cache,free继续减少。其实手动降低内存使用率的方法也就是图一时之快而已

    Linux之分配 swap 分区详解

    cached(缓存):是指把读取出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取,加速了数据的读取过程 buffer(缓冲):是指在写入数据时,先把分散的写入操作保存到内存当中,当达到一定...

    Linux服务器巡检报告(2).doc

    0.0% hi 0.0% si 第五行以后物理使用的物理空闲内存总量 377544k buffers Swap: 18481144k total 320k used 18480824k free 7835708k cached 用作交换区总量 使用的交换区总量 空闲交换区总量 缓冲的交换区总量。...

    简单了解Linux性能监控命令free

    linux提供了很多命令来协助我们快速定位到错误,free命令是Linux最常用的命令之一:它可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下未被使用的内存,以及缓冲区和缓存各自占用的内存情况。...

    Linux Page Cache参数调优

    也就是说当脏数据所占用的内存占(MemFree + Cached – Mapped)内存的内存的比例超过dirty_background_ratio的时候会触发pdflush刷新脏数据。 可以看出这两个参数是有联系的。比如把dirty_expire_c

    Android手机内存进程优化设置技巧

    Android不同于Linux,有一套自己独特的进程管理模块,这个模块有更强的可定制性,可根据“oom_adj”值的范围来决定进程管理策略,比如可以设定“当内存小于X时,结束“oom_adj”大于Y的进程”。 这给了进程管理脚本...

    Docker 容器内存监控原理及应用

    要明白docker容器内存是如何计算的,首先要明白linux中内存的相关概念。 使用free命令可以查看当前内存使用情况。 [root@localhost ~]$ free total used free shared buffers cached Mem: 264420684 213853512 ...

    jmeter 目录结构详细讲解

    jmeter.properties 系统配置文件(内存、字符编码、日志级别等设置都在该文件) jmeter-server.bat windows分布式测试要用到的服务器配置 jmeters-server linux分布式测试要用的服务器配置 其中系统配置文件中的SSL...

    mysql下mysql-udf-http效率测试小记

    看到张宴的博客上关于”http/rest客户端的文章”,怎样安装啥的直接都跳过,下面直接进入测试阶段,测试环境:虚拟机 代码如下: [root@localhost ~]# uname -a Linux sunss 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:...

    服务器运维管理手册.doc

    XXXX有限公司 服务器运维管理手册 XXXX有限... 内存监控(free -m) 描述: total:总计物理内存的大小 used:已使用多大 free:可用有多少 shared:多个进程共享的内存总额 buffers/cached:磁盘缓存的大小。 第三行(-/+ buf

    sesvc.exe 阿萨德

    * Holds cached entrySet(). Note that AbstractMap fields are used * for keySet() and values(). */ transient Set,V>> entrySet; /** * The number of key-value mappings contained in this map. */ ...

Global site tag (gtag.js) - Google Analytics