在 ubuntu 中使用 usbdrive 作为 ram

Tac*_*ons 16 usb swap ram

在 Windows 中,可以使用 USB 闪存驱动器作为虚拟内存。我想知道在ubuntu中是否可以这样做?如果是,那怎么做呢?

[编辑]:我的意思是 ubuntu 的Ready boost等效。我知道它不是 ram 的完美替代品,也不建议长期使用。

在 USB 闪存驱动器中创建交换文件是否与它类似?与硬盘驱动器中的交换文件相比,它会展示性能提升吗?

tur*_*rbo 12

肖恩建议的答案是实现此目的的一种方法,另一种方法是在棒上创建一个交换文件,这样您也可以将棒用于其他文件。像这样:

  • 找出安装棒的位置。mount在终端中查看 nautilus 或 issue

  • 创建一个空文件dd if=/dev/zero of=/media/YOURSTICK/swap bs=4096 count=131072. 这将创建一个 512 MB 的文件 (512 * 1024^2 / 4096 = 131072)

  • 创建交换并启用它 sudo mkswap /media/YOURSTICK/swap && swapon -p 1000 /media/YOURSTICK/swap

USB 记忆棒上的交换不会比 HDD 上的交换快。从长远来看,它也会杀死棒,写入 USB 棒也是如此。

要增加 ram 的可用数量,请查看zram

  • USB 并不比真正的 RAM 好 (4认同)
  • 如果您的工作负载经常被拉入和拉出交换,以至于更快的交换会产生显着差异,那么获得更多 RAM 可能会更好。无论您的交换是在硬盘驱动器还是 USB 驱动器上,它都将比实际 RAM 慢几个数量级。 (3认同)

小智 5

当我从http://www.tuxgarage.com/2011/07/add-virtual-ram-to-ubuntu-using-spare.html做这件事时,我发现了这一点

插入您的 USB 驱动器并确保驱动器上没有重要文件。删除驱动器上的所有文件或重新格式化并转到终端。

首先,如果 Ubuntu 在您插入时自动挂载驱动器,我们需要卸载驱动器:

sudo umount /media/drive-label
Run Code Online (Sandbox Code Playgroud)

其中“驱动器标签”是您在安装 USB 驱动器时看到的名称。

或者你也可以这样做:

sudo umount /dev/sdx1
Run Code Online (Sandbox Code Playgroud)

其中“sdx1”是您的驱动器/分区盘符。您可以通过运行以下命令找到它:

sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)

现在,我们将在您的 USB 驱动器上创建交换文件:

sudo mkswap /dev/sdx1
Run Code Online (Sandbox Code Playgroud)

其中“sdx1”是我们从上面“fdisk -l”命令的输出中得出的驱动器号。

现在,打开你的新交换:

sudo swapon -p 32767 /dev/sdx1
Run Code Online (Sandbox Code Playgroud)

完毕!

为了确保您的新 Swap 正常工作,您可以查看此命令的输出:

cat /proc/swaps
Run Code Online (Sandbox Code Playgroud)

我的输出是:

/dev/sda2 partition 2047992 60692 -1
/dev/sdb1 partition 7912708 17764 32767
Run Code Online (Sandbox Code Playgroud)

要取出棒首先关闭交换:

sudo swapoff /dev/sdx1
Run Code Online (Sandbox Code Playgroud)


Rin*_*ail 5

如果您确实需要为系统添加 RAM,那么没有什么比安装更多内存条或增加机器的物理内存更好的了。

使用 USB 不能通过仅增加交换文件的方式来增加 RAM,而且 USB 480mb 传输限制会减少读/写时间。

如果您想体验性能的提高,请使用“zRam”。这会向现有系统添加一个特殊文件并增加系统的虚拟内存。由于它使用存储在当前 RAM 上的压缩块技术,因此减少了 I/O 写入时间

更多信息请点击这里