상황은 더 나빠졌지만, 아마도 근본적인 문제에 더 가까워진 것 같습니다… 더 많은 디스크 공간이 필요하다는 가정 하에, 이전의 50 GB와 달리 이번에는 100 GB 용량으로 이미지를 기반으로 새로운 인스턴스를 생성했습니다. (백업은 각각 5 GB이며 S3에 저장되어 있습니다.) 이번에는 명시적인 오류가 발생했습니다. “No space left on device”(디바이스에 남은 공간 없음)였습니다. 그런데 df 명령을 실행하면 충분한 공간이 남아 있는 것으로 표시됩니다.
> [2019-11-29 22:42:58] Making sure /var/www/discourse/tmp/restores/default/2019-11-29-224258 exists...
> [2019-11-29 22:42:58] Downloading archive to tmp directory...
> [2019-11-29 22:45:46] Unzipping archive, this may take a while...
> [2019-11-29 22:51:46] No metadata file to extract.
> [2019-11-29 22:51:46] Validating metadata...
> [2019-11-29 22:51:46] Current version: 20191129144706
> [2019-11-29 22:51:46] Restored version: 20191108000414
> [2019-11-29 22:51:46] Extracting dump file...
> [2019-11-29 22:53:47] EXCEPTION: No space left on device @ io_write - /shared/tmp/restores/default/2019-11-29-224258/dump.sql
> [ec2-user@ip-172-31-47-237 discourse]$ df / -h
> Filesystem Size Used Avail Use% Mounted on
> /dev/xvda1 99G 28G 71G 28% /
흥미롭게도, 해당 디렉터리에는 아무것도 없습니다:
> /var/www/discourse# ls /shared/tmp/*
> /shared/tmp/backups:
> < empty >
> /shared/tmp/restores:
> < empty >
스왑 파일 문제일까요? EC2 인스턴스는 2 GB 메모리를 가진 t2.small이며, 이미 오래전에 정상 작동하는 포럼에 스왑 파일을 생성해 두었습니다. 새로운 인스턴스에도 스왑 파일이 복제되었을 것으로 추측합니다. 저는 전문가가 아니지만, 스왑 파일이 존재한다고 생각합니다. 왜냐하면 새로운 스왑 파일을 생성하지 못했고, 또한 다음과 같은 이유 때문입니다:
> /var/www/discourse# swapon -s
> Filename Type Size Used Priority
> /swapfile file 2097148 1024 -2