df 报告没有问题,并且有足够的空间和足够的 inode 可用。我仍然可以编写小的新文本文件。崩溃的 python 程序正在写入我在主目录中创建的子目录。我的程序正在写入数百万个非常小的文件,比如超过 1000 万个,也许更多,但我预计总字节数远低于 0.5TB。这是(到目前为止)在相对较新的工作站上很少使用的传统硬盘。有什么方法可以查明这里的问题吗? Ubuntu 主目录有配额限制吗?我只使用 ssh 进入该主机,没有本地 kbd 或 GUI 访问权限,但我可以进行 X 远程处理,因此请限制对命令行的建议,您可以提供给我尝试。谢谢!
inFile: RC_2018-01-24
outDir: tmp
outputToScreenOnly: 0
Traceback (most recent call last):
File "/mnt/fastssd/bot_subreddit_recom/write_user_docs.py", line 84, in <module>
with open(fqfn, 'w') as f:
OSError: [Errno 28] No space left on device: '/home/ga/reddit_data/tmp/yourstrulytony.RC_2018-01-24.doc'
^C(py36) ga@ga-HP-Z820:~/reddit_data$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 65954704 0 65954704 0% /dev
tmpfs 13196056 9852 13186204 1% /run
/dev/mapper/ubuntu--vg-root 1789679056 318441852 1380303752 19% /
tmpfs 65980276 0 65980276 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 65980276 0 65980276 0% /sys/fs/cgroup
/dev/nvme0n1 492128608 238291700 228815144 52% /mnt/fastssd
/dev/sda2 483946 157208 301753 35% /boot
/dev/sda1 523248 3496 519752 1% /boot/efi
tmpfs 13196056 4 13196052 1% /run/user/1000
(py36) ga@ga-HP-Z820:~/reddit_data$ man df
(py36) ga@ga-HP-Z820:~/reddit_data$ df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu--vg-root 1789679056 318441852 1380303752 19% /
(py36) ga@ga-HP-Z820:~/reddit_data$ df -i /
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/ubuntu--vg-root 113647616 11444684 102202932 11% /
(py36) ga@ga-HP-Z820:~/reddit_data$ find tmp -maxdepth 1 -type f | wc -l
10603003
(py36) ga@ga-HP-Z820:~$ uname -a
Linux ga-HP-Z820 4.4.0-139-generic #165-Ubuntu SMP Wed Oct 24 10:58:50 UTC 2018 x86_64
答案1
看起来您可能正在填充内存并快速交换以产生此错误。如此小的文件只需很少的时间即可传播。因此,它们的创建速度很可能比物理写入磁盘的速度快。尝试在每个文件创建之间添加睡眠或等待周期,看看是否有帮助。或者在其中添加一些小数据的读取,这将导致文件写入之间的暂停。