갑자기 우분투+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에서 주기적으로 세션파일들을 삭제 하는지 모니터링 해봐야 할거 같다.