Файлы стилей css и JS в оперативную память?

palarmaz
На сайте с 05.04.2010
Offline
125
1758

Изучаю кеширование. На сервере много сайтов на Wordpress, они большие, миллионы файлов, и картинок.

Роботы и пользователи создают неплохую нагрузку на HDD. Вот поставил Memcache, с ним все понятно.

Вот подумал, при каждом запросе страницы сайта подгружаются одни и те же стили CSS и Java скрипты. Запрос идет к 10-20 файлам стилей, плюс к тому же идет чтение как минимум 10 ява скриптов. Их бы загрузить в оперативную память. Возможно ли такое? Не могу найти в рунете.

V
На сайте с 05.08.2007
Offline
87
#1
palarmaz:
Изучаю кеширование. На сервере много сайтов на Wordpress, они большие, миллионы файлов, и картинок.
Роботы и пользователи создают неплохую нагрузку на HDD.

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

В первую очередь, определите, что именно создает нагрузку на диск? Потом уже думайте, что с этим делать.


Вот поставил Memcache, с ним все понятно.

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

И только потом делайте выводы.

---

Виктор

С уважением, Victor (http://adm-lib.ru)
Andreyka
На сайте с 19.02.2005
Offline
822
#2

Не слушайте вредных советов. Конечно, memcache может здорово помочь, особенно если у множества сайтов одинаковые css/js.

Вы можете залить их в memcache а потом отдавать для всех сайтов через http://nginx.org/ru/docs/http/ngx_http_memcached_module.html

Не стоит плодить сущности без необходимости
Devvver
На сайте с 02.07.2008
Offline
671
#3

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

Мой блог. Все о создании сайтов,Seo и СДЛ ( https://devvver.ru/ ) Мой SEO телеграм канал https://t.me/seobloggers
JJ
На сайте с 09.07.2010
Offline
240
#4
palarmaz:


Вот подумал, при каждом запросе страницы сайта подгружаются одни и те же стили CSS и Java скрипты. Запрос идет к 10-20 файлам стилей, плюс к тому же идет чтение как минимум 10 ява скриптов. Их бы загрузить в оперативную память. Возможно ли такое? Не могу найти в рунете.

немного не то что вы хотите, но в тему

попробуйте кэшировать файлы, которые не часто обновляются, на стороне клиента, в браузере

то есть, в нужных сайтах, в htaccess, поставьте что-то типа такого:

<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|pdf|js|css|gz|png)$">

Header set Cache-Control "max-age=3000000"

</FilesMatch>

если всем сайтам нужно кэширование, Cache-Control можно в настройках апача записать

память не будет занята, и браузер посетителя будет дергать эти типы файлов всего раз месяц

seocore
На сайте с 25.09.2006
Offline
143
#5
Andreyka:
Не слушайте вредных советов. Конечно, memcache может здорово помочь, особенно если у множества сайтов одинаковые css/js. Вы можете залить их в memcache а потом отдавать для всех сайтов через http://nginx.org/ru/docs/http/ngx_http_memcached_module.html

Вот скорее не поможет, как ни странно, но на тестах с отдачей статики с memcache'а скорость ниже, все же SSD + кеш ОС делают работу не плохо. Вариант с memcache рулит, когда CMS сама на лету формирует эти css/js (регулярно) и просто складывает их в memcache сама, откуда потом и идет раздача из nginx, но в случае со статичными файлами это не особо разумно.

И если все равно есть желание играться в ОЗУ сторэджи, то tmpfs в помощь.

Инструменты для веб-мастера: кластеризатор СЯ (https://goo.gl/MQWfqO), все запросы конкурента (https://goo.gl/hd5uHS), дешевые XML-лимиты (https://goo.gl/aDZbPI)
V
На сайте с 05.08.2007
Offline
87
#6
Andreyka:
Не слушайте вредных советов. Конечно, memcache может здорово помочь, особенно если у множества сайтов одинаковые css/js.

Я ж не предлагаю отказаться от мемкеш, я предлагаю думать и изменять, а в этом - ничего плохого нет :)


Вы можете залить их в memcache а потом отдавать для всех сайтов через http://nginx.org/ru/docs/http/ngx_http_memcached_module.html

Вы же не хуже меня знаете, что отдача статики nginx напрямую, по сравнению с отдачей статики с мемкеш, быстрее процентов на 20. Да, мемкеш крут для определенного круга задач, но не является панацеей от всех проблем.

---

С увжением,

Виктор

L
На сайте с 20.02.2006
Offline
92
#7
palarmaz:
Вот подумал, при каждом запросе страницы сайта подгружаются одни и те же стили CSS и Java скрипты. Запрос идет к 10-20 файлам стилей, плюс к тому же идет чтение как минимум 10 ява скриптов. Их бы загрузить в оперативную память. Возможно ли такое? Не могу найти в рунете.

Ставьте Varnish, он как раз это делает. Для Wordpress есть плагин для интеграции с Varnish.

palarmaz
На сайте с 05.04.2010
Offline
125
#8
VGrey:
Да, мемкеш крут для определенного круга задач, но не является панацеей от всех проблем.
---
С увжением,
Виктор

Смотря какие задачи нужны. Если сайт милионник, то при каждом посещении страницы роботом, или пользователем, WordPress генерирует однотипные запросы Query SELECT для вывода блока похожих статей и т.п.

Вообще я проверял, чистый не оптимизированный WP при обновлении страницы создает около 30-ти запросов к БД. Там половина запросов однотипные типа получить УРЛ сайта, блог-инфо... Вот такие запросы можно смело кэшировать с помощью мемкеша. Или если делать по уму, то шаблон нужно почистить от таких запросов, и заменить их на статику.

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