![临时分配磁盘空间作为内存](https://linux22.com/image/1135085/%E4%B8%B4%E6%97%B6%E5%88%86%E9%85%8D%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B4%E4%BD%9C%E4%B8%BA%E5%86%85%E5%AD%98.png)
我需要运行一些应用程序来转换大文件(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
,因此它不会在下次启动时添加,因此您可以在下次启动时将其删除
仅供参考,我已将所有这些内容转换为脚本,以便您可以执行一个实际的命令来添加交换。请参阅我如何增加交换文件的大小?