Linux:Swap File Usage

起因

最近在使用pip安装torch时,由于内存不足,导致了Memory Error。pip安装的缓存机制想要先把整个文件读取到内存以后才开始安装,因此可能导致内存不足。

解决方案

  • 方案一 不缓存

    1
    pip --no-cache-dir install xxx
  • 方案二 使用Swap File
    启动swap文件,swap文件在硬盘上开辟一段空间,作为虚拟内存。操作系统会把使用频率低的内容,暂时存放到swap文件内,需要使用时再调用到内存中。
    启动方法,在任意目录下执行以下命令

    1
    2
    3
    4
    5
    6
    # 创建一个512 MB大小的swap文件,大小根据你的需要设置
    dd if=/dev/zero of=/swapfile bs=1024 count=524288
    chown root:root /swapfile
    chmod 0600 /swapfile
    mkswap /swapfile
    swapon /swapfile

完成以上指令后,再次尝试使用pip install xxx 即可成功安装。

若出现以下错误:

1
dd: failed to open ‘/swapfile’: Text file busy

这是因为swapfile处于启动状态,可能正在被使用,因此需要先关掉swapfile:

1
swapoff /swapfile