Przepełnienie / tmp zamontowane, gdy jest wolne miejsce na /

26

Ostatnio miałem problem z przepełnieniem /tmp. Nie mam osobnej /tmppartycji, a jest tam 17% wolnego /- to dlaczego dostałem przepełniony tmpsystem plików?

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/safesquid-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=d029e04b-11e9-42e1-b1d3-9cde73cb3b67 /boot           ext2    defaults        0       2
/dev/mapper/safesquid-swap_1 none            swap    sw              0       0

mount wydajność

/dev/mapper/safesquid-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda1 on /boot type ext2 (rw)
overflow on /tmp type tmpfs (rw,size=1048576,mode=1777)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)


root@safesquid:~# free -m
             total       used       free     shared    buffers     cached
Mem:          2009        182       1826          0          9         48
-/+ buffers/cache:        124       1885
Swap:          715        130        585
root@safesquid:~# uname -a

Linux safesquid 2.6.32-41-server #94-Ubuntu SMP Fri Jul 6 18:15:07 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Używam Ubuntu 12.04.1 LTS.

Sprawdziłem również df -i, czy są wolne i-węzły.

Rahul Patil
źródło
Ciekawy. Czy możesz pokazać wynik mountpolecenia i treść / etc / fstab?
dchirikov
@dchirikov zaktualizował post ..
Rahul Patil
Czy po prostu kończy Ci się pamięć? ( free -m) A jakie jądro używasz? ( uname -a)
gertvdijk
@gertvdijk sprawdź, czy zaktualizowałem te rzeczy ...
Rahul Patil
1
Proszę wyjaśnić Linuksa 2.6.32-41-serverna „Ubuntu 12.04.1 LTS”. Tak powinno być 3.2.0-*. Podaj więcej informacji Czy to niepełne uaktualnienie? Prowadzisz wirtualizację opartą na VPS / kontenerach? itp.
gertvdijk

Odpowiedzi:

14

Gdy system uruchomi się, a dysk twardy jest pełny, nic nie może zapisać do / tmp. Więc podczas inicjowania tmpfs jest tworzony i montowany. W ten sposób twój system może bezpiecznie się uruchomić, ponieważ może pisać do / tmp.

Zwolnij miejsce na dysku i uruchom ponownie komputer. (Lub po prostu odmontuj / tmp, jeśli jesteś pewien, że nic go nie używa).

Ustawienie tej wartości na 0 wyłącza konfigurację. , co, jak można się spodziewać, niesie ze sobą ryzyko niepowodzenia inicjacji lub niemożności zalogowania się do systemu.

Myślę, że odpowiedź Nitesha B. jest niebezpieczna i należy jej unikać.

użytkownik50849
źródło
Czy możemy znaleźć sposób na automatyczne przywrócenie tmp wspieranego ramdyskiem, gdy tylko będziemy mieć miejsce na dysku?
CMCDragonkai
Zwalniam dużo miejsca, uruchamiam ponownie i teraz nie mogę się zalogować. Może @mpontillo alternatywa była bezpieczniejsza?
Pablo A,
@PabloBianchi Być może został opublikowany 6 miesięcy po moim, więc tak naprawdę go nie oceniłem. Wygląda to na tymczasowe obejście problemu, a po ponownym uruchomieniu będziesz znowu w tym samym miejscu, więc myślę, że bardziej chodzi o ukrywanie problemu niż jego naprawianie.
user50849
12

Napotkałem ten sam problem na jednym z moich serwerów Ubuntu, po przeszukaniu sieci dostałem rozwiązanie.

Jako ochronę przed małą ilością miejsca na dysku niektóre demony automatycznie „ocieniają” bieżący / tmp / dir dyskiem RAM, jeśli w partycji root zabraknie miejsca na dysku. Niestety nie ma automatycznej zmiany tego procesu, gdy znów będzie wystarczająca ilość miejsca na dysku.

Aby rozwiązać ten problem, zamontuj / tmp i uruchom następującą komendę:

echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp

To z pewnością rozwiąże problem.

Nitesh B.
źródło
7
A co stanie się następnym razem, gdy system uruchomi się bez wystarczającej ilości miejsca na dysku, gdy poinstruujesz go, aby nie tworzył tmpfs? Uważam, że twoja rada jest niebezpieczna i niepoprawna dla zdecydowanej większości użytkowników / przypadków.
user50849
Co to robi echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp?
CMCDragonkai
@CMCDragonkai Zobacz moją odpowiedź na wyjaśnienie tego.
user50849
Pracował dla mnie po zapełnieniu dysku. Ustaw na 0, uruchom ponownie i ustaw ponownie na 1 po. Kiedy następnym razem dysk zostanie zapełniony, system pokaże to samo zachowanie.
Marco Hegenberg,
Jak „umount your / tmp”? Uruchomienie sudo umount /tmprzuca błąd/tmp: device is busy.
Cerin
8

To mi pomogło ; oznacza to, że po oczyszczeniu miejsca zostało obejście tego problemu:

sudo mount -o bind /var/tmp /tmp
mpontillo
źródło