Переполнение / tmp устанавливается при наличии свободного места на /


26

Недавно я столкнулся с проблемой переполнения /tmp. У меня нет отдельного /tmpраздела, и в нем 17% свободного места /- тогда почему я получил переполненную tmpфайловую систему?

введите описание изображения здесь

введите описание изображения здесь

# /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 выход

/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

Я использую Ubuntu 12.04.1 LTS.

Я тоже проверил df -i, есть свободные иноды.


Интересный. Не могли бы вы показать вывод mountкоманды и содержимое / etc / fstab?
дчириков

@dchirikov обновил пост ..
Рахул Патил

Разве тебе просто не хватает памяти? ( free -m) А какое ядро ​​у тебя работает? ( uname -a)
gertvdijk

@gertvdijk проверь, я обновил эти вещи ...
Рахул Патил

1
Пожалуйста, объясните Linux 2.6.32-41-serverна "Ubuntu 12.04.1 LTS". Это должно быть 3.2.0-*. Дайте больше информации. Это неполное обновление? Запускаете виртуализацию на основе VPS / контейнера? и т. д.
gertvdijk

Ответы:


14

Когда система загружается и жесткий диск заполнен, ничего не может записать в / tmp. Таким образом, во время инициализации tmpfs создается и монтируется. Таким образом, ваша система может безопасно загрузиться, потому что она может записывать в / tmp.

Освободите место на диске и перезагрузите компьютер. (Или просто размонтировать / tmp, если вы уверены, что ничто его не использует).

Установка этого значения в 0 отключает настройку. , что, как я ожидаю, несет риск инициализации-сбоя или невозможности войти в систему.

Я думаю, что ответ Нитеш Б. опасен и его следует избегать.


Можем ли мы найти какой-нибудь способ автоматического возврата tmp, поддерживаемого ramdisk, когда у нас будет место на диске?
CMCDragonkai

Я освобождаю много места, перезагружаюсь и теперь не могу войти. Может быть, альтернатива @mpontillo была безопаснее?
Пабло А

@PabloBianchi Возможно, это было опубликовано через 6 месяцев после моего, так что я на самом деле не оценил это. Это выглядит как временный обходной путь, и при перезагрузке вы снова окажетесь в том же месте, поэтому, я думаю, нужно больше скрывать проблему, а не исправлять ее.
user50849

12

Я столкнулся с той же проблемой на одном из моих серверов Ubuntu, после поиска в сети я получил решение.

В качестве защиты от нехватки дискового пространства некоторые демоны автоматически «затеняют» текущий / tmp / dir с помощью оперативного диска, если в корневом разделе заканчивается свободное место на диске. К сожалению, нет автоматического возврата этого процесса, если на диске снова достаточно свободного места.

Чтобы решить эту проблему, размонтируйте ваш / tmp и выполните эту команду:

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

Это определенно решит вашу проблему.


7
И что произойдет в следующий раз, когда система загрузится без достаточного дискового пространства, когда вы указали ей не создавать tmpfs? Я думаю, что ваш совет опасен и неверен для подавляющего большинства пользователей / случаев.
user50849

Что это делает? echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp?
CMCDragonkai

@CMCDragonkai Смотрите мой ответ для объяснения этого.
user50849

Работал у меня после того, как диск был полон. Установите его на 0, перезагрузите и установите обратно на 1 после. Поэтому, когда диск заполнится в следующий раз, система будет демонстрировать то же поведение.
Марко Хегенберг

Как вы "размонтируете свой / tmp"? Запуск sudo umount /tmpвыдает ошибку/tmp: device is busy.
Cerin

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.