Назад | Перейти на главную страницу

Увеличение доступного размера или изменение местоположения / tmp

В настоящее время я отвечаю за сервер 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 варианта.

  1. Я бы вставил другой жесткий диск и смонтировал его в / tmp, вставив соответствующую запись в / etc / fstab.
  2. Или в качестве временной меры переместите / tmp на другой диск, например / dev / sdb1, на котором в настоящее время свободны сотни ГБ. Это просто вопрос создания каталога tmp на / dev / sdb1

т.е.

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: Если подумать, это могли быть другие причины.

  1. Либо / tmp заполняется, либо
  2. Инструменты распаковки не очень хорошо работают с вашими большими архивами. 100ГБ несжатых данных - это наверное большой архив! Какие инструменты вы используете для распаковки архива. Какой это формат? Я знаю, что у некоторых версий tar есть проблемы, или
  3. Тип файловой системы не позволяет извлекать некоторые файлы, поскольку они превышают ограничение файловой системы. Какого типа целевая файловая система? это ext3 или 4 или еще что?
  4. Или файловая система действительно заполнена.

Я почти уверен, что / tmp и tmpfs основаны на ОЗУ, поэтому их распаковка и сохранение в ОЗУ может стать причиной остановки работы. Операционная система начинает менять местами как сумасшедшие, так что вы действительно начинаете замечать снижение производительности.

Эта операция должна выполняться в / tmp?

Добавление фактического ответа:

http://wiki.centos.org/TipsAndTricks/ExpandLV