среда, 2 мая 2012 г.

TMP_SIZE и RAMTMP

Переустановил систему и сразу столкнулся с небольшой, но неприятной проблемой. Линукс - бесконечный источник всякой неведомой хрени, которую можно разрулить, если немного пошевелить мозгами и поискать в интернете.

Итак, напомню, установил себе Linux Mint Debian. А ещё у меня есть ASUS eeePad Transformer. И - вот те раз - не закачиваются на планшет большие файлы. Маленькие - пожалуйста, а большие - хрен. Жена ворчит, хочет на планшете кино посмотреть на диване.

От фильма размером примерно 750 Мб закачивается 402 Мб, потом ошибка. Закачивается, кстати, в два приёма - сначала быстро-быстро это 402 Мб копируются куда-то, потом вылезает ошибка, и пока я думаю, что с ней делать, эти 402 Мб заливаются на планшет. Ага, стало быть, используется какой-то буфер.

В линуксе есть команда df, которая показывает состояние всех примонтированных файловых систем. Гляжу - а у меня как раз отдельно примонтирована папка /tmp размером 402 Мб и тип tmpfs, то есть размещается в оперативной памяти. Сначала я пытался найти какие-нибудь параметры команды mount, чтоб без буфера в /tmp хуярить данные прямо в планшет, но все попытки оказались неудачными. Тогда я решил разобраться с /tmp. Вариантов немного - либо увеличить до 800 Мб, что, наверное, не очень хорошо, потому что желающих срать в /tmp много, а при нехватке памяти система начнёт активно свопиться (у моего компьютера всего 2 Гб ОЗУ, а включен он постоянно, так что это имеет шанс быстро произойти). Либо выкинуть /tmp из памяти на диск, что, по идее, должно вызвать незначительные притормаживания вообще всего. Я выбрал второй вариант, делается это так:

В файле /etc/default/rcS есть параметры:
RAMLOCK - монтировать /run/lock в память в качестве tmpfs отдельно от /run
RAMSHM - монтировать /run/shm в память отдельно от /run
RAMTMP - монтировать /tmp в память в качестве tmpfs
Могут принимать значения yes и no. Чтоб папка /tmp не монтировалась в память как tmp, надо указать RAMTMP=no.

Если же хотите увеличить размер /tmp в памяти, надо открыть файл /etc/default/tmpfs, и в нём исправить значения TMPFS_SIZE (максимальный размер вообще всех tmpfs) и TMP_SIZE (максимальный размер конкретно /tmp). Можно указывать точный размер, а можно писать, например, TMPFS_SIZE=20%, чтоб оно занимало не более 1/5 оперативной памяти.

После изменения этих параметров надо перезагрузиться. А мне, наверное, надо докупить планку памяти... никто не знает, DDR2 ещё выпускают? :)

Комментариев нет:

Отправить комментарий

Ублюдочный Гугл поломал форму комментариев. Извините.