Jump to content

Проблема с долгим запросом после обновления с 2.3.5 до 3.4.4

Featured Replies

Posted
comment_34984

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


После завершения обновления, я потестировал форум сам - всё работало достаточно шустро, но как только я пускал туда пользователей сайт почти сразу впадал в ступор - забивалась очередь в MySQL, веб-сервер запускал максимальное количество процессов и на этом всё заканчивалось.
По моим наблюдениям главным виновником был вот этот запрос:
SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1

Вот кусок от вывода show processlist;
| 1703 | d7 | localhost | d7 | Query | 915 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 2059 | d7 | localhost | d7 | Query | 915 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 2261 | d7 | localhost | d7 | Query | 913 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 2313 | d7 | localhost | d7 | Query | 911 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 2590 | d7 | localhost | d7 | Query | 905 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 2679 | d7 | localhost | d7 | Query | 901 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 2782 | d7 | localhost | d7 | Query | 898 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 2854 | d7 | localhost | d7 | Query | 895 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 2868 | d7 | localhost | d7 | Query | 894 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 2929 | d7 | localhost | d7 | Query | 892 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 3002 | d7 | localhost | d7 | Query | 890 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |
| 3009 | d7 | localhost | d7 | Query | 890 | Sending data | SELECT SUM(posts) as replies FROM ibf_topics WHERE approved=1 |

И далее ещё куча таких же, а потом уже и других запросов с небольшим временем выполнения.

По словам техподдержки Инвижна запрос выполняется при размещении постов. У меня он выполняется секунд 20 на "пустом" сервере, без посетителей. Таблица ibf_topics имеет 11 786 607 строк. А сообщений размещается туча - за сутки 50 тысяч новых тем и 60 тысяч новых постов, это в среднем 34 темы и 41 пост в минуту.

Форум большой, много пользователей, но уверен, что есть и ещё большие форумы и при этом нормально работающие.

Сервер у меня выделенный и неплохой - HP ProLiant DL380 G7, (2) Intel Xeon X5650, RAM 24GB, ну и RAID-массив из SAS-дисков.

Старая версия IPB работает быстро.

Не сталкивался ли кто с подобной проблемой?
Спасибо.

 

comment_34987

Какой сервер для БД используете? И попробуйте в ручную данную таблицу переконвертировать в utf8_general_ci и экспортировать обратно в БД.

Edited by Pred@tor

  • Author
comment_34990

Сервер БД - MySQL 5.5.31.

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

 

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

comment_34996

Сервер БД - MySQL 5.5.31.

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

 

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

worldoftanks.ru forums.ibresource.ru/

А ты попробуй включить Сжать javascript и CSS?,

Или напиши мне в лс. Попробуем исправить твою проблему.

  • Author
comment_35001

forums.ibresource.ru/

162 пользователя онлайн, у меня сейчас 4923 )

На их форум я уже писал, ничего интересного не посоветовали.

worldoftanks.ru

6947 онлайн. Вот это уже подходит. Спасибо. Отпишу им.

А ты попробуй включить Сжать javascript и CSS?,

Или напиши мне в лс. Попробуем исправить твою проблему.

Спасибо за предложение, но, думаю, пока не нужно. Напишу сначала админам форума танков )
comment_35004

162 пользователя онлайн, у меня сейчас 4923 )

На их форум я уже писал, ничего интересного не посоветовали.

6947 онлайн. Вот это уже подходит. Спасибо. Отпишу им.

Спасибо за предложение, но, думаю, пока не нужно. Напишу сначала админам форума танков )

Сразу говорю бесполезно, ибо они посылают куда подальше и не занимаются поддержкой стороних ресурсов. Я им писал уже как сделать на их форуме в ссылках русские буквы, так они сказали что наши админы супер умельцы сами знают что делать. Так что делай выводы ;)

Хотя всё таки надо бы взглянуть что у тебя вообще там творится.

Edited by Pred@tor

  • Author
comment_35023

Сразу говорю бесполезно

Жаль. Но надо попробовать.

Хотя всё таки надо бы взглянуть что у тебя вообще там творится.

Да толку нет, т.к. в продакшине сайт работает опять на старой версии. А сайт с новой версией стоит без нагрузки, а без нагрузки работает вполне сносно, хотя запрос и на пустом сервере отрабатывает не меньше 20-ти секунд.
comment_35025

Жаль. Но надо попробовать.

Да толку нет, т.к. в продакшине сайт работает опять на старой версии. А сайт с новой версией стоит без нагрузки, а без нагрузки работает вполне сносно, хотя запрос и на пустом сервере отрабатывает не меньше 20-ти секунд.

Попытка не пытка))

Ну а может всё таки стоит его покавырять? А нагрузку при необхадимости устроит)

comment_35031

В настройках не стоит пункт автоподписки всех тем форума пользователями? В списке пинг-серверов пусто? 

  • Author
comment_35079

В настройках не стоит пункт автоподписки всех тем форума пользователями? В списке пинг-серверов пусто?

Автоподписка не включена. А вот пинг-серверы были, по-умолчанию, удалил, потестирую. Хотя странно как они могли влиять на приведённый запрос в базу.

Спасибо.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.