У меня такая проблема. Последнее время стал стремительно расти кэш на всех моих сайтах, которые находятся у меня на хостинге. Это ужасно неудобно, потому что почти каждый день базы разрастаются настолько, что не помещаются в выделенной квоте дискового пространства и сайты зависают, приходится чистить кэш. Такого раньше не было.
Подскажите, пожалуйста, что с этим делать?
Комментарии
Если сайт из подписи то у вас ~4000 страниц по ~100кб только с главного домена это при простом подсчете 1:1 будет ~400Mb кеша.
Еще если у вас поиск включен то тоже большой индекс собирается. И всякие там вьюсы.
Неверно, они чт овсе у него в кеш грузятся? У меня такая же пробелма. ЕЕ признаки очевидны! Ошибки памяти. Я вед me;t писал. Хочу обобщить. Раньше сайт работал с 2-мя магазинами, 6-ой Друпал. с пауком собственным. 30-ю темами и кучей модулей, с обновлением каких-то модулей и версий стал глючить! Я понимаю, что Друпал требует минимум 16 мб php .а у меня было 15! Работало больше полугода. В итоге сменил тариф. плачу в 1,5 раза больше, php 32, а проблемы остались! Причем снес и магазины и паука, и модули, и тем большую часть .
Мой сайт http://mir2030.info
450 стр по 33 кб средняя! Считайте. Возможные глюки - признак одного и того же. а именно: невозможно получить дсотуп к регистрации, и редирект на лавную. отказ ссылок, не обновляются страницы, не грузится 105 строка какого-то там ink
date.module мешает обновлению и т.п. - это все об одном. Неучтенности и косяки в новых версиях!
Так а что делать-то?
У меня сайты висят эти в сети уже по пол года! А проблеме этой не больше недели...
Как ее решить???
а cron работает?
тупо, сменить хостинг
что за дурацкие ограничения на размер базы
у меня хоть гигабайт будет - ничего не скажут
p.s. есть модуль, db maintance -он может оптимизировать требуемые таблицы в базе - очень хорошо для кешей помогает
А что за хостинг такой хороший у вас? я вот менять скоро буду как раз.
Нет, ну это все расно неправильно как-то получается, что кэш растет до бесконечности. Это ж бред)
А модуль попробую, может поможет. Отпишусь потом)
Модуль вроде неплохой, но он при настройке постоянно говорит, что
* Path to tar is incorrect.
* Path to mysqldump is incorrect.
Не могу понять, что ему нужно...
А каким образом он оптимизирует таблицы? Просто чистит их?
пути для дампа - модуль может делать дапм перед процедурй оптимизация
оптимизация - это не очистка, это как бы "дефрагментация". В phpmyadmin эта процедура так и называется - оптимизация
Для таблиц кэшей весьма полезная
Вообще, насколько я понимаю, нет смысла удалять кэш вообще. Кэш нужен для ускорения работы.
Ну возможно.
Я просто не могу задать таблицы для модуля, потому что он все время жалуется на то, что некорректно введены пути. А что значит для него корректно - я не знаю(
Мне главное сделать так, чтобы базы не разрастались, как дрожжи в сельском сортире)) А как это сделать - пока не не понятно(
Кстати, а как проверить - работает ли cron??
может действительно в нем проблема?
admin/logs/status - там написано когда крон последний раз запускался
Все работает... Но кэш по-прежнему растет на 600 метров в день
что значит растет, он должен дойти до отметки X и все дальше рости некуда.
Если сайт из подписи то вижу еще во вьюсах сортировки по дате а это копии тех же страниц только по другому отсортированы и тоже их пихаетцо в кеш.
Посмотрите в (для 6-го, в 5-м не помню) "управление->настройка->производительность" что стоит в "Минимальное время жизни кеша:" , мож его уменьшить нужно(у меня часа 2 в среднем на сайтах).
а если отключить стандартный поиск?
так вродеж говорят кеш, это наверно таблицы с "cache" в своем имени или я не прав
У меня время жизни кеша вообще там несколько минут.
Однако он растет пока не занимает все пространство, выделенное для базы на хостинге и тогда все - сайты перестают работать(
Просто раньше такого не было, не знаю с чем это связано, но это как-то не очень удобно - чистить кэш через день вручную...
дык поисковый модуль обходит страницы - даже те, которые никто не посещает - создает тем самым кэш
точнее поисковый индекс
Скажите какие у Вас таблицы разростаются, а то дискусия заходит в тупик
Только те, что имеют в названии слово cache.
Как я понял от частого очищения кеша кроном таблицы сильно фрагментируются, что и увеличивает размер самой таблицы при малом количестве записей в таблице.
В данном случае должен сильно помочь модуль db_maintence но он отказывается работать по непонятной причине да и выяснять не очень хотелось.
Для его замены предлагаю создать в корне сайта php файл с именем например optimize.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ч.(зависит от того как быстро у вас увеличивается размер) и укажите этот файл.
Попробовала запустить скрипт - говорит
Ошибка 500
Возникла ошибка при обработке запроса
Возможные причины, по которым возникла эта ошибка:
* Ошибка выполнения скрипта
Проинформируйте пожалуйста, владельца сайта о возникшей ошибке.
* Не хватает ресурсов для работы виртуального сервера
Попробуйте обратиться к сайту позже.
права на файл такие же как и у других php-файлов ?
Обычно 644 ну у кого как.
По-моему все также...
Неужели все варианты исчерпаны?
Еще одно наблюдение. Взял код очистки кэша
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
После очистки иду в смотреть в БД. Размер таблиц тот же. Что я неправильно делаю? И что в этом случае чистится?
Как правильно почистить кэш?
А почему так нужно?
Простая формулировка: Что бы после закрывающей скобки случайные пробелы не вывели заголовки http раньше чем их выведет drupal.
Вобще закрывать пхп без необходимости плохая примета.
Установила все коды для очистки какие могла - вроде работает...