「正在執行建立易失性檔案和目錄的啟動作業」的根本原因是什麼

「正在執行建立易失性檔案和目錄的啟動作業」的根本原因是什麼

重新啟動伺服器後卡在「正在執行啟動作業以建立易失性檔案和目錄」(Debian 9.5,64 位),並以此解決“啟動卡在啟動作業正在運行以建立易失性檔案和目錄”

我不知道是什麼根本原因這個問題,雖然從許多問題中搜索,但沒有提到根本原因但只是各種各樣的解決方案不符合我的要求。

我們尚未達到文件或(子)目錄的限制,並設定了dir_nlinkfor 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

並且有超過50%inode和的容量disk

原來的/tmp目錄只有很少的檔案和目錄,只佔用總磁碟空間1G

一些資訊:

$ 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

答案1

正如您用命令顯示的那樣sudo find /tmp/ | wc -l,您確實有接近 3000 萬個條目/tmp。您可以從其他答案中指出的新/tmp目錄開始,您可能應該這樣做,但正如您所猜測的,除非您深入了解這個目錄,否則您最終會遇到相同的情況。

不幸的是,導致此問題的原因可能有很多。例如,我個人經歷過的一個問題是atd變得瘋狂並開始/tmp在瘋狂的循環中創建空文件(每秒談論數千個或某種程度的東西)。我並不是說這是你的情況,因為at現在這不是一個流行的工具,但你必須查看文件名/tmp並嘗試根據它們的名稱(也許還有時間戳)猜測它們來自哪裡。

嘗試sudo find /tmp -ls | more尋找任何線索。希望這將是顯而易見的。

答案2

造成你這種情況的原因至少有兩個:

  • 1、28905144結果find /tmp/ | wc -l顯示您有大量文件/tmp目錄。明顯地,/tmp目錄沒有正常清除開機或關機時
  • 2、/目錄被設定為容量達到的較大值3T。空間越大,HDD(我猜這不是SSD)尋址就會變慢。

建議:

  • 1.檢查該目錄下的文件/tmp是否正常創建,即可找出原因。
  • 2、使/目錄不超過2T,如果可能的話,或使用SSD(NVMe)等高效能媒體。

相關內容