Hängenbleiben bei „Ein Startauftrag zum Erstellen flüchtiger Dateien und Verzeichnisse wird ausgeführt“ nach dem Neustart eines Servers (Debian 9.5, 64bit) und lösen Sie mit diesem„Boot bleibt beim Start hängen – Job wird ausgeführt, um flüchtige Dateien und Verzeichnisse zu erstellen“.
Ich kann nicht herausfinden, was das istGrundursachedieses Problems, obwohl Suche von vielen Fragen, die nicht beziehen sich auf dieGrundursacheaber gerade die unterschiedlichen Lösungsansätze sagen mir nicht zu.
Wir haben das Datei- oder (Unter-)Verzeichnislimit nicht erreicht und legen das dir_nlink
für fest ext4
.
# sudo tune2fs -l /dev/debian-vg/root | grep dir_nlink
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent
64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Und das sind mehr als50 %Kapazität von inode
und disk
.
Das ursprüngliche /tmp
Verzeichnis enthält nur wenige Dateien und Verzeichnisse und verbraucht nur wenig Speicherplatz.1G.
Einige Infos:
$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-4.9.0-7-amd64 root=/dev/mapper/debian--vg-root ro net.ifnames=0 biosdevname=0 console0=tty0 console=ttyS0,115200n8 quiet
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=4077900k,nr_inodes=1019475,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=817924k,mode=755)
/dev/mapper/debian--vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=9039)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=817920k,mode=700,uid=1000,gid=1000)
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 1000G 0 disk
└─vda1 254:1 0 1000G 0 part
└─debian--vg-root 253:0 0 3T 0 lvm /
vdb 254:16 0 4T 0 disk
vdc 254:32 0 2T 0 disk
└─debian--vg-root 253:0 0 3T 0 lvm /
$ blkid
/dev/vda1: UUID="ijfyeQ-***" TYPE="LVM2_member" PARTUUID="d6***"
/dev/mapper/debian--vg-root: UUID="2d2294a9-***" TYPE="ext4"
/dev/vdc: UUID="PXrGC9-***" TYPE="LVM2_member"
$ sudo find /tmp/ | wc -l
28905144
Antwort1
Wie Sie mit Ihrem Befehl zeigen sudo find /tmp/ | wc -l
, haben Sie tatsächlich fast 30 Millionen Einträge in /tmp
. Sie könnten mit einem neuen /tmp
Verzeichnis beginnen, wie in anderen Antworten erwähnt, und das sollten Sie wahrscheinlich auch tun, aber wie Sie vermutet haben, werden Sie in derselben Situation enden, wenn Sie der Sache nicht auf den Grund gehen.
Leider kann dieses Problem alle möglichen Gründe haben. Ich persönlich habe beispielsweise ein Problem erlebt, bei dem es atd
verrückt spielt und in einer verrückten Schleife leere Dateien erstellt /tmp
(ich rede von Tausenden pro Sekunde oder so ähnlich). Ich sage nicht, dass dies bei Ihnen der Fall ist, da es at
heutzutage kein beliebtes Tool ist, aber Sie müssen sich die Dateinamen ansehen /tmp
und versuchen, anhand ihrer Namen und möglicherweise Zeitstempel zu erraten, woher sie stammen.
Versuchen Sie sudo find /tmp -ls | more
, nach Hinweisen zu suchen. Es wird hoffentlich offensichtlich sein.
Antwort2
Es gibt mindestens zwei Ursachen für Ihre Situation:
- 1,
28905144
Das Ergebnisfind /tmp/ | wc -l
zeigt, dass Sie Unmengen an Dateien haben/tmpVerzeichnis. Offensichtlich/tmp
Verzeichnis wurde nicht normal geleertbeim Booten oder Herunterfahren. - 2,
/
Verzeichnis wurde auf einen großen Wert eingestellt, dessen Kapazität erreicht wurde3T. Mit mehr Speicherplatz wird die Adressierung der Festplatte (ich nehme an, es handelt sich nicht um eine SSD) langsamer.
Beratung:
- 1. Überprüfen Sie, ob die Dateien im
/tmp
Verzeichnis normal erstellt wurden oder nicht, und Sie werden den Grund herausfinden. - 2. Machen Sie das
/
Verzeichnis nicht mehr als2T, wenn möglich, oder verwenden Sie Hochleistungsmedien wie SSD (NVMe).