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
缓存。
分享到:
相关推荐
Linux内存IO的培训PPT。 课程内容 Linux内存管理基础 I/O内存的访问 目标 理解Linux内存管理原理 掌握内核和用户空间内存分配函数的使用 掌握I/O内存的访问方法和步骤 第一章:内核地址空间 第二章:进程地址空间 ...
linux系统cpu、内存、IO等监控脚本 可以用作定时任务执行监控
在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述...
Linux下类似于ru adu的IO读写工具。适用于bios等底层开发程序员
linux下IO口驱动,可随意控制IO口输出高低电平
Linux下RapidIO子系统的分析与实现.pdf
详细介绍了LINUX如何访问外设IO内存的方法,包括动态访问和静态映射
几乎每一种外设都是通过读写设备上的寄存器来进行...CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采用哪一种则取决于CPU的体系结构。
磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,...要监测 IO 性能,有必要了解一下基本原理和 Linux 是如何处理硬盘和内存之间的 IO 的。
LINUX IO的操作文档,能直接下载到嵌入式开发板 上,直接字符型操作
Linux下侦测superio的debug工具,bios用的比较多。
基于linux下网络编程的入门,实现对文件的操作,对目录的操作,实现文件的所有函数,所有函数都通过详细的注释,让你真正的理解对文件的操作,是网络编程的最佳入门选择,所有的函数的参数都通过详细的注解
此文档描述了在linux操作系统下查看io状态的若干命令使用方法。
linux为了支持多个硬件体系,在IO访问上做了自己的接口。可以通过IO内存和IO端口这两种方式进行IO访问
linux io层次图
linux direct io 应用技术,配置指导
linux的应用,Linux下的文件及IO库编程,学好linux,这个你值得拥有。
基于Linux的RapidIO技术.pdf
这是讲解LInux的内存访问和IO技术的最好的文档,非常详细,看了就明白了
linux文件IO编程ppt,华清远见出品,还是很不错的