热门搜索 :
考研考公

如何优化Linux系统的内存使用

发布网友 发布时间:2022-04-21 18:15

我来回答

1个回答

热心网友 时间:2022-05-04 13:07

    观察内存使用问题,free是很好用的一个命令

    free -g

    Mem:表示物理内存统计

    total:表示物理内存总量(total = used + free)used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。free:未被分配的内存。shared:共享内存,一般系统不会用到,这里也不讨论。buffers:系统分配但未被使用的buffers 数量。cached:系统分配但未被使用的cache 数量。

    -/+ buffers/cache:表示物理内存的缓存统计

    used2:也就是第一行中的used – buffers-cached 也是实际使用的内存总量。 //used2为第二行free2= buffers1 + cached1 + free1 //free2为第二行、buffers1等为第一行free2:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。

    性能相关

    buffers与cached的区别

    对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。所以从应用程序的角度来说 可用内存=系统free memory+buffers+cached.

    buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.cached是用来给文件做缓冲。那就是说:buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件,如果你想知道他是不是真的生效,你可以试一下,先后执行两次命令#man X ,你就可以明显的感觉到第二次的开打的速度快很多。

    cached实验:在一台没有什么应用的机器上做会看得比较明显。记得实验只能做一次,如果想多做请换一个文件名。

    #free#man X#free#man X#free

    你可以先后比较一下free后显示buffers的大小。

    buffers实验:

    #free#ls /dev#free

    你比较一下两个的大小,当然这个buffers随时都在增加,但你有ls过的话,增加的速度会变得快,这个就是buffers/chached的区别。

    因为Linux将你暂时不使用的内存作为文件和数据缓存,以提高系统性能,当你需要这些内存时,系统会自动释放(不像windows那样,即使你有很多空闲内存,他也要访问一下磁盘中的pagefiles)

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top