http://note.sdo.com/u/seeeyou/n/y8Wvx~jT5gpywE00Q000iR
内存
1.2.1
内存基础
通常包含物理内存和虚拟内存(virtual Memory
),好处是通过物理内存(RAM)
和部分硬盘空间(SWAP
)组合增大了总体的内存空间,坏处是由于硬盘部分的虚拟内存的性能有限,并且RAM
和SWAP
之间交换增加了系统的负担。
1.
[phoenix.lif@aliadmin036158 ~]$ free
2.
total used free shared buffers cached
3.
Mem:
7680000
7504764
175236
0
490772
3193856
4.
-/+ buffers/cache:
3820136
3859864
5.
Swap:
2096472
88
2096384
其中,Mem
:
(1) Total
为总的物理内存;
(2) Used
表示总计分配给缓存使用的数量(即buffers
和cache
,但可能部分还未实际使用);
(3)Free
表示未被分配的内存;
(4)share
表示共享内存,一般不会使用;
(5)buffers
:表示系统分配但未被使用的buffers
数量;
(6)Cached
:表示系统分配但未被使用的cache
数量。后面详细说明buffer
和cache
的区别。
-/+ buffers/cache:
(1)Used
表示实际使用的buffers
和cache
总量,即实际使用内存总量;
(2)Free
未被使用的buffer
,cache
及未被分配的内存之和,即系统可用内存。
Swap:
虚拟内存。如果系统物理内存用完了,但是仍有虚拟内存系统仍然可以运行虽然运行很慢;但是如果Swap
也用完了,系统就会发生错误,通常会出现"application
is out of memory"
的错误,严重时造成系统死锁。通常Swap
空间分配为物理内存的2-2.5
倍,但也不用完全按照这个标准,如确定内存完全够用也没必要分配太多,我们线上的服务器就没有分配太多的Swap
空间。
tips:
实际可用内存:Free(-/+ buffers/cache) = Free(Mem)+buffers(Mem)+Cached(Mem);
已分配内存:Used(Mem) = Used(-/+ buffers/cache)+ buffers(Mem) + Cached(Mem)
物理内存总大小:total
(Mem
) = used(-/+ buffers/cache) + free(-/+ buffers/cache)
1.2.2 Buffers & Cache
在 Linux
的实现中,文件 Cache
分为两个层面,一是 Page Cache
,另一个 Buffer Cache
,每一个 Page Cache
包含若干 Buffer Cache
。内存管理系统和 VFS
只与 Page Cache
交互,内存管理系统负责维护每项 Page Cache
的分配和回收。buffer cache
是块设备的读写缓冲区,更靠近存储设备,或者直接就是disk
的缓冲区。
磁盘操作有逻辑级(文件系统)和物理级(磁盘块),这两种缓存分别是缓存逻辑和物理级数据的。如我们进行的是文件系统操作,那么文件被缓存到Page Cache
,如需要刷新文件的时候,Page Cache
将交给Buffer Cache
去完成,因为Buffer
Cache
是缓存磁盘块的。即直接去操作文件就是使用Page Cache
,用dd
等命令直接操作磁盘块,就是buffer cache
缓存。
分享到:
相关推荐
文档来源自一个名为TinyClub的组织,并且在GitHub上有一个公开的仓库(<https://github.com/tinyclub/linux-doc>),同时还有一个在线的GitBook版本(<http://tinylab.gitbooks.io/linux-doc>)供用户查阅。...
本篇文章将详细解读QCAD的源码,涵盖编译配置过程以及核心设计理念。 首先,让我们从编译QCAD源码开始。QCAD主要基于C++编写,因此你需要一个支持C++11或更高版本的编译器,如GCC或Clang。在Linux系统上,通常使用`...
本篇文章将深入探讨如何在Java项目中使用给定的依赖库,包括`rome.jar`、`jdom-1.0.jar`,以及在WebLogic服务器和Linux 5 x64系统上运行的JDK 1.6环境下进行操作。 首先,`rome.jar`是Java中用于处理RSS和Atom ...
- **重采样**: 改变音频的采样率,`librosa.resample`是很好的工具。 5. **音频可视化** - Matplotlib库可以绘制波形图,展示音频的时间轴变化。 - librosa.display模块提供了画出STFT(短时傅里叶变换)谱图和...
在IT行业中,文件浏览器是一种非常基础且重要的工具,它允许用户在计算机系统中查看、管理、操作和组织文件。在Android平台上,文件浏览器是...对于希望深入理解Android应用开发的开发者来说,这是一个很好的实践案例。
这篇文章将详细讲解如何在Java中区分这两种路径以及如何使用它们。 **绝对路径**: 绝对路径是从根目录开始的完整路径,它指明了文件或目录的精确位置。在Unix/Linux系统中,绝对路径以正斜杠(/)开始,例如`/home...
1.功能:显示磁盘状态、内存状态和指定路径下指定文件的不连续数目。 2.类型:外部命令 3.格式:CHKDSK [盘符:][路径][文件名][/F][/V] 4.使用说明: (1)选用[文件名]参数,则显示该文件占用磁盘的...
这篇文章具有很好的参考价值,对大家有所帮助。下面让我们跟随小编一起看看吧。 首先,我们需要了解为什么需要将txt文件转成xls文件。txt文件是一种文本文件,用于存储纯文本数据,而xls文件则是一种电子表格文件,...
本篇文档主要涵盖了Java学习过程中的核心知识点,并且涉及到了部分Linux/Unix基础知识。通过这份笔记,我们能够深入了解Java语言的基础特性、面向对象的设计原则以及一系列高级框架的应用。此外,还简要介绍了Linux/...