Кеширование файлов в оперативную память

4ksner
На сайте с 26.02.2010
Offline
34
4071

Приветствую всех!

Прочитав статью на хабре - http://habrahabr.ru/blogs/nginx/56497/ решил реализовать кешировние файлов на своем сервере через proxy_store.

Вроде как все работает, фалы в папочку собираются.

Но подумав решил сделать такое же кеширование, но только в оперативную память, так как от туда быстрее происходит чтение.

Как это реализовать я не имею представления.

Может кто подсказать как это сделать? Может в сети уже есть готовые решения?

Не в деньгах счастье - человек, имеющий десять миллионов долларов, может быть ничуть не счастливее человека, имеющего девять.
hostmaster
На сайте с 26.05.2009
Offline
26
#1

"такое же кеширование, но только в оперативную память" делает кэш файловой системы его и нужно настраивать. Если есть желание бесполезно потратить время можно поискать истории про tmpfs от авторов которые так и не смогли осилить настройку ОС.

готовое решение есть, это кеширующие прокси серверы такие как squid или varnish.

I'm lost without tcpdump
4ksner
На сайте с 26.02.2010
Offline
34
#2

Гммм....

Что касается tmpfs. Наткнулся вот на какую статью - http://0-web.ru/dle/184-uskorenie-dle-cherez-tmpfs.html

В ней описанно процесс записи кеша сайта DLE в оперативку.

Может реально так же сделать кеш файлов?

M
На сайте с 16.09.2009
Offline
278
#3

1. Для кеширования есть proxy_cache.

2. Сведите чтение хавту на хабре к минимуму, а двухгодичной давности - к нулю.

3.

hostmaster:
"такое же кеширование, но только в оперативную память" делает кэш файловой системы его и нужно настраивать. Если есть желание бесполезно потратить время можно поискать истории про tmpfs от авторов которые так и не смогли осилить настройку ОС.

Не проведете ликбез для "ниосиливших"? А то вот что-то я сильно сомневаюсь, что магические "настройки ОС" смогут заменить то, что может сделать грамотное использование оперативной памяти для кеширования, в частности с tmpfs.

4.

4ksner:
Что касается tmpfs. Наткнулся вот на какую статью - http://0-web.ru/dle/184-uskorenie-dle-cherez-tmpfs.htmlВ ней описанно процесс записи кеша сайта DLE в оперативку.Может реально так же сделать кеш файлов?

Если кратко, то можно. То, что там описано - азы, как создать раздел с tmpfs и поместить туда что-то. Естественно, если Вы хотите подобный подход использовать для кеширования - Вам надо сперва хорошо продумать что Вы туда поместите, когда и насколько. Тупо вынести proxy_cache_path на tmpfs - это, конечно, глупость. Думаю, о подобном и предупреждал Вас hostmaster.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
4ksner
На сайте с 26.02.2010
Offline
34
#4

myhand, спасибо за отклик.

Подскажите куда капать и с чего начать. Только не посылайте покупать книгу "Линукс для чайников".

Andreyka
На сайте с 19.02.2005
Offline
822
#5

nginx умеет отдавать страницы из memcache

Не стоит плодить сущности без необходимости
M
На сайте с 16.09.2009
Offline
278
#6
4ksner:
Подскажите куда капать и с чего начать.

Начать со штатной документации. При решении проблем - полезна рассылка nginx-ru.

PS: Кстати, совет Andreyka учтите.

4ksner
На сайте с 26.02.2010
Offline
34
#7
Andreyka:
nginx умеет отдавать страницы из memcache

Вот это уже интересно.

А как это реализовать?

Andreyka
На сайте с 19.02.2005
Offline
822
#8
hostmaster
На сайте с 26.05.2009
Offline
26
#9

ликбез: ликбез заключаетс я в гуглении на тему tmpfs vnodes sendfile aio md

http://www.google.com/search?q=nginx+tmpfs+md+sendfile+vnodes.

первая же ссылка на прекрасное объснение Игоря Сысоева.

Но не стоит обольщаться кэш файловой системы это универсальный кэш "общего назначения". Он не дает возможности тонкой настройки кеширование. Иногда это важно. Пример: аватарки, мелкую графику и thumbnails надо отдавать очень быстро, т.к. они сразу видны на странице и скорость их отдачи влияет на восприятие общей скорости загрузки страницы. а картинки побольше загружаются по клику и их можно придержать, а что то совсем тяжелое можно вообще не кэшировать если обращения единичные. То есть получается иерархия объектов в кэше:горячие, теплые, холодный. Каждый со своей политикой кеширования. Для того чтобы это реализовать идеально подходит squid, чуть с большими усилиями это можно сделать в varnish.

memcache хорош для кеширования небольших объектов, примерно одинакового размера и "только в памяти". В противном случает через некоторое время начинается процес вытеснения, фрагментации памяти и производительность заметно падает. У tarantool (от mail.ru) с управлением памятью дело обстоит значительно лучше, можно посмотреть в его сторону.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий