正如标题所示,我正在一个docker容器中运行jupyter,并且我在以下行的scikit learn/numpy库中深入了解python的OSError:
pickler.file_handle.write(chunk.tostring('C'))
Run Code Online (Sandbox Code Playgroud)
我做了一些故障排除,人们似乎遇到的大多数问题是他们的硬盘驱动器或RAM实际上耗尽了空间,这对我来说不是AFAIK.
这就是我的df的样子:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 16419976 0 16419976 0% /dev
tmpfs 3288208 26320 3261888 1% /run
/dev/sdb7 125996884 72177548 47395992 61% /
tmpfs 16441036 238972 16202064 2% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 16441036 0 16441036 0% /sys/fs/cgroup
/dev/sdb2 98304 32651 65653 34% /boot/efi
tmpfs 3288208 68 3288140 1% /run/user/1000
//192.168.1.173/ppo-server3 16864389368 5382399064 11481990304 32% /mnt/ppo-server3
Run Code Online (Sandbox Code Playgroud)
这是我的自由看起来像:
total used free shared buff/cache available
Mem: 32882072 7808928 14265280 219224 10807864 24357276
Swap: 976892 684392 292500
Run Code Online (Sandbox Code Playgroud)
我在看正确的df和免费输出吗?它们都是从容器内的bash实例运行的.
Sha*_* RC 14
正如@PeerEZ所述,当sklearn尝试并行化作业时会发生这种情况.
sklearn尝试通过写入/ dev/shm在进程之间进行通信,这在docker容器上限制为64mb.
您可以尝试使用@PeerEZ建议的n_jobs = 1运行(如果您无法重新启动容器),或者如果需要并行化,请尝试使用--shm-size选项运行容器为/ dev/shm设置更大的大小.例如.-
docker run --shm-size=512m <image-name>
Run Code Online (Sandbox Code Playgroud)
pun*_*lly 10
Docker留下悬空的图像可以占用你的空间.要在docker之后清理,请运行以下命令:
docker system prune -af
Run Code Online (Sandbox Code Playgroud)
或者在较旧版本的泊坞窗中:
docker rm $(docker ps -q -f 'status=exited')
docker rmi $(docker images -q -f "dangling=true")
Run Code Online (Sandbox Code Playgroud)
这将删除已退出和悬空的图像,这有望清除设备空间.
Meta:在这里提出这个答案,因为它是该失败的顶级堆栈溢出结果,这是一个修复它.
| 归档时间: |
|
| 查看次数: |
4976 次 |
| 最近记录: |