В каких случаях нужно удалять весь кэш?

123
A
На сайте с 20.08.2010
Offline
775
#11
BrimStone:
Вы уже не первый теоретик, который мне об этом говорит. :)

Я практик. И даже при всем моем желании я не могу увидеть смысла ставить ежеминутное удаление кэша. Зачем, если при изменении страницы ее кэш автоматически обновляется?

MC_KoT:

Пользуюсь плагином для кэширования на Wordpress. Подскажите, пожалуйста, в каких случаях нужно удалять весь кэш? Нужно ли это делать когда происходят какие-либо изменения на сайте (изменяется код, добавляются дизайн)?

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

Кстати, что лучше - html или dat? Старая версия гипер кэша работает с файлами dat, новая - с html. Судя по нагрузке, html побольше ресурсов ест.

[Удален]
#12
SeVlad:
Не всегда надо быть практиком чтобы узнать что на колдобинах машина не может нормально ехать и убивается Достаточно хотя бы немного разбираться в предмете.

Собственно у меня и есть серверная статистика. Без кеширования меня хостер выгоняет. С включенным минутным кешированием - не выгоняет.

Кеш был включен очень давно, отключать сейчас, чтобы проверить реальную разницу в CP не буду. Но она будет различаться в разы.

---------- Добавлено 02.11.2014 в 15:06 ----------

awasome:
Я практик. И даже при всем моем желании я не могу увидеть смысла ставить ежеминутное удаление кэша. Зачем, если при изменении страницы ее кэш автоматически обновляется?

В моем случае контент страницы изменяется не средствами WP, а отдельным скриптом, который сохраняет данные в БД.

SeVlad
На сайте с 03.11.2008
Offline
1609
#13
BrimStone:
Но она будет различаться в разы.

В разы не в разы, а отличаться, действительно, будет. В лучшую сторону :)

Ну ты сам подумай как что происходит - вроде бы теорию тут верно излагал, видно, что изучал вопрос, но вот выводы делаешь какие-то потусторонние :)

Уточнение. Высказанное мной верно, если нет супер кривых скриптов, которое кеширование побеждает.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
[Удален]
#14
SeVlad:
В разы не в разы, а отличаться, действительно, будет. В лучшую сторону
Ну ты сам подумай как что происходит - вроде бы теорию тут верно излагал, видно, что изучал вопрос, но вот выводы делаешь какие-то потусторонние

Хочу услышать Вашу логику. С чего бы нагрузке-то расти, а не уменьшаться? ;)

SeVlad
На сайте с 03.11.2008
Offline
1609
#15
BrimStone:
С чего бы нагрузке-то расти, а не уменьшаться?

С чего расти - ты сам выше писал: работа скриптов по генерации кеша. Ежеминутная! (+ прикинь время на перегенерацию всех страниц сайта). В то время как без кеш-палагинов генерация страниц будет происходить намного реже.

MK
На сайте с 06.11.2011
Offline
48
#16
BrimStone:
Как работает кеширование.
Без кеширования. Пользователь открывает сайт, начинает генерироваться страница: выполняются функции PHP, запросы к БД и т.д. В случае с WP, да и почти с любой CMS это сотни разных операций, на выполнение которых требуется время и ресурсы.

Плагин кеширования в тот момент, когда страница генерируется, создает ее HTML-копию.
Для того, чтобы показывать пользователю HTML-страницу нужна 1 операция, а не сотни.

Реальный пример:
Quick Cache file built for (xxx_ru) in 0.35799 seconds
Cache file served for (xxx_ru) in 0.00074 seconds
Разница в 483 раза. :)

Если мы зададим время кеширования 1 минута, то вся эта нагрузка будет создаваться раз в минуту (в случае если страница посещается так часто, конечно).
10 минут - значит, раз в 10 минут.
24 часа - раз в 24 часа.

Соответственно, чем большее время кеширования Вы зададите, тем сильнее снизится нагрузка на сервер. Если задать 30 дней, то страница будет создана 1 раз и многократно будет отдаваться ее сохраненная копия.



Вот тут нам приходится идти на компромисс между обновлением информации по всему сайту и снижением нагрузки.

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

Если же у Вас обычный блог, в котором 90% посещений приходится на главную страницу и самый свежий пост, в котором в сайдбаре все и так актуально, то время кеширования можно выставить и в месяц.
Ну увидят 10% посетителей не самый свежий сайдбар. Ну и что? Он же не будет пустым, им все равно будет, чем заинтересоваться. :)

Так что универсального времени кеширования не бывает. Все зависит от задач.

---------- Добавлено 02.11.2014 в 11:15 ----------

Quick Cache file built for (xxx_ru) in 0.35799 seconds
Cache file served for (xxx_ru) in 0.00074 seconds

Еще немного по реальным цифрам. Возьмем сферическую страницу в вакууме, которую посещают стабильно 10 раз в минуту.

Промежуток расчетов - 1 час. Т.е. всего будет 60*10 = 600 посещений страницы за час.

Время кеширования 1 час:
Мы потратили 0.35799 1 раз на создание копии в кеше, и 599 раз по 0.00074 секунды, чтобы показывать закешированную копию.
Итого: 0.80125 секунды.

Время кеширования 10 минут:
Мы потратили 0.35799 6 раз на создание копии в кеше, и 594 раза по 0.00074 секунды, чтобы показывать закешированную копию.
Итого: 2.14794 + 0.43956 = 2.5875 секунды.

Время кеширования 1 минута:
Мы потратили 0.35799 60 раз на создание копии в кеше, и 540 раз по 0.00074 секунды, чтобы показывать закешированную копию.
Итого: 21.4794 + 0.3996 = 21.879 секунды.

Без кеширования:
0.35799 600 раз, ибо кеша нет.
Итого: 214.794 секунд.


Расчеты, безусловно, очень грубые. Как заметил SeVlad, у кеширующего плагина есть свои накладные расходы. Даже, чтобы отдать закешированную страницу, он должен проверить есть ли уже эта копия. А он тоже написан на PHP и требует некоторых ресурсов.
Если сайт посещают 2 раза в день, а время кеширования 1 минута, то на создание копий в кеше будет уходить больше ресурсов, чем без кеша вообще.
Но общее понимание должно появиться. :)

Спасибо большое за подробное объяснение.

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

[Удален]
#17
MC_KoT:
Если я правильно понял, то в идеале нужно отключить или уменьшить время кэширование тех элементов страницы, на которых происходят изменения. То есть если новости обновляются в сайдаре и верхней части страницы, а всё остальное на странице остаётся таким же, то нужно уменьшить время кэширования для этих элементов, а для всего остального поставить время кэширования в значительный период времени, например, год.

Было бы круто, но не выйдет. :)

Кешируется весь сайт целиком.

---------- Добавлено 03.11.2014 в 22:17 ----------

SeVlad:
С чего расти - ты сам выше писал: работа скриптов по генерации кеша. Ежеминутная! (+ прикинь время на перегенерацию всех страниц сайта). В то время как без кеш-палагинов генерация страниц будет происходить намного реже.

На кой хрен перегенерировать весь кеш раз в минуту? :)

Еще раз повторю - ни один плагин WP по умолчанию так не работает. Только опционально для тех, кто понимает зачем ему такие извращения.

Работа эта происходит только в момент обращения к странице. Т.е. если на сайте 1000 страниц, но на сайт никто не ходит, то никакой работы не будет.

Копия для кеша будет создана только в момент обращения к странице.

При этом насколько эта работа серьезная - большой вопрос. Проверить есть ли нужный html файл. Если нет - записать (создавать-то не надо, WP его уже все равно создал), если есть и дата создания старше минуты - перезаписать. Все. Сотые доли секунды.

Quick Cache file built for (xxx_ru) in 0.35799 seconds

Cache file served for (xxx_ru) in 0.00074 seconds

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

SeVlad
На сайте с 03.11.2008
Offline
1609
#18
BrimStone:
На кой хрен перегенерировать весь кеш раз в минуту?

Эээ.. Это я у тебя вообще-то спрашиваю - нахрена ты это сделал :):

BrimStone:
На одном из сайтов у меня 1 минута стоит. Потому что там постоянно что-то обновляется.

---

BrimStone:
если есть и дата создания старше минуты - перезаписать. Все. Сотые доли секунды.

И при хорошей посешалке (чит: запросов разных страниц) имеем.. сколько? Сколько копий скрипта будет запихано в память сервера и сколько процессов они вызовут? ;)

А если нет такой посещалки - опять же в чём смысл 1 минутного сброса кеша? В чём разница работы без кеша? Где профит?

[Удален]
#19

SeVlad, сорри я устал. :)

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

Во-вторых, я даже привел расчеты почему это так.

Объяснять все это по третьему кругу человеку, который не приводит никаких аргументов, я не буду. :)

Удачи.

MK
На сайте с 06.11.2011
Offline
48
#20

Исходя из того, что образование кэша тоже определённая нагрузка, правильно ли я понимаю, что если на портале очень много статей и заходят, в основном, на новые страницы, то на страницы, которым, к примеру, больше месяца и на которые приходится по 5-10 посещений в месяц, можно смело выключать кэширование? То есть оставляьт его только для страниц, которые созданы не позже месяца назад? Будет ли это оправдано?

123

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