“设备上没有剩余空间”和“/var/cache/apt/archives/ 中没有足够的可用空间。”

“设备上没有剩余空间”和“/var/cache/apt/archives/ 中没有足够的可用空间。”

我正在使用 ubuntu 18.04 docker 容器。我遇到了空间不足的错误。

$cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"

当我尝试从 torchvision 训练 resnext101 模型时,出现以下错误。

Downloading: "https://download.pytorch.org/models/resnext101_32x8d-8ba56ff5.pth" to /home/vmuser/.cache/torch/hub/checkpoints/resnext101_32x8d-8ba56ff5.pth
  0%|                                                          | 0.00/340M [00:00<?, ?B/s]
Traceback (most recent call last):
  File "train_attn_best_config.py", line 377, in <module>
    tabct = TabCT(cnn = model, fc_dim = fd, attn_filters = af, n_attn_layers = nal).to(gpu)
  File "train_attn_best_config.py", line 219, in __init__
    self.ct_cnn = cnn_dict[cnn](pretrained = True)
  File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/site-packages/torchvision/models/resnet.py", line 317, in resnext101_32x8d
    pretrained, progress, **kwargs)
  File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/site-packages/torchvision/models/resnet.py", line 227, in _resnet
    progress=progress)
  File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/site-packages/torch/hub.py", line 481, in load_state_dict_from_url
    download_url_to_file(url, cached_file, hash_prefix, progress=progress)
  File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/site-packages/torch/hub.py", line 404, in download_url_to_file
    f.write(buffer)
  File "/home/vmuser/anaconda3/envs/pulmo/lib/python3.7/tempfile.py", line 481, in func_wrapper
    return func(*args, **kwargs)
OSError: [Errno 28] No space left on device

当我运行 时df,我得到了这个,我的一个 tmpfs 只有 65 mb。我尝试运行export TMPDIR=/var/tmpexport TMPDIR=~/Data/tmp

$df

Filesystem      1K-blocks       Used Available Use% Mounted on
overlay        1797272568 1705953392         0 100% /
tmpfs               65536          0     65536   0% /dev
tmpfs            98346264          0  98346264   0% /sys/fs/cgroup
/dev/sda6      1797272568 1705953392         0 100% /etc/hosts
shm                 65536          0     65536   0% /dev/shm
/dev/sdb1      1845816492 1362932848 389098592  78% /home/vmuser/Data
tmpfs            98346264         12  98346252   1% /proc/driver/nvidia
tmpfs            19669256      93256  19576000   1% /run/nvidia-persistenced/socket
udev             98318592          0  98318592   0% /dev/nvidia1
tmpfs            98346264          0  98346264   0% /proc/acpi
tmpfs            98346264          0  98346264   0% /proc/scsi
tmpfs            98346264          0  98346264   0% /sys/firmware

但错误仍然存​​在。

当我尝试升级任何软件包时,出现另一个错误: E: You don't have enough free space in /var/cache/apt/archives/.

当我跑步的时候, sudo du -hsc /var/cache

1.6M    /var/cache
1.6M    total

我的 /var/cache 中的空间非常小。

我尝试了clean、、、autoclean符号clean packages链接sudo ln -s /home/apt/ /var/cache/apt,但仍然面临这些错误。

答案1

如果您的 Docker 容器正在使用 DeviceMapper、Btrfs、overlay2、WindowsFilter 或 ZFS Graph 驱动程序,那么您可以在定义容器时执行如下操作:

docker run -it --storage-opt size=500G torchy /bin/bash

笔记:确保更改torchy为正确的容器名称。

这将允许在创建时将容器的根文件系统大小设置为 500G。与许多虚拟机工具一样,您无需在定义时预先分配空间。

注意事项

  1. 使用 DeviceMapper、Btrfs、WindowsFilter 或 ZFS Graph 驱动程序时,不能传递小于默认 BaseFS 大小(通常为 10G)的大小
  2. 使用 overlay2 存储驱动程序时,size 选项仅在备份文件系统为 XFS 并使用pquotamount 选项挂载时才可用。在这些条件下,您可以传递小于备份文件系统大小的任何大小。

欲了解更多信息,文档是你的朋友

相关内容