xvda1 เต็ม 100% มันคืออะไร? วิธีแก้ไข


41

ฉันใช้งานอินสแตนซ์ Linux บน EC2 (ฉันติดตั้ง 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

สำหรับอินสแตนซ์ micro AWS AMI อาจใช้เวลาประมาณหนึ่งนาทีในการเรียกใช้ อดทน!
Dr Rob Lang

ว่าจะทำอย่างไรกับเรื่องนี้:sort: write failed: /tmp/sortGmL8oF: No space left on device
Dom

1
@dOM Ouch /tmpพยายามที่จะทำความสะอาดพื้นที่บางส่วนใน du -xhs /*หรือถ้าคุณต้องแคบลงขั้นตอนโดยขั้นตอนที่มีคำสั่งเช่น
David Schwartz

du -x -h / | sort -h | tail -40 | sort -h -rสามารถใช้เรียงลำดับจากมากไปน้อยเมื่อใช้เอาต์พุตที่มนุษย์อ่านได้
Vigs

14

ฉันรู้ว่าฉันกำลังตอบกระทู้นี้หลังจากผ่านไปเกือบ 5 ปีแล้ว แต่มันอาจช่วยคนได้ฉันมีปัญหาเดียวกันฉันมีอินสแตนซ์ m4.x large 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 Boot EC2 Instance ที่ทำงานอยู่
http://alestic.com/2010/02/ec2-resize-running-ebs-root

หากคุณใช้งานอินสแตนซ์ที่เก็บอินสแตนซ์ (ไม่แนะนำ) คุณจะไม่สามารถเปลี่ยนขนาดของดิสก์รูทได้ คุณต้องลบไฟล์หรือย้ายไฟล์ไปยังที่เก็บชั่วคราว (เช่น / mnt) หรือแนบโวลุ่ม EBS และย้ายไฟล์ที่นั่น

นี่คือบทความที่ฉันเขียนซึ่งอธิบายวิธีย้ายฐานข้อมูล MySQL จากรูทดิสก์ไปยังไดรฟ์ EBS:

ใช้งาน MySQL บน Amazon EC2 กับ EBS
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 autoremove

และแพคเกจเก่าจำนวนมากถูกลบออกเพิ่มขึ้น 5 กิกะไบต์ตัวอย่างเช่นมีแพคเกจมากมายเช่น "linux-aws-headers-4.4.0-1028"


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.