Я видел несколько устаревшее руководство, в котором предлагается обслуживать 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, если вы не создаете эти файлы динамически и за очень короткий промежуток времени. Linux обычно намного эффективнее, если вы позволяете ему решать, как использовать память и менять местами.
У метода tmpfs меньше накладных расходов. В примере / dev / ram1 у вас есть вся файловая система с индексными дескрипторами, каталогами и т. Д., Хранящимися на блочном устройстве. С tmpfs это, по сути, только дисковый кеш.
Да, если вы создаете ramdisk и копируете на него файлы, вам нужно копировать эти файлы снова всякий раз, когда есть изменения.
Не говоря уже о том, что использование RAM-диска - хорошая идея: я помню, как читал статью (к сожалению, без URL-адреса) о тестировании двух типов RAM-дисков, которая неожиданно показала соответствующие различия (я забыл, что было лучше).