Кэш постоянно увеличивается. Что делать?

Главные вкладки

Аватар пользователя Elodia Elodia 11 декабря 2008 в 20:49

У меня такая проблема. Последнее время стал стремительно расти кэш на всех моих сайтах, которые находятся у меня на хостинге. Это ужасно неудобно, потому что почти каждый день базы разрастаются настолько, что не помещаются в выделенной квоте дискового пространства и сайты зависают, приходится чистить кэш. Такого раньше не было.
Подскажите, пожалуйста, что с этим делать?

Комментарии

Аватар пользователя Vladimir_VVV Vladimir_VVV 12 декабря 2008 в 0:43

Если сайт из подписи то у вас ~4000 страниц по ~100кб только с главного домена это при простом подсчете 1:1 будет ~400Mb кеша.
Еще если у вас поиск включен то тоже большой индекс собирается. И всякие там вьюсы.

Аватар пользователя Steh Steh 12 декабря 2008 в 8:31

Неверно, они чт овсе у него в кеш грузятся? У меня такая же пробелма. ЕЕ признаки очевидны! Ошибки памяти. Я вед me;t писал. Хочу обобщить. Раньше сайт работал с 2-мя магазинами, 6-ой Друпал. с пауком собственным. 30-ю темами и кучей модулей, с обновлением каких-то модулей и версий стал глючить! Я понимаю, что Друпал требует минимум 16 мб php .а у меня было 15! Работало больше полугода. В итоге сменил тариф. плачу в 1,5 раза больше, php 32, а проблемы остались! Причем снес и магазины и паука, и модули, и тем большую часть .

Мой сайт http://mir2030.info

450 стр по 33 кб средняя! Считайте. Возможные глюки - признак одного и того же. а именно: невозможно получить дсотуп к регистрации, и редирект на лавную. отказ ссылок, не обновляются страницы, не грузится 105 строка какого-то там ink

date.module мешает обновлению и т.п. - это все об одном. Неучтенности и косяки в новых версиях!

Аватар пользователя Elodia Elodia 12 декабря 2008 в 15:36

Так а что делать-то?
У меня сайты висят эти в сети уже по пол года! А проблеме этой не больше недели...
Как ее решить???

Аватар пользователя penexe penexe 12 декабря 2008 в 15:37

"Elodia" wrote:
Так а что делать-то?
У меня сайты висят эти в сети уже по пол года! А проблеме этой не больше недели...
Как ее решить???

а cron работает?

Аватар пользователя Valeratal Valeratal 12 декабря 2008 в 17:45

тупо, сменить хостинг
что за дурацкие ограничения на размер базы
у меня хоть гигабайт будет - ничего не скажут Smile

p.s. есть модуль, db maintance -он может оптимизировать требуемые таблицы в базе - очень хорошо для кешей помогает

Аватар пользователя Elodia Elodia 12 декабря 2008 в 18:08

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

Аватар пользователя Elodia Elodia 13 декабря 2008 в 14:35

Модуль вроде неплохой, но он при настройке постоянно говорит, что
* Path to tar is incorrect.
* Path to mysqldump is incorrect.
Не могу понять, что ему нужно...
А каким образом он оптимизирует таблицы? Просто чистит их?

Аватар пользователя Valeratal Valeratal 13 декабря 2008 в 18:12

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

Аватар пользователя Elodia Elodia 13 декабря 2008 в 18:29

Ну возможно.
Я просто не могу задать таблицы для модуля, потому что он все время жалуется на то, что некорректно введены пути. А что значит для него корректно - я не знаю(
Мне главное сделать так, чтобы базы не разрастались, как дрожжи в сельском сортире)) А как это сделать - пока не не понятно(

Аватар пользователя penexe penexe 13 декабря 2008 в 20:02

"Elodia" wrote:
Кстати, а как проверить - работает ли cron??
может действительно в нем проблема?

admin/logs/status - там написано когда крон последний раз запускался

Аватар пользователя Vladimir_VVV Vladimir_VVV 13 декабря 2008 в 21:58

что значит растет, он должен дойти до отметки X и все дальше рости некуда.
Если сайт из подписи то вижу еще во вьюсах сортировки по дате а это копии тех же страниц только по другому отсортированы и тоже их пихаетцо в кеш.
Посмотрите в (для 6-го, в 5-м не помню) "управление->настройка->производительность" что стоит в "Минимальное время жизни кеша:" , мож его уменьшить нужно(у меня часа 2 в среднем на сайтах).

Аватар пользователя Vladimir_VVV Vladimir_VVV 13 декабря 2008 в 23:10

"Valeratal" wrote:

а если отключить стандартный поиск?

так вродеж говорят кеш, это наверно таблицы с "cache" в своем имени или я не прав

Аватар пользователя Elodia Elodia 13 декабря 2008 в 23:43

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

Аватар пользователя kovtunos kovtunos 14 декабря 2008 в 15:11

"Valeratal" wrote:
дык поисковый модуль обходит страницы - даже те, которые никто не посещает - создает тем самым кэш

точнее поисковый индекс

Аватар пользователя Vladimir_VVV Vladimir_VVV 14 декабря 2008 в 22:47

Как я понял от частого очищения кеша кроном таблицы сильно фрагментируются, что и увеличивает размер самой таблицы при малом количестве записей в таблице.
В данном случае должен сильно помочь модуль db_maintence но он отказывается работать по непонятной причине да и выяснять не очень хотелось.
Для его замены предлагаю создать в корне сайта php файл с именем например optimize.php с таким кодом:

<?php
include_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
db_query('OPTIMIZE TABLE {cache} ;');
db_query('OPTIMIZE TABLE {cache_content} ;');
db_query('OPTIMIZE TABLE {cache_filter} ;');
db_query('OPTIMIZE TABLE {cache_menu} ;');
db_query('OPTIMIZE TABLE {cache_page} ;');
db_query('OPTIMIZE TABLE {cache_views} ;');

Для оптимизации других таблиц можно добавить еще 'db_query' с нужными таблицами.
Таблицы записаны в фигурных скобках что бы не указывать префикс если он есть(drupal сам его укажет).
В конце нет закрывающего пхп - так нужно.

Теперь создайте еще одну запись крона с временем вызова 1-6ч.(зависит от того как быстро у вас увеличивается размер) и укажите этот файл.

Аватар пользователя Elodia Elodia 15 декабря 2008 в 17:14

Попробовала запустить скрипт - говорит

Ошибка 500
Возникла ошибка при обработке запроса
Возможные причины, по которым возникла эта ошибка:

* Ошибка выполнения скрипта
Проинформируйте пожалуйста, владельца сайта о возникшей ошибке.

* Не хватает ресурсов для работы виртуального сервера
Попробуйте обратиться к сайту позже.

Аватар пользователя kovtunos kovtunos 18 декабря 2008 в 1:36

Еще одно наблюдение. Взял код очистки кэша

<?php
drupal_clear_css_cache();
$core = array('cache', 'cache_filter', 'cache_menu', 'cache_page');
$alltables = array_merge($core, module_invoke_all('devel_caches'));
foreach ($alltables as $table) {
  cache_clear_all('*', $table);
}
drupal_set_message('Кеш очищен.');
?>

отсюда:
http://setegnom.com/node/597
После очистки иду в смотреть в БД. Размер таблиц тот же. Что я неправильно делаю? И что в этом случае чистится?
Как правильно почистить кэш?

Аватар пользователя Vladimir_VVV Vladimir_VVV 23 декабря 2008 в 15:29

"kovtunos" wrote:
А почему так нужно?

Простая формулировка: Что бы после закрывающей скобки случайные пробелы не вывели заголовки http раньше чем их выведет drupal.

Вобще закрывать пхп без необходимости плохая примета.