В настоящее время я отвечаю за сервер Red Hat и веб-приложение биоинформатики, которое работает с огромными файлами, некоторые из которых имеют размер более 100 ГБ в несжатом виде. Распаковка этих файлов выполняется несколькими различными программами, каждая из которых использует системный временный каталог / tmp. Когда выполняется распаковка огромного файла, / tmp заполняется и останавливает выполняемую операцию, вызывая последующие ошибки в веб-приложении. Я должен зайти и удалить проблемный файл из / tmp.
Файловая система сервера настроена следующим образом:
/*output of df-h follows*/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_root-LogVol01 83G 34G 45G 43% /
tmpfs 95G 0 95G 0% /dev/shm
/dev/sda1 485M 81M 379M 18% /boot
/dev/sdb1 8.0T 6.2T 1.5T 82% /data
/*output of blkid follows*/
/dev/sda1: UUID="5f489589-0678-46c1-9f0f-e4e66c6a9e04" TYPE="ext4"
/dev/sda2: UUID="k2rP0k-1YhK-72D9-fRrQ-BxUW-3gaC-6KF0nh" TYPE="LVM2_member"
/dev/sdb1: UUID="4e54bee3-6450-446f-af80-70ca6268e12f" TYPE="ext4"
/dev/mapper/vg_root-LogVol01: UUID="b6f228dc-fa6c-43c1-b88e-3b43a75e980b" TYPE="ext4"
/dev/mapper/vg_root-LogVol00: UUID="80c6863d-c9f8-4abe-a353-a6a6818dc82d" TYPE="swap"
/*output of fstab*/
/dev/mapper/vg_root-LogVol01 / ext4 defaults 1 1
UUID=5f489589-0678-46c1-9f0f-e4e66c6a9e04 /boot ext4 defaults 1 2
/dev/mapper/vg_root-LogVol00 swap swap defaults 0 0
/dev/sdb1 /data ext4 defaults 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
Я знаю основы Linux, но мало разбираюсь в файловых системах. Что я хотел бы сделать, так это принять постоянное решение, чтобы выделить больше места для временного каталога. Я был бы открыт для установки переменной среды TMPDIR, чтобы она указывала на другую файловую систему с большим пространством. Или, если это возможно, я был бы в равной степени удовлетворен выделением большего количества существующего места для LogVol-01.
Мой вопрос в том, как с учетом моих текущих данных файловой системы навсегда выделить больше места для временного каталога. Как видно из вывода df, у меня есть свободное место на диске. Я не настраивал сервер, но теперь я отвечаю за него и имею root-доступ, хорошо это или плохо!
Обновить:
Поскольку вы теперь подтвердили, что / tmp не является символической ссылкой и что в / tmp нет монтирования. Это в основном говорит о том, что / заполняется. Как это исправить? 2 варианта.
т.е.
sudo mkdir /data/tmp
sudo chmod 1777 /data/tmp
sudo rm /tmp
sudo ln -s /data/tmp /tmp
Если вы предпочитаете добавить больше хранилища (что является лучшим долгосрочным решением), в сети есть множество руководств о том, как добавить дополнительные диски в Linux.
Как добавить дополнительный жесткий диск в Linux
Оригинальный ответ ...
tmpfs может быть виновником. Он основан на оперативной памяти, и он также будет использовать подкачку, когда это необходимо. Это означает, что он будет продолжать расти и расти до тех пор, пока больше не перестанет использоваться RAM для tmpfs. У вас неполная декомпрессия.
Что вам нужно сделать, так это отредактировать / etc / fstab и закомментировать (с ведущим '#') строку, начинающуюся с '/ tmp', и перезагрузить или отключить / tmp (с 'sudo umount / tmp')
Похоже, у вас есть весь диск с использованием LVM, поэтому безопасно не монтировать замену для / tmp.
редактировать:
Хотел бы я увидеть файл fstab по умолчанию от Redhat или ваш. В любом случае ... Возможно, что / tmp не существует в fstab, потому что это может быть символическая ссылка.
Чтобы узнать, запустите "ls -ld / tmp". Если это символическая ссылка, вы увидите, что она указана как / tmp -> / dev / shm или что-то в этом роде.
Если на самом деле это ссылка на / dev / shm или на каталог, смонтированный как tmpfs, исправьте это с помощью:
sudo rm /tmp
sudo mkdir /tmp
sudo chmod 1777 /tmp
РЕДАКТИРОВАТЬ2: Если подумать, это могли быть другие причины.
Я почти уверен, что / tmp и tmpfs основаны на ОЗУ, поэтому их распаковка и сохранение в ОЗУ может стать причиной остановки работы. Операционная система начинает менять местами как сумасшедшие, так что вы действительно начинаете замечать снижение производительности.
Эта операция должна выполняться в / tmp?
Добавление фактического ответа: