본문 바로가기
Operating System/Linux

[Linux] 파일 삭제해도 용량이 늘어나지 않을때 (용량 부족 시)

by 근육곰돌이 2019. 11. 25.
728x90

서버를 점검하거나 장애사항 볼때 이상한?상황을 마주하는경우가 많이 있습니다.

[내용] - Hard Full, 용량 부족, 삭제하여도 용량 있음, 용량 확보 방법
그 중에 하나로 서버의 용량이 부족 시 df표시된 용량과 실제용량이 다르거나 

하드디스크에 있는 파일을 아무리 지워도 용량이 확보가 안될때가 있습니다.

애석하게도 서버 재부팅을 하게되면 용량이 확보가 되는 경우를 한번쯤 겪어보았을 것입니다. ㅋㅋ

 

[증상]

예시) 정리한다고 하였지만 용량이 있는 경우

~]# df -Th
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda2      ext4   2.5G  2.4G   0   100% /
tmpfs          tmpfs  937M     0  937M   0% /dev/shm

이는 리눅스의 특정 서비스나 프로세스가 불필요하게 더미데이터(쓰레기)파일을 가지고 있는 경우가 있습니다.

 

[원인]

이럴때는 lsof를 이용하여, 불필요하게 용량을 잡고 있는 쓰레기 데이터를 찾아야합니다.

예시) rsyslogd 서비스가 messages 로그를 차지하고 있음. (보통은 리눅스 자체 서드파티가 아닌 사용자 서비스가 더미데이터를 가지고 있음)

~]# lsof /                  <------ 1차 용량이 없는 파티션을 검색
COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
rsyslogd   1264     root    1w   REG    8,2 12961888 2621619 /var/log/messages

~]# lsof -p 1264        <------ 2차  pid를 이용한 검색으로 좀더 자세히 확인 판단  (프로세스 잘못 판단 kill하였다가 문제가 발생될 수 있음)
COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
rsyslogd   1264     root    1w   REG    8,2 12961888 2621619 /var/log/messages


[조치]

해당 문제되는 프로세스 ID를 찾은 후 해당 프로세스를 죽입니다. (kill~)

[죽이는 방법]

예시 1) service [프로세스] stop 

예시 2) kill -9 1264

 

정리된 후 쓰레기 파일을 삭제한 후에 df명령으로 용량을 재확인 해봅니다.

그러면 초기의 문제보다 좀 더 숨통이 틔일겁니다.

 

물론 서버의 문제가 났을때 해당경우로 조치가 안될 수 있으나 하나의 방법을 통한 좀 더 조치에 나아가는 자세가 좋은게 아닐까요? ㅎㅎ

 

아참 그리고, lsof 명령어에 대해 궁금하신 분은 요기로 참조 해주세용 --> https://musclebear.tistory.com/65

 

[Linux] lsof 사용법 (옵션 정리) - 시스템 자원 확인하기

1. lsof (list open files)란? lsof 는 list open files 의 약자로 시스템에서 열린 파일 목록을 알려주고 사용하는 프로세스, 디바이스 정보, 파일의 종류등 상세한 정보를 출력합니다. 리눅스와 유닉스는 추상화..

musclebear.tistory.com

 

반응형