在Linux中,您可以为分区选择ext3和reiserfs之类的东西。对于交换分区,只需选择“交换”。这实际上是什么文件系统?您可以只创建一个ext3分区并使其成为交换分区吗?那会有什么不同?
John R. Graham
。
在Linux中,您可以为分区选择ext3和reiserfs之类的东西。对于交换分区,只需选择“交换”。这实际上是什么文件系统?您可以只创建一个ext3分区并使其成为交换分区吗?那会有什么不同?
John R. Graham
。
Answers:
交换不是实际的文件系统。它只是磁盘的保留部分,是没有特殊结构的原始可寻址内存。
mkswap使用一些附加信息为交换区域创建头。从util-linux-ng软件包的swapheader.h中:
struct swap_header_v1 {
char bootbits[1024]; /* Space for disklabel etc. */
unsigned int version;
unsigned int last_page;
unsigned int nr_badpages;
unsigned int padding[125];
unsigned int badpages[1];
};
标头版本1是当前使用的版本。那就是交换的原始结构背后的所有魔力。
Linux有两种形式的交换空间:交换分区和交换文件。交换分区是硬盘的一个独立部分,仅用于交换。没有其他文件可以驻留在那里。交换文件是文件系统中的特殊文件,位于系统文件和数据文件之间。
出于两个重要原因,交换是必要的。首先,当系统需要的内存多于物理可用内存时,内核会换出较少使用的页面,并将内存提供给需要内存的当前应用程序(进程)。其次,应用程序在其启动阶段使用的大量页面可能仅用于初始化,然后不再使用。系统可以换出那些页面,并为其他应用程序甚至磁盘缓存释放内存。
您可以通过两种方式创建交换空间:文件系统交换和设备(或原始)交换。使用文件系统交换,您可以在文件系统上创建文件并将其用作交换空间(就像在Windows上使用pagefile.sys看到的那样)。使用设备交换,您可以交换到专门为交换创建的分区。
哪个更好:
在“过去”的日子里,这种辩论变得更加有趣,因为:
为什么设备交换“更好”:由于您正在交换到原始分区,因此速度更快,因为您不必用索引节点和其他文件系统开销来处理文件系统的所有额外开销
然而,今天这种说法并没有真正成立。随着近来磁盘访问速度的不断发展,设备交换所花的时间并不比文件系统交换多得多。
为什么文件系统交换“更好”:更改大小容易得多。当您更改分区大小时,它比仅创建新文件困难得多。
但是今天,由于很多人使用LVM代替原始分区,因此很容易缩小和增加交换空间
如今,问题甚至更加棘手:如今,出于性能原因,大多数服务器都只为插入全部内存而付出了代价。(当RAM难以获得,并且通常只在服务器中放置4GB到8GB RAM时,这种争论曾经更加流行)
为什么我使用FILESYSTEM SWAP(通常进行交换)
这些天来,我指示我们的家伙使用4gig swap onl进行安装,并且所有Linux安装都使用相同的config / image。Oracle安装要求更高的交换使用率,因此对于将具有Oracle I的系统,我将使用文件系统交换来创建其余部分。您的应用程序可能有交换要求,在这种情况下,您可以稍后通过文件系统交换添加它。
这有帮助吗?
我在这里有详细的说明如何在Linux中执行此操作:http : //geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/