临时分配磁盘空间作为内存

临时分配磁盘空间作为内存

我需要运行一些应用程序来转换大文件(7GB)。转换器应用程序编写得不太好。所以它不会传输转换后的数据。因此,它需要大量内存。我有 8GB 内存和 8GB 交换空间。但应用程序报告内存使用量约为 9GB,并在转换到 60% 时停止。我认为如果内存再多一些,我就能完成任务。由于这只需要做一次,我可以从 SSD 中分配一些空间来临时扩展内存。只用于此操作。有没有办法在不弄乱分区的情况下做到这一点?

谢谢!

答案1

你确实可以使用交换文件作为系统内存的临时补充。就我个人而言,我有一个 SSD,并使用 1 GB 交换文件进行保护,而不是使用分区,因为这是在使用有限的磁盘空间和在 RAM 用完时有额外内存之间的折衷

首先创建文件本身

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

该命令将在根文件夹中创建一个名为的文件swapfile,其内容全为零,大小为 1024 兆字节 (1 GB)。要使其大小为 2 GB,请将count值更改为 2048

接下来,使其仅可由 root 读写

sudo chmod 600 /swapfile

并将其格式化为交换

sudo mkswap /swapfile

最后,启用文件

sudo swapon /swapfile

您可以随时使用sudo swapoff /swapfile命令禁用它并随意删除;此外,由于这里我们没有将它添加到文件中/etc/fstab,因此它不会在下次启动时添加,因此您可以在下次启动时将其删除

仅供参考,我已将所有这些内容转换为脚本,以便您可以执行一个实际的命令来添加交换。请参阅我如何增加交换文件的大小?

相关内容