Форум русской поддержки Joomla!® CMS
03.12.2016, 17:47:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

J! 3.4.8 переезд и проблемы

 (Прочитано 312 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« : 18.02.2016, 00:23:16 »

J!3.4.8
10.1.11-MariaDB - MariaDB Server
CentOS 7 x64
12Гб ОЗУ
120 SSD
История такова.
Задумал хостер сменить винт. Ну ради бога... Слил бэкапы, сохранил конфиги(mysql, nginx, etc...), винт заменили, установили систему как была. Поставил тот же сервер БД.
Заливаю бэкапы, конфиги, всё завелось без проблем кроме сайта.... Главная страница не открывается у сайта(сам сайт работает, кроме главной) Долго-долго грузит... Загрузки я так и не дождался....
На главной 2 модуля RokSprocket и при их отключении главная открывается отлично.

А с ними MySQL грузит 4 ядра на 100% !

Дамп БД приличный, 1Гб, InnoDB таблицы.
И вот что я заметил, был в /var/lib/mysql файл ibdata1, который на старом сервере был 1.5Гб, а сейчас он ~120Мб. И это единственное отличие от предыдущего варианта сервера.
И что я только не пробовал с бд вытворять, ничего не добился....! Может я как-то неправильно импортирую дамп, или первоначальная настройка MySQL сервера не такая... Повторюсь, конфиги со старого сервера, который отличается только размером винта.

Есть идеи ?

PS. Импорт делаю так >mysql dbname < dump.sql, импорт идёт очень долго но без ошибок.
« Последнее редактирование: 18.02.2016, 20:09:40 от Wertos » Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #1 : 18.02.2016, 00:26:11 »

Включать дебаг надо для начала.
Проверить таблицы на целостность.
REPAIR вроде
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #2 : 18.02.2016, 00:30:28 »

Включать дебаг надо для начала.
Проверить таблицы на целостность.
REPAIR вроде
дебаг включен, а InnoDB не поддерживает REPAIN, OPTIMIZE и т.д.
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #3 : 18.02.2016, 00:38:54 »

Хм. Да
Но http://stackoverflow.com/questions/226172/how-do-i-repair-an-innodb-table
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #4 : 18.02.2016, 00:43:54 »

Хм. Да
Но http://stackoverflow.com/questions/226172/how-do-i-repair-an-innodb-table
Минутку, я сейчас попробую...
И вот ещё вопрос. У меня #__content = ~1Gb и у неё я добавлял FULLTEXT индек к полям title, introtext, fulltext. А это как я понял штука насосная... Может быть из за этого ?
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #5 : 18.02.2016, 00:44:33 »

Построение индекса? Да - может
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #6 : 18.02.2016, 01:05:35 »

Собственно всё заработало после того как я удалил fulltext индексы с j_content, потом сделал репайн по мануалу(на всякий случай).
Индексы сейчас пересоздал. Работает отлично, как и было.
Блин весь день убил на это дело... Про индексы забыл совсем Sad
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #7 : 18.02.2016, 13:55:33 »

Собственно решено было всё до очистки кеша, очистил... Главная не работает. Индексы удалил опять, оптимизацию сделал. Безрезультатно (
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #8 : 18.02.2016, 20:10:33 »

Висит на этом запросе из модуля roksprocket
Код
SET timestamp=1455810781;
SELECT a.id, a.title, a.alias, a.introtext, a.`fulltext`, a.catid, a.state, a.access, a.created, a.created_by, a.created_by_alias, a.modified, a.featured, a.LANGUAGE, a.hits, a.publish_up, a.publish_down, a.images, a.urls, a.LANGUAGE, a.metakey, a.metadesc, a.metadata,c.title AS category_title, c.alias AS category_alias,ua.name AS author_name,vl.title AS access_title
FROM j_content AS a
LEFT JOIN j_categories AS c ON c.id = a.catid
LEFT JOIN j_users AS ua ON ua.id = a.created_by
LEFT JOIN j_viewlevels AS vl ON a.access = vl.id
LEFT OUTER JOIN (SELECT rsi.provider_id, rsi.ORDER FROM j_roksprocket_items AS rsi WHERE module_id = 424) rsi ON a.id = rsi.provider_id
WHERE ((a.access IN(1,1,2,3,6) AND (a.state != -2)) AND a.catid IN (151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203))
GROUP BY id
ORDER BY IF(ISNULL(rsi.ORDER),1,0),rsi.ORDER,a.created DESC LIMIT 120;
 
Записан
Taatshi
Support Team
*****

Репутация: +430/-3
Offline Offline

Пол: Женский
Сообщений: 4712

Мама, я снова верстал во сне...


« Ответ #9 : 18.02.2016, 22:00:31 »

Удалите модуль, пересоздайте.
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #10 : 18.02.2016, 22:49:02 »

Удалите модуль, пересоздайте.
Пробовал, тоже самое... Sad Опять сегодня день убил безрезультатно...
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3567


« Ответ #11 : 18.02.2016, 23:28:53 »

Хм, SET timestamp? Похоже, они изначально уже знали об этом. А почему LIMIT 120? Что, если поставить меньше? Сразу скажу, что не знаю ничего об этих расширениях, пишу только то, что думаю об увиденном.
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #12 : 18.02.2016, 23:42:19 »

Хм, SET timestamp? Похоже, они изначально уже знали об этом. А почему LIMIT 120? Что, если поставить меньше? Сразу скажу, что не знаю ничего об этих расширениях, пишу только то, что думаю об увиденном.
Если поставить меньше(10 например), то нормально работает !
Прикол в том, что отображаются только 40 ! Чтобы подгрузить ещё 40 нужно нажать кнопку, подгрузка на ajax(проверено) 120 это общее число подгружаемых материалов.
Дак вот я не пойму, если он уже выбрал 120, то зачем блин он AJAX запрос делает для подгрузки следующих 40, если они уже загружены !
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #13 : 18.02.2016, 23:43:16 »

Хм, SET timestamp? Похоже, они изначально уже знали об этом.
прикольные Azn т.е. мало того, что запрос хз какой, так давайте его еще и из лога медленных запросов исключим чтобы хостер помучался над темой почему же SET timestamp вешает сервак Azn
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #14 : 18.02.2016, 23:45:58 »

Погодите, а
Цитировать
SET timestamp=1455810781
меняет время выполнения запроса?

И кто разработчик?
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #15 : 18.02.2016, 23:47:04 »

прикольные Azn т.е. мало того, что запрос хз какой, так давайте его еще и из лога медленных запросов исключим чтобы хостер помучался над темой почему же SET timestamp вешает сервак Azn
Это далеко не весь запрос ! Я столько JOIN'ов оттуда выпилил... А вот это
Код:
AND a.catid IN (151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203)
это уже моё, т.к. в фильтре материалов, мне нужны только эти категории...

Но смысл то в том, что даже с кривыми, как вы говорите, запросами, на предыдущем сервере(хотя они зеркальны) всё летало отлично !
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #16 : 18.02.2016, 23:47:34 »

Погодите, аменяет время выполнения запроса?

И кто разработчик?
Rocket Theme
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #17 : 18.02.2016, 23:58:25 »

мда, я был о них большего мнения
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #18 : 19.02.2016, 00:05:41 »

меняет время выполнения запроса?
ну я так понимаю это ради этого. хотя может я и ошибаюсь

P.S. там по сути наверное и решение указано я так понимаю - удалить SET timestamp
« Последнее редактирование: 19.02.2016, 00:09:44 от dmitry_stas » Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #19 : 19.02.2016, 00:16:44 »

SET timestamp в коде не могу никак найти (
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #20 : 19.02.2016, 00:36:32 »

покажите исходный текст запроса
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #21 : 19.02.2016, 00:38:08 »

Код
LEFT OUTER JOIN (SELECT rsi.provider_id, rsi.ORDER FROM j_roksprocket_items AS rsi WHERE module_id = 424) rsi ON a.id = rsi.provider_id
Без этой строки работает нормально... Продолжаю тесты.
Запрос в отдельный файл засунут
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #22 : 19.02.2016, 00:40:04 »

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

Код
	protected function setBaseQuery()
{
$this->query->select('a.id, a.title, a.alias, a.introtext, a.`fulltext`, a.catid' . ', a.state, a.access, a.created, a.created_by, a.created_by_alias, a.modified, a.featured, a.language, a.hits' . ', a.publish_up, a.publish_down, a.images, a.urls, a.language, a.metakey, a.metadesc, a.metadata')->from('#__content as a');
 
$this->query->select('c.title AS category_title, c.alias AS category_alias');
$this->query->join('LEFT', '#__categories AS c ON c.id = a.catid');
 
$this->query->select('ua.name AS author_name');
$this->query->join('LEFT', '#__users AS ua ON ua.id = a.created_by');
 
// $this->query->select('um.name AS last_modified_by');
// $this->query->join('LEFT', '#__users AS um ON um.id = a.modified_by');
 
// $this->query->select('ROUND(v.rating_sum / v.rating_count, 0) AS rating, v.rating_count as rating_count');
// $this->query->join('LEFT', '#__content_rating AS v ON a.id = v.content_id');
 
$this->query->select('vl.title AS access_title');
$this->query->join('LEFT', '#__viewlevels AS vl ON a.access = vl.id');
 
// $this->query->select('l.title AS language_title');
// $this->query->join('LEFT', '#__languages AS l ON a.language = l.lang_code');
}
 
Закомментированные строки, это моё.
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3567


« Ответ #23 : 19.02.2016, 00:51:04 »

Без этой строки работает нормально...
Вроде безобидный подзапрос. Что может быть в этой таблице j_roksprocket_items?
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7734



« Ответ #24 : 19.02.2016, 00:54:00 »

ну так, чисто навскидку, если подзапрос отдельным запросом сначала сделать, а потом просто его результаты уже подставить в основной, что то поменяется? может там в принципе именно в нем затык, а не в основном запросе?
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #25 : 19.02.2016, 00:54:09 »

Вроде безобидный подзапрос. Что может быть в этой таблице j_roksprocket_items?

Строк там столько-же, сколько и материалов... Короче там то, как должны сортироваться материалы.
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #26 : 19.02.2016, 00:58:29 »

В настройках включил автоматическую сортировку (дата - убывание) и раскоментировал строки. Запрос стал таким
Код
SELECT a.id, a.title, a.alias, a.introtext, a.`fulltext`, a.catid, a.state, a.access, a.created, a.created_by, a.created_by_alias, a.modified, a.featured, a.LANGUAGE, a.hits, a.publish_up, a.publish_down, a.images, a.urls, a.LANGUAGE, a.metakey, a.metadesc, a.metadata,c.title AS category_title, c.alias AS category_alias,ua.name AS author_name,vl.title AS access_title FROM #__content as a LEFT JOIN #__categories AS c ON c.id = a.catid LEFT JOIN #__users AS ua ON ua.id = a.created_by LEFT JOIN #__viewlevels AS vl ON a.access = vl.id WHERE ((a.access IN(1,1,2,3,6) AND (a.state != -2)) AND a.catid IN (151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203)) GROUP BY id ORDER BY a.created DESC LIMIT 120

Всё начало работать.... ДО удаления кеша J!... Удалил и опять пздц Sad
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #27 : 19.02.2016, 01:09:28 »

Где-то я промахнулся с тюнингом MySQL ((
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3567


« Ответ #28 : 19.02.2016, 01:17:08 »

Вот что я вижу:
-LIMIT 120 с учетом GROUP BY
-Длинный диапазон IN
-Множество JOIN
Но главный виновник, IMHO - п.1
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #29 : 19.02.2016, 01:26:22 »

Вот что я вижу:
-LIMIT 120 с учетом GROUP BY
-Длинный диапазон IN
-Множество JOIN
Но главный виновник, IMHO - п.1
Ну от IN длинного мне ну никак не избавиться....
GROUP BY id может удалить ? Он там просто строкой в конце
Код
$this->query->group('id');
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet