본문 바로가기

개발/우분투(서버관리)

[오류]디스크는 남아있는데 장치에 남은 공간이 없음 오류

갑자기 우분투+PHP 로 운영중인 서비스가 제대로 동작하지 않는다는 연락을 받았다.

터미널로 접속해보니 명령어를 칠때마다 아래와같은 오류가 발생했다.

 

 tail -f la-bash: cannot create temp file for here-document: 장치에 남은 공간이 없음

 

디스크 사용량이 꽉찼나 싶어 아래의 명령어를 입력했다.

 

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           795M 1020K  794M   1% /run
/dev/xvda2       49G   14G   34G  29% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop0      111M  111M     0 100% /snap/core/12821
/dev/loop1      111M  111M     0 100% /snap/core/12725
tmpfs           795M     0  795M   0% /run/user/1002
tmpfs           795M     0  795M   0% /run/user/1001

 

/ 는 사용량이 29% 밖에 되지 않는다.

혹시나 싶어 서버를 재시작해봤지만 처음엔 괜찮고 다시 똑같은 문제가 발생했다.

 

df -i 명령어로 inode 갯수를 확인해봤다.

파일 갯수는 한정적으로 만들어 질수 있기때문에 한계에 도달하면 공간 없음 에러가 발생한다.

역시나 / 디렉토리의 inodes 가 100% 이다. 

 

웹서비스 세션을 1년만기로 만들어서 더 많았던거 같다.

당장 서비스를 할수 있어야 해서 laravel framework 폴더 내의 sessions 내용을 일부 삭제했다. 

 

df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
udev           1008576    412 1008164    1% /dev
tmpfs          1016751    622 1016129    1% /run
/dev/xvda2     3276800 335772 2941028   11% /
tmpfs          1016751      1 1016750    1% /dev/shm
tmpfs          1016751      4 1016747    1% /run/lock
tmpfs          1016751     18 1016733    1% /sys/fs/cgroup
/dev/loop0       12847  12847       0  100% /snap/core/12821
/dev/loop1       12847  12847       0  100% /snap/core/12725
tmpfs          1016751     12 1016739    1% /run/user/1002
tmpfs          1016751     12 1016739    1% /run/user/1001

 

루트디렉토리의 inodes 의 사용률이 11% 내려갔다. 

다행이 모든 서비스가 정상적으로 잘 돌아갔다.

 

물론 세션파일을 일부 삭제했기때문에 다시 로그인해야 하는 사용자들이 발생했을것이다. ㅠㅠ

세션 주기를 좀더 짧게 주던지 실제로 laravel framework에서 주기적으로 세션파일들을 삭제 하는지 모니터링 해봐야 할거 같다.