linux --free

free 命令查看

             total       used       free     shared    buffers     cached

Mem:       8163928    4958632    3205296          0     406392    1943600

-/+ buffers/cache:    2608640    5555288

Swap:      2104504      28428    2076076

Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。

第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别:

第二行的used和free是从OS角度来看,因为从对于OS来说,buffers&cached都属于被使用的

第三行的used和free是从应用程序角度来看,对应用程序来说,buffer和cached是用来提高文件读取性能的,当应用程序需要使用时,buffer和cache是可以被快速回收使用的

 

Linux还提供了一些工具帮助我们查看系统信息

/proc/meminfo 机器的内存使用信息
/proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。
/proc/pid/statm 进程所占用的内存

 

查看/proc/kcore文件的大小(内存镜像):
[root@scs-2 tmp]# ll -h /proc/kcore 
-r-------- 1 root root 4.1G Jun 12 12:04 /proc/kcore

 

添加内容:

通过free我们看到cache占用特别多,我们知道系统会自己进行释放,但是能不能手工释放呢?

/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段,我们也可以通过修改/proc文件来是内核做出调整,我们通过通过调整/proc/sys/vm/drop_caches来释放内存

/proc/sys/vm/drop_caches的默认值是0,

1、手动执行sync命令(sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)

2、echo 3 > /proc/sys/vm/drop_caches 设置为3

3、使用free查看内存使用情况

猜你喜欢

转载自smile029309.iteye.com/blog/1956096