xvda1이 100 % 찼습니다. 무엇입니까? 어떻게 고치는 지?


41

EC2에서 Linux 인스턴스를 실행 중이며 (MongoDB 및 node.js가 설치되어 있음)이 오류가 발생합니다.

Cannot write: No space left on device

나는이 파일을 추적했다고 생각합니다 .df 출력은 다음과 같습니다.

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1             1032088   1032088         0 100% /

문제는이 파일이 무엇인지 모르고이 파일이 문제인지 여부도 알 수 없다는 것입니다.

따라서 제 질문은 "장치에 남은 공간 없음"오류를 어떻게 해결합니까?

답변:


65

그 파일 /은 루트 디렉토리입니다. 에서 볼 수있는 유일한 파일 시스템이라면 df모든 것이 다입니다. 1GB 파일 시스템이 있고 100 % 찼습니다. 다음과 같이 어떻게 사용되는지 알아낼 수 있습니다.

sudo du -x / | sort -n | tail -40

그런 다음 /가장 많은 공간을 차지하는 경로 로 바꿀 수 있습니다 . (덕분에 끝날 것 sort입니다. 명령이 시간이 걸릴 수 있습니다.)


19
사람이 읽을 수있는 형식으로 출력을 얻으려면 sudo du -x -h / | sort -h | tail -40( 이 답변에서 )을 사용할 수 있습니다 .
mkobit 2016 년

마이크로 AWS AMI 인스턴스를 사용하는 경우 1 분 정도 걸릴 수 있습니다. 인내심을 가지십시오!
Rob Lang 박사

이 작업으로 수행 할 작업 :sort: write failed: /tmp/sortGmL8oF: No space left on device
dOM

1
@dOM 아야. 의 일부 공간을 청소하십시오 /tmp. 또는 필요한 경우와 같은 명령으로 단계별로 범위를 좁 힙니다 du -xhs /*.
David Schwartz

du -x -h / | sort -h | tail -40 | sort -h -r사람이 읽을 수있는 출력을 사용할 때 내림차순으로 정렬하는 데 사용할 수 있습니다.
Vigs

14

나는 거의 5 년 후에이 스레드에서 응답하고 있지만 누군가에게 도움이 될 수 있음을 알고 있습니다. 동일한 문제가 있습니다 .m4.xlarge 인스턴스 df -h는 / dev / xvda1이 가득 찼습니다.-100 %

Filesystem      Size  Used Avail Use% Mounted on
udev            7.9G     0  7.9G   0% /dev
tmpfs           1.6G  177M  1.4G  12% /run
/dev/xvda1      7.7G  7.7G     0 100% /
tmpfs           7.9G     0  7.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
tmpfs           1.6G     0  1.6G   0% /run/user/1000

나는 그것을 해결하려고 노력했다.

sudo find / -type f -printf '%12s %p\n' 2>/dev/null|awk '{if($1>999999999)print $0;}'

내 모든 공간을 말하고있는 도커 컨테이너라는 것을 알 수 있도록 도와주었습니다. 내 컨테이너를 모두 내 도커 레지스트리에 푸시 한 다음 sudo rm -rf / var / lib / docker /를 수행했습니다. 내 공간을 정리했습니다 :) 누군가 도움이되기를 바랍니다. :)


8

EBS 부팅 인스턴스를 실행하는 경우 (권장)이 기사에서 설명하는 절차를 사용하여 루트 (/) 볼륨의 크기를 늘릴 수 있습니다.

실행중인 EBS 부팅 EC2 인스턴스에서 루트 디스크 크기 조정
http://alestic.com/2010/02/ec2-resize-running-ebs-root

인스턴스 스토어 인스턴스를 실행중인 경우 (권장하지 않음) 루트 디스크의 크기를 변경할 수 없습니다. 파일을 삭제하거나 임시 저장 공간 (예 : / mnt)으로 파일을 이동하거나 EBS 볼륨을 연결하고 파일을 이동해야합니다.

다음은 MySQL 데이터베이스를 루트 디스크에서 EBS 볼륨으로 이동하는 방법을 설명하는 기사입니다.

EBS가있는 Amazon EC2에서 MySQL 실행
http://aws.amazon.com/articles/1663

... 그리고 EBS 부팅 인스턴스로의 이동을 고려하십시오. 나중에 스스로에게 감사해야 할 이유는 여러 가지가 있습니다.


EBS를 사용하고 있는데 루트 디스크를 확장하는 것이 상당히 저렴합니까? 다행히도 MySQL을 다룰 필요가 없습니다. 현재 내 프로젝트는 Mongo / Redis입니다. 여기에 훌륭한 자료가 있습니다. +1

2

최근 Amazon Linux 에서이 문제가 발생했습니다. 내 crontab 발신 이메일 대기열 /var/spool/clientmqueue은 4.5GB였습니다.

나는 그것을 해결했다 :

  1. 큰 파일 찾기 : sudo find / -type f -size +10M -exec ls -lh {} \;
  2. 큰 파일 삭제 : /bin/rm -f <path-to-large-file>
  3. 서버 인스턴스 재시작

문제 해결됨!


1

이 명령을 실행하여 문제를 해결했습니다.

sudo apt 자동 제거

예를 들어 "linux-aws-headers-4.4.0-1028"과 같은 많은 패키지가있었습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.