htdocs на RAM диске?

На днях мне стало интересно, почему бы не поместить все файлы, связанные с htdocs, на диск RAM.

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

Есть ли пакет, который может реализовать это прозрачным способом для операций чтения, в то же время обеспечивая безопасное хранение операций записи на диске? Если нет, есть ли причина не делать этого?

3 ответа

Решение

Есть ли пакет, который может реализовать это прозрачным способом для операций чтения, в то же время обеспечивая безопасное хранение операций записи на диске?

Да, это часть операционной системы.

Все современные операционные системы имеют так называемый кеш файловой системы. Это часть оперативной памяти, которая не используется никакими приложениями, которые используются ядром для хранения недавно использованных файлов. Он также используется для хранения недавно записанных файлов до тех пор, пока они периодически не записываются на диск.

Когда приложению требуется ОЗУ, оно прозрачно отдается ядром.

На днях мне стало интересно, почему бы не поместить все файлы, связанные с htdocs, на диск RAM.

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

Поскольку большинство веб-сайтов являются динамическими, ускорение доступа к статическим данным (htdocs) не сильно помогает. Но большинство производственных площадок используют технологии, подобные Memcached/ MemcacheDB.

Memcached - это универсальная система кеширования распределенной памяти, которая первоначально была разработана Danga Interactive для LiveJournal, но теперь используется многими другими сайтами. Он часто используется для ускорения динамических веб-сайтов, управляемых базой данных, путем кэширования данных и объектов в оперативной памяти, чтобы уменьшить количество раз, когда внешний источник данных (например, база данных или API) должен быть прочитан.

Другие вопросы по тегам