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

Обслуживание html с ramdisk linux

Я видел несколько устаревшее руководство, в котором предлагается обслуживать html-файлы с помощью ramdisk следующим образом:

mkfs -q /dev/ram1 102400

Я также нашел другой источник, который использует что-то вроде этого:

mount -t tmpfs -o size=1024 none /mnt/rds

Одинаково ли действенны эти два метода? Я использую Centos 6.3 с nginx. Итак, на практике я хочу обслуживать файлы в /usr/share/nginx/html из оперативной памяти.

И в случае, если я смонтировал диск, нужно ли мне монтировать его снова, когда в исходной папке действительно происходят изменения?

Зачем беспокоиться? В любом случае Linux просто кэширует их в ОЗУ, когда они впервые читаются с диска. И если их читают достаточно часто они всегда будут кэшироваться.

Исходя из вашего вопроса (последний абзац), я предполагаю, что вы думаете, что ramdrive будет иметь то же содержимое, что и исходная файловая система ниже. Это не так. У вас будет пустой каталог, и его нужно будет сначала заполнить. Не думаю, что ты этого хочешь.

В Linux очень хорошая система кеширования. Каждая страница памяти, которая не используется для памяти приложения, будет использоваться в качестве кеша. Это означает: даже без tmpfs (метод, который я бы порекомендовал) ваш файл останется в памяти до тех пор, пока не возникнет реальная необходимость его оттуда.

Учитывая, что это действительно происходит и ваша память переполняется:

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

Поэтому я не вижу никаких преимуществ в использовании tmpfs, если вы не создаете эти файлы динамически и за очень короткий промежуток времени. Linux обычно намного эффективнее, если вы позволяете ему решать, как использовать память и менять местами.

У метода tmpfs меньше накладных расходов. В примере / dev / ram1 у вас есть вся файловая система с индексными дескрипторами, каталогами и т. Д., Хранящимися на блочном устройстве. С tmpfs это, по сути, только дисковый кеш.

Да, если вы создаете ramdisk и копируете на него файлы, вам нужно копировать эти файлы снова всякий раз, когда есть изменения.

Не говоря уже о том, что использование RAM-диска - хорошая идея: я помню, как читал статью (к сожалению, без URL-адреса) о тестировании двух типов RAM-дисков, которая неожиданно показала соответствующие различия (я забыл, что было лучше).