df는 문제가 없으며 사용 가능한 공간과 inode가 충분하다고 보고합니다. 여전히 작은 새 텍스트 파일을 작성할 수 있습니다. 충돌하는 Python 프로그램이 내 홈 디렉터리 내에 만든 하위 디렉터리에 쓰고 있었습니다. 내 프로그램은 천만 개가 넘는 아주 작은 파일 수백만 개를 작성하고 있지만 총 바이트 수는 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
이 오류가 발생하기 위해 메모리를 채우고 빠르게 교체한 것 같습니다. 이렇게 작은 파일은 확산되는 데 시간이 거의 걸리지 않습니다. 따라서 물리적으로 디스크에 기록할 수 있는 것보다 빠르게 생성될 가능성이 높습니다. 각 파일 생성 사이에 절전 또는 대기 주기를 추가하여 도움이 되는지 확인하세요. 또는 거기에 작은 데이터 읽기를 추가하면 파일 쓰기 사이에 일시 중지가 발생합니다.