Налагодження та використання ramfs і tmpfs

Файлова система ramfs використовує стільки оперативної пам'яті, скільки дозволить система. Якщо вся оперативка закінчилася, а файли продовжують литися - системі прийде кінець. Навіть якщо буде вказано максимальний розмір при монтуванні - ніяких повідомлень ви не отримаєте якщо цей ліміт буде перевищено, пам'ять просто буде танути.
Приступаємо до практики. Для початку створимо папку і змонтуємо ramfs розділ.

Щоб перевірити, де у нас змонтовано ramfs розділи потрібно використовувати команду mount, так як df нічого не покаже.

Тепер протестуємо швидкість запису і читання. У мене є файли по 200М кожен і 489М RAM. Тобто якщо скопіюємо один файл в папку / mnt / ramfs-folder - він потрапить в RAM, а саме в сторінковий кеш (використовується при операціях читання).

Як бачимо, тепер 200М потрапили в RAM, тепер можна порівняти швидкість читання і запису файлів з диска і з ramfs.

Ну і на останок перевіримо що буде, якщо в ramfs папку залити файлів більше ніж доступно RAM.

Налагодження та використання ramfs і tmpfs

Як видно, закінчилася пам'ять і тепер системі допоможе тільки reboot. Щоб таких ситуацій не виникло, потрібно налаштувати моніторинг розміру ramfs.

Дана файлова система має заздалегідь встановлений фіксований розмір і вона може розміщуватися в RAM і swap пам'яті. Якщо вся оперативка закінчилася, а файли продовжують литися - буде використовуватися swap і вже після того, як swap закінчитися системі прийде кінець. При монтуванні потрібно вказувати бажаний розмір файлової системи і якщо зазначений ліміт буде привішений - система видасть відповідне повідомлення.
Приступаємо до практики. Для початку створимо папку і змонтуємо tmpfs розділ розміром 600М.

В даному випадку df покаже змонтовану tmpfs файлову систему.
Нагадаю, що у нас є файли по 200М кожен, 489М RAM і 509М swap. Тобто якщо скопіюємо файл в папку / mnt / tmpfs-folder - він потрапить в RAM, а якщо RAM буде забитий, але ліміт не перевищено - ми потрапимо в swap. Перевіряємо.

Як бачимо, коли закінчилося зарезервоване місце в tmpfs ми отримали «No space left on device» повідомлення. Коли закінчився RAM, ми потрапили в swap.
Тепер протестуємо швидкість запису і читання.

Ну і на останок перевіримо що буде, якщо в tmpfs папку залити файлів більше ніж доступно RAM і swap разом узятих - картина та сама, спочатку закінчитися RAM, потім swap, потім потрібен буде reboot. З цього потрібно моніторити і tmpfs і swap або ставити розмір tmpfs меншим ніж розмір RAM-a.

Обидві файлові системи ramfs і tmpfs є енергозалежними (volatile). Іншими словами, якщо в системі відбудеться збій, вона буде перезавантажена або буде виключена з якої-небудь причини, дані, що зберігаються в будь-який з цих файлових систем будуть знищені. З цього, не раджу тут зберігати важливих даних.
У нашій системі відострімінга використовується ramfs для кешування VOD контента розмір якого контролюється моніторинг системою.

Схожі статті