Использование tmpfs
20 03 2012Очень часто встречаются задачи когда нужно заюзать быстрый кеш непонятного вида. Файловая система подходит для этого как ни что другое, но винчестер слишком медленный. На помощь приходит tmpfs, файловая система в памяти, взаимодействие с которой ОЧЕНЬ быстрое. На одном проекте я использую tmpfs для отдачи популярного видео-контента. Конструкция видимо выдержит гигабит при почти нулевой загрузке системы.
Как правило один раздел tmpfs у вас уже есть (/dev/shm). Желательно организовывать кеш отдельно, чтобы не препятствовать работе системы в случае его переполнения. Но если вам нужен большой кеш (как мне) – два кеша в памяти не уместятся, приходится юзать /dev/shm. В этом случае сразу переходим к разделу о ресайзе уже смонтированноо раздела. Также не забываем проверять какие разделы и какого размера примонтированы используя “mount -l” или “df -h”.
Итак, монтируем раздел (помним что не надо монтировать два раздела в одну точку (например 2 /dev/shm ):
mount -t tmpfs -o size=1G,mode=0777 tmpfs /space
Важной особенностью tmpfs является возможность ресайза “налету”, примерно вот так:
mount -o remount,size=2G /space
Это всё пригодится при краткосрочных задачах. Но теперь вспомним про ещё одну, не менее важную особенность tmpfs – после перезагрузки все созданные разделы уничтожатся. По этому если вам постоянно нужен раздел – пропишите его в /etc/fstab. Примерно так:
tmpfs /space tmpfs defaults 0 0
Ресайзить tmpfs раздел непосредственно в консоли не рекомендую, после перезагрузки сервак опять примонтирует первоначальный размер и ваш контент не уместится. Потому если вам нужно изменить размер указанного в /etc/fstab раздела – открываем /etc/fstab и находим там строчку tmpfs (вашего, если у вас два раздела – не трогайте системный
) и указываем нужный размер:
tmpfs /space tmpfs defaults,size=512m 0 0
(размеры могут быть записаны следующим образом: 512k, 512m, 512g)
А затем:
mount -o remount /space
