Σφάλμα: No space left on the device μόνο κατά την εκκίνηση/διακοπή υπηρεσιών
Μάθε πώς να διορθώσεις το σφάλμα "No space left on the device" όταν ξεκινάς ή/και σταματάς υπηρεσίες μόνο, σε Amazon Linux 2

Χρησιμοποιώ τον Amazon SSM Agent για να συνδέομαι σε EC2 instances με ασφάλεια. Ο Amazon SSM Agent μπορεί επίσης να συνδεθεί στην κονσόλα του EC2 instance μέσω του aws.amazon.com web console. Αυτός είναι λοιπόν ο προτιμώμενος τρόπος μου.
Πριν από μερικές ημέρες, όταν προσπάθησα να συνδεθώ σε EC2 μέσω Amazon SSM Agent, δεν ανταποκρίθηκε και μετά από αυτό, αποφάσισα να συνδεθώ με τον συνηθισμένο τρόπο, ναι με SSH.
Φυσικά, πρώτα απ' όλα, θέλω να επανεκκινήσω τον Amazon SSM Agent και βλέπω αυτό:
[root@i-0cd9514c60d532e78 ~] systemctl restart amazon-ssm-agent.service
Error: No space left on deviceΔεν περίμενα αυτό το μήνυμα σφάλματος σχετικά με την κατάσταση του δίσκου. Και θέλω να ελέγξω τη χρήση του δίσκου. Τώρα, βλέπω αυτό:
[root@i-0cd9514c60d532e78 ~] df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 960M 0 960M 0% /dev
tmpfs 978M 0 978M 0% /dev/shm
tmpfs 978M 420K 978M 1% /run
tmpfs 978M 0 978M 0% /sys/fs/cgroup
/dev/nvme0n1p1 8.0G 2.6G 5.5G 32% /
tmpfs 196M 0 196M 0% /run/user/1000Ωχ! Φαίνεται ότι αυτό το μήνυμα σφάλματος δεν αφορά τη χρήση του δίσκου, αλλά πρέπει να βεβαιωθώ. Τώρα, ήρθε η ώρα να ελέγξω τα inodes.
[root@i-0cd9514c60d532e78 ~] df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 245750 304 245446 1% /dev
tmpfs 250254 2 250252 1% /dev/shm
tmpfs 250254 388 249866 1% /run
tmpfs 250254 16 250238 1% /sys/fs/cgroup
/dev/nvme0n1p1 4193216 67672 4125544 2% /
tmpfs 250254 1 250253 1% /run/user/1000Τώρα που μπόρεσα να επιβεβαιώσω ότι δεν είναι ούτε τα inodes, έκανα περαιτέρω έρευνα και βρήκα ότι υπάρχουν γνωστές αναφορές σφαλμάτων για αυτό ακριβώς το ζήτημα, όπου οι ενέργειες systemctl "start", "stop" και "reload" εμφανίζουν σφάλμα "No space left on device", αλλά οι ενέργειες "enable", "disable" και "kill" όχι. Στα bugs, αναφέρεται ότι αυτό το σφάλμα προκύπτει ως αποτέλεσμα του ορίου inotify "max_user_watches". Το inotify έχει ένα όριο στον αριθμό των αρχείων και καταλόγων που μπορεί να παρακολουθεί για αλλαγές. Για να εξαφανίσεις το σφάλμα, πρέπει να αυξήσεις την τιμή του "/proc/sys/fs/inotify/max_user_watches" για να επιτρέψεις την προσθήκη και παρακολούθηση περισσότερων αρχείων και καταλόγων για αλλαγές.
Για να αλλάξεις την τιμή σε πραγματικό χρόνο, μπορείς να τρέξεις:
echo 1048576 > /proc/sys/fs/inotify/max_user_watchesΓια να φορτώνεται μόνιμα αυτή η αυξημένη τιμή μετά από επανεκκίνηση ή ενέργεια stop/start:
Πρόσθεσε τη γραμμή "fs.inotify.max_user_watches=1048576" στο /etc/sysctl.conf Μπορείς να ελέγξεις τη διαμόρφωση sysctl με την εντολή sysctl -p.
Αναφορές:
https://bugzilla.redhat.com/show_bug.cgi?id=894483
https://bugzilla.redhat.com/show_bug.cgi?id=1452933
Συμπέρασμα
Περισσότερα από τον Ercan
Δύο ακόμη ιστότοποι, ίδιος συγγραφέας, διαφορετικό έδαφος.
AI, LLMs, agents, εφαρμοσμένη ML.
Σημειώσεις πεδίου για AI workloads. Ανάλυση κόστους Bedrock, agent patterns, trade-offs αποθήκευσης διανυσμάτων, failure modes σε παραγωγή.
Επισκεφθείτε ercan.ai →Ο κόμβος. Σχετικά, συμβουλευτική, επικοινωνία.
Προσωπικός κόμβος και για τις δύο διαδρομές γραφής. Ποιος είμαι, πώς λειτουργεί η συμβουλευτική, πώς να επικοινωνήσετε.
Επισκεφθείτε ercanermis.com →