0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 2436 Просмотров
*

DyakonFrost

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Последнее время постоянно сталкиваюсь с ошибкой jtablesession::Store Failed. Помогает REPAIR TABLE jos_session, но когда записей набирается много, сервер начинает тормозить или вообще падает. Прочитал что в качестве варианта решения проблемы можно хранить эту таблицу с помощью MEMORY. А стоит ли? Или может просто прописать раз в сутки TRUNCATE TABLE jos_session?

Joomla 1.5.21

Параметры сервера (VPS): ОС - CentOS 6; RAM - 256 Мб; CPU - 1x2.6 Ghz; SSD - 10 Gb.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Возможно, у вас переполняется директория, куда MySQL пишет временные файлы. Уточните, куда он пишет и размер этой папки. Почитайте здесь: http://forum.joomla.org/viewtopic.php?p=2073723#p2073723. У вас не проблема Joomla, а проблема настройки сервера. И обновите Joomla до 1.5.26. Что показывает терминал по команде df -h?
*

DyakonFrost

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Если я правильно понял MySQL хранит файлы в папке /tmp. Сейчас она вести 836 кб.

Результат команды df -h:

Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda3            9.0G  3.8G  4.8G  45% /
tmpfs                 122M     0  122M   0% /dev/shm
/dev/xvda1            194M   41M  144M  22% /boot

Честно пытался прочитать всю тему. Пока не осилил, на английском все...

Обновился до 1.5.26
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Покажите ваш файл my.cnf.
Вот рекомендации по настройке конфигурации MySQL. http://dedicatesupport.com/content/optimizatsiya-servera-mysql-shag-pervyi-utilita-mysqltuner. Также, найдите бесплатную утилиту mysqltuner.pl. Запустите ее и посмотрите, что она скажет. После правильной настройки MySQL можно будет дальше смотреть.
*

DyakonFrost

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Есть у меня подозрение что дело не только в MySQL. Как-то странно что все время сервер работал нормально, а последние 3 дня, ровно в 17:00 начинается такая нагрузка, что невозможно ничего сделать. Вот и сейчас та же история. Не могу ни phpMyAdmin загрузить ни по SSH зайти... Как только будет возможность воспользуюсь вашими инструкциями. Спасибо за помощь.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
У меня тоже Centos 6. При заходах роботов нагрузка CPU где-то от 10 до 30 %. Это нормально. Но у меня сервер помощнее. Когда делаю скриптом XML-карту, то сутки он работает под 50% без проблем. Посмотрите в логе, кто вас нагружал. Может есть смысл запретить его.
*

DyakonFrost

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Посмотрите в логе, кто вас нагружал. Может есть смысл запретить его.
Вот я тоже так думаю. Тем более что ранее, когда размещался на публичном хостинге, были случаи ддоса и тогда приходилось просить техподдержку ограничить доступ к сайту только с UA-IX адресов. Видимо история продолжается. Но как ограничить доступ, да еще и так чтобы поисковые боты могли заходить я не знаю.

Файл my.cnf и результат работы mysqltuner.pl в приложенных файлах. Немного не понял насчет замены my.cnf. Там есть my-medium.cnf - до 64Мb памяти и my-large.cnf для систем с оперативной памятью от 512Мb. А уменя 256 оперативки. Какой файл выбрать?

P.S. Просмотрел лог доступа, вроде ничего необычного. Поисковые боты, немного айпишников местных провайдеров (видимо кому-то все таки удается пробиться на сайт), все как в самый обычный день. А можно где-то посмотреть именно лог нагрузки? С какого айпи приходят запросы которые нагружают сервер? На сервере стоит ISPmanager.
« Последнее редактирование: 12.09.2013, 01:58:31 от DyakonFrost »
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Попробуйте сначала воспользоваться рекомендациями mysqltuner.pl. Сделайте бэкап нынешнего my.cnf. Добавьте в my.cnf следующие строки:
Код
    [mysqld]
...
    query_cache_size = 8M
    tmp_table_size = 32M
    max_heap_table_size = 32M
    thread_cache_size = 4
    table_cache = 4

В этот же раздел добавьте для логгирования медленных запросов >5 sec:
Код
slow_query_log = 1
long_query_time = 5
slow_query_log_file = /var/log/mysqld.slow.log

Перезагрузите сервис: service mysqld restart.
По-поводу файла .cnf - у вас сейчас medium, оставьте его. После изменений еще раз запустите тюнер.

Если эффекта не будет, посмотрим картину с временными файлами. Нагрузку по процессам вы можете смотреть в реальном времени в терминале, по-крайней мере, я лично не знаю, как иначе.
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Тюнер как раз и оптимизирует my.cnf, исходя из параметров системы. В вашем конфиге я не увидел явного указания, куда MySQL пишет временные файлы. Значит пишет по умолчанию в /tmp или др. Попробуйте выполнить в терминале:
Код
lsof -nc mysqld | grep -vE '(\.so(\..*)?$|\.frm|\.MY?|\.ibd|ib_logfile|ibdata|TCP)'
http://www.dbasquare.com/2012/06/02/how-to-find-mysql-binary-logs-error-logs-temporary-files/
Возможно есть смысл организовать запись временных таблиц в tmpfs. Рекомендации такие есть.
*

DyakonFrost

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Все сделал. Результаты в приложенном архиве. Насчет эффекта пока сказать не могу. Весь день сегодня тишь да гладь на сервере. Нагрузка на CPU не более 20%. А вот памяти у меня маловато. Чисто визуально (как вы и посоветовали смотрю в терминале) могу сказать что сейчас занято примерно 200 из 256 Mb.
« Последнее редактирование: 12.09.2013, 22:13:56 от DyakonFrost »
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
У вас не включается кэширование запросов почему-то (и это странно):
Цитировать
mysql: unknown variable 'query_cache_size=8M'
И сообщение:
Цитировать
[!!] Your MySQL version  is EOL software!  Upgrade soon!
Какая у вас версия MySQL - может нужно обновиться (удалить текущую версию и поставить новую стабильную, не забыв сделать бэкап БД)?

Кэшировать запросы нужно. После этого следующий шаг - организовать запись временных таблиц в tmpfs, сейчас пишутся в /tmp, судя по вашим данным.
*

DyakonFrost

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Это все по тому, что я слепая тетеря не в тот раздел строчки вставил. Теперь все правильно.

следующий шаг - организовать запись временных таблиц в tmpfs

А какой размер раздела прописать? Вот почитал инструкцию и там написано: "определите нужный размер опытным путем". Какие конкретно проводить опыты не уточняется))) Может есть какие-то рекомендации в соответствии с размерами базы данных? У меня база занимает 57 Мб.

Версия MySQL - 5.1.61. phpMyAdmin - 3.5.3. Да, похоже надо обновить...
« Последнее редактирование: 13.09.2013, 01:38:03 от DyakonFrost »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Случайно установил в настройках обработку сессий "memory cache". Теперь выдает ошибки не не могу зай

Автор bugmenot

Ответов: 2
Просмотров: 1637
Последний ответ 02.12.2012, 20:42:41
от wishlight
каждый день ошибка в база данных jos_session... как это исправить?

Автор demon_ice

Ответов: 1
Просмотров: 1618
Последний ответ 04.10.2011, 11:24:06
от demon_ice
Session Handler - не работает вариант "memory cache"

Автор tarabarsky

Ответов: 3
Просмотров: 2313
Последний ответ 05.06.2011, 16:40:21
от Dagiz
Allowed memory size exhausted

Автор Cerhio

Ответов: 4
Просмотров: 1514
Последний ответ 02.05.2011, 23:43:04
от yuri-it
Как отключить механизм Checkout - блокировка объектов в админке(!)

Автор e-homa

Ответов: 3
Просмотров: 2205
Последний ответ 19.02.2011, 17:23:15
от e-homa