Кэш и нагрузка на CPU

12
S5
На сайте с 04.01.2010
Offline
77
#11

Докинуть памяти\уменьшить обьем мемкеша\отказаться нахер от этой идеи и сделать нормальное дисковое кеширование

A
На сайте с 29.12.2007
Offline
68
#12
VGrey:
Для хранения используйте файлы, в силу каких-то причин, джумла ощутимо медленнее работает с мемкешем.

---

Мемкеш может быть медленнее только в одном случае - когда огромное количество записей в кеш, а чтений не много (относительно, конечно-же)... Мемкеш работает медленно на запись, но на чтение выигрывает очень сильно. Видимо, просто не правильно настроили. Хотя, возможно дело именно в джумле - не работал с ней.

V
На сайте с 05.08.2007
Offline
87
#13
aktuba:
Мемкеш работает медленно на запись, но на чтение выигрывает очень сильно.

Это теория, с ней трудно спорить. А вот практика: http://habrahabr.ru/post/147247/

Цитирую опыт автора статьи:


memcached — 100000 запросов с 50 клиентов, время выполнения 46 секунд.
open_file_cache — 100000 запросов с 50 клиентов, время выполнения 20 секунд.

У нас на выделенном сервере получились похоже. А Вы тестировали? Поделитесь своими результатами?

С уважением, Victor (http://adm-lib.ru)
A
На сайте с 29.12.2007
Offline
68
#14
VGrey:
Это теория, с ней трудно спорить. А вот практика: http://habrahabr.ru/post/147247/

У нас на выделенном сервере получились похоже. А Вы тестировали? Поделитесь своими результатами?

Ну если цитируете - то цитируйте полностью - там кеш отдается в обход php, т.е. сгенерированные html-страницы напрямую. А в джумле, насколько я понимаю, кеш берется из файлов и не может быть отдан напрямую (без переписывания системы кеширования), т.к. пути не будут совпадать. Более понятно: есть страница http://example.com/category/test-page-12. Чтобы отдавать ее напрямую из кеша, минуя все прокладки, необходимо кеш сохранить в /www/category/test-page-12 (без расширения файла), что не всегда возможно...

Далее, в тексте используется nginx (кстати, я тоже использую только его, без apache). Он сам по себе позволяет делать подобное кеширования, без использования php вообще (т.е., даже сохранять ничего не надо будет - nginx при отдаче сам сохранит, если надо). Но и в случае поста, и в случае прямого использования nginx, есть несколько проблем. Самая малая из них - разный контент для разных категорий пользователей (гость, посетитель, модератор, админ, поисковые боты и пр.). Тут может помочь, как сказано в посте, SSI, но... Если на странице куча блоков, то нет смысла использовать ssi - накладные расходы могут убить весь выйгрыш от кеширования...

Идем еще дальше: использовать memcache для хранения html - полный бред, т.к. для хранения 100 байт полезной информации (которая может меняться) придется хранить кучу разметки. Правильно сказано на хабре:

Более того, использовать его для кеширования html — архитектурный провал >_<

Мемкеш хорош тогда, когда надо кешировать сложные выборки из базы и хранить только данные.

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

И да, я тестировал и проверял. Цифр не дам - довольно давно все это было. Но могу сказать, что даже переделывал плагин MaxCache именно для работы с мемкеш (хотя это и вопреки здравому смыслу, но очень хотелось тогда потестить отдачу статики из мемкеша). В результате, от плагина вообще отказались в пользу nginx, т.к. сайт был довольно статичный.

12

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