本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
虚拟内存是一种技术,通过使用硬盘驱动器作为临时存储,允许系统使用比 RAM 形式的物理可用内存更多的内存。这允许同时运行更多程序并可以提高性能。
交换是将数据从 RAM 移动到硬盘驱动器并根据需要再次移动回来的过程。当系统内存不足时,内核将开始将数据交换到硬盘驱动器以释放内存。这可能会导致系统变慢,因为硬盘驱动器比 RAM 慢得多。
虚拟内存是一种技术,通过使用硬盘驱动器作为临时存储,允许系统使用比 RAM 形式的物理可用内存更多的内存。这允许同时运行更多程序并可以提高性能。
当一个程序启动时,操作系统会分配一定数量的内存供其使用。该内存用于程序的代码和数据。如果程序试图使用比已分配的更多的内存,则会发生错误。
虚拟内存允许操作系统为程序分配比实际可用内存更多的内存。当程序试图访问这块额外的内存时,操作系统会透明地将必要的数据从硬盘驱动器复制到 RAM 中。此过程称为交换。
交换是将数据从 RAM 移动到硬盘驱动器并根据需要再次移动回来的过程。当系统内存不足时,内核将开始将数据交换到硬盘驱动器以释放内存。这可能会导致系统变慢,因为硬盘驱动器比 RAM 慢得多。
Linux 使用一种称为虚拟内存的请求分页技术。这意味着数据仅在需要时才从硬盘驱动器复制到 RAM。这与预分页等技术形成对比,预分页技术将数据从硬盘驱动器复制到 RAM,即使不需要也如此。
按需分页效率更高,因为它只复制实际需要的数据。但是,如果需要大量数据并且 RAM 中没有数据,它可能会导致系统速度变慢。
与物理内存相比,虚拟内存有几个优点:
可以同时运行更多程序,因为每个程序占用的内存更少。
操作系统可以更有效地使用磁盘空间,因为它不需要为每个程序分配连续的内存块。
操作系统可以避免像数据不在虚拟内存中那样频繁地将数据复制到硬盘驱动器或从中复制数据。
虚拟内存允许操作系统保护每个程序的地址空间不受其他程序的影响。这称为内存地址保护。
虚拟内存也有一些缺点:
当数据被复制到硬盘驱动器和从硬盘驱动器复制时,系统会变慢。
硬盘驱动器比 RAM 慢很多,因此系统将无法像所有数据都在 RAM 中一样快速运行。
如果系统使用大量虚拟内存,硬盘驱动器会很快填满。
Linux 使用一个名为 swap 的程序来管理虚拟内存。 swap
程序负责为虚拟内存分配硬盘驱动器空间,并根据需要将数据复制到硬盘驱动器或从硬盘驱动器复制数据。
swap
程序是使用 /etc/fstab
文件配置的。该文件包含硬盘驱动器上所有分区的列表以及有关它们的其他信息。 swap
程序将在此文件中查找以 /swap
开头的行,并将其中列出的分区用于虚拟内存。
这是一个示例 /etc/fstab
文件:
/dev/sda1 /boot ext4 默认值 0 2
/dev/sda2 / ext4 默认值 0 1
/dev/sda3 swap 交换默认值 0 0
在此示例中,“/dev/sda3”分区用于虚拟内存。
/etc/fstab
文件也可用于为 swap
程序配置其他选项。例如,“swappiness”选项可用于控制“swap”程序将数据复制到硬盘驱动器和从硬盘驱动器复制数据的频率。
swappiness
选项是一个介于 0 和 100 之间的数字,用于控制 swap
程序将数据复制到硬盘驱动器和从硬盘驱动器复制数据的频率。值为 0 表示 swap 程序只会在系统内存不足时将数据复制到硬盘驱动器。值为 100 意味着即使系统内存不足,“swap”程序也会将数据复制到硬盘驱动器。
swappiness
的默认值为 60。这意味着 swap
程序将在系统有 60% 的可用 RAM 时开始将数据复制到硬盘驱动器。
虚拟内存是一种技术,通过使用硬盘驱动器作为临时存储,允许系统使用比 RAM 形式的物理可用内存更多的内存。这允许同时运行更多程序并可以提高性能。
交换是将数据从 RAM 移动到硬盘驱动器并根据需要再次移动回来的过程。当系统内存不足时,内核将开始将数据交换到硬盘驱动器以释放内存。这可能会导致系统变慢,因为硬盘驱动器比 RAM 慢得多。
Linux 使用一种称为虚拟内存的请求分页技术。这意味着数据仅在需要时才从硬盘驱动器复制到 RAM。这与预分页等技术形成对比,预分页技术将数据从硬盘驱动器复制到 RAM,即使不需要也如此。
按需分页效率更高,因为它只复制实际需要的数据。但是,如果需要大量数据并且 RAM 中没有数据,它可能会导致系统速度变慢。
swap
程序负责为虚拟内存分配硬盘驱动器空间,并根据需要将数据复制到硬盘驱动器或从硬盘驱动器复制数据。 swap
程序是使用 /etc/fstab
文件配置的。该文件包含硬盘驱动器上所有分区的列表以及有关它们的其他信息。 swap
程序将在此文件中查找以 /swap
开头的行,并将其中列出的分区用于虚拟内存。
swappiness
选项是一个介于 0 和 100 之间的数字,用于控制 swap
程序将数据复制到硬盘驱动器和从硬盘驱动器复制数据的频率。值为 0 表示 swap 程序只会在系统内存不足时将数据复制到硬盘驱动器。值为 100 意味着即使系统内存不足,“swap”程序也会将数据复制到硬盘驱动器。