linux 交换空间(space space)详解

内存和磁盘简介

正常的linux操作系统一般有两种内存,第一种就是我们熟知的RAM(random access memory),它是用来存储一段时间内频繁使用的数据和文档,电脑是不能直接读写非内存的东西。内存是一种失存储器,因此当断电的情况发生的时候,内存中的东西会丢失。

硬盘是用于长期存储数据和程序的磁性介质。即使电脑断电,存储在磁盘上的数据仍保持不变。CPU(中央处理器)不能直接访问硬盘上的程序和数据;它必须首先复制到RAM中,在RAM中,CPU可以访问它的编程指令和这些指令操作的数据。在引导过程中,计算机将特定的操作系统程序和数据从硬盘拷贝到RAM中,然后由计算机的处理器(即CPU)直接访问。

Swap Space 交换空间

swap space是上面说的现代linux系统两种内存中的第二种存储记忆(memory)。swap space 主要功能是当RAM被塞满之后,用磁盘空间来代替RAM空间。

举个栗子,假设你有一块8g的ram,当你运行的程序没有填满RAM的时候,一切都是正常运行的。然后你运行越来越多的程序的时候,RAM被塞满了,这是后你不得不关闭一些程序来释放内存以供你现在的程序正常运行。或者如果你给你的机器分配了swap space的时候,内核会使用一个memory management 来管理你内存中近期不用的程序,然后将这些相对较少使用的内存页交换到硬盘上专门为“分页”或交换指定的特殊分区。这种方式就会挪出更多的RAM空间供你使用。当然你如果想用这些在交换空间中的程序的时候 memory management会重新把它们移到RAM中。

因此在linux系统中的内存指的是RAM和swap的和,也被称为虚拟空间。

linux交换空间的类型

linux提供两种swap space,默认的大多数linux安装都只创建了一个交换分区(space partition),除此之外也可以使用专门配置的文件作为交换文件。交换分区是通过mkswap命令将其指定为交换空间的标准磁盘分区。而swap file是创建一个文件将读写的内存里读写的文件丢进去。但是不推荐使用swap file

操作系统颠簸(Trashing)

Trashing总是发生在虚拟内存满的时候,也就是说,当RAM和 swap space都近满的时候,系统在交swap apace和RAM之间来回分页内存块的时间太长了,以至于剩下的用于实际工作的时间很少。典型的症状就是:系统变得缓慢或完全没有响应,而硬盘活动灯会一直亮着。

使用命令free来显示CPU负载和内存使用情况,就会看到CPU负载非常高,而且是RAM和交换空间几乎完全被分配。

swap space分配

那么到底要分配多数swap space呢,可以按照下面表格来分配

发布了36 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/tyro_blog/article/details/103852231