Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекращает поддержку phpBB версии 3.2.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2020 года.
С учетом этого, а также того, что версия 3.2.x больше не будет получать обновлений, за исключением связанных с проблемами безопасности
(только при их наличии и только до 7 ноября 2020 года), рекомендуется обновить конференции до версии 3.3.x.

Высокая нагрузка от phpBB 3.3

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Craftsman
phpBB 1.4.1
Сообщения: 40
Стаж: 2 года 6 месяцев
Благодарил (а): 6 раз
Поблагодарили: 9 раз

Высокая нагрузка от phpBB 3.3

Сообщение Craftsman »

Караул!!! :evil: Что-то в новом 3.3.0 что-то явно нет так!

Обновил phpBB вчера вечером с версии 3.2.8, которая прекрасно работала, новый движок без проблем аккуратно обновился.
Но! С этого момента обнаружилось, что процессор стал жутко перегреваться, температура часто доходит до 90 градусов, так недалеко и до тротла! :!:
Кулер процессора стал выть непрестанно, хотя раньше его не было слышно.

Причины оказались в том, что в новой версии phpBB обнаружился явно неоптимизированный запрос к MariaDB, в результе лог mysql-slow.log стал непрерывно забиваться нижеследующими строками:

Код: Выделить всё

# Time: 200204  9:45:55
# User@Host: dbname_phpbb[dbname_phpbb] @ localhost []
# Thread_id: 1884567  Schema: dbname_phpbb  QC_hit: No
# Query_time: 16.152308  Lock_time: 0.000060  Rows_sent: 30  Rows_examined: 304
SET timestamp=1580798755;
SELECT p.post_id
        FROM phpbb_posts p
        WHERE p.topic_id = 802466
                AND ((p.post_visibility = 1) OR ((p.post_visibility = 0 OR p.post_visibility = 3) AND p.poster_id = 54241))
        ORDER BY p.post_time ASC, p.post_id ASC
 LIMIT 60, 30;

поэтому нагрузка на CPU и его температура резко возросла.

Как оптимизировать этот запрос? :?:

Мой XEON в таком режиме долго не выдержит :cry:

Изображение Изображение
Последний раз редактировалось Craftsman 04.02.2020 12:29, всего редактировалось 1 раз.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4608
Стаж: 16 лет 1 месяц
Откуда: Питер
Благодарил (а): 137 раз
Поблагодарили: 571 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение Siava »

Craftsman, я бы с починки кулера начал :)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.5.x)
Craftsman
phpBB 1.4.1
Сообщения: 40
Стаж: 2 года 6 месяцев
Благодарил (а): 6 раз
Поблагодарили: 9 раз

Re: Сообщаем об ошибках phpBB 3.3.x разработчикам

Сообщение Craftsman »

Siava писал(а): 04.02.2020 12:29 Craftsman, я бы с починки кулера начал :)
Шутите, наверное :D Но мне не до шуток, потому что этот запрос выполняется чрезвычайно долго, около 10-16 секунд, и лог mysql-slow.log был практически пустой, так, по мелочам.

А теперь он забит, и это печальный факт :( Вы же сами видите, что творится в Мюнине.

Вот, еще доказательства, что MariaDB стала перегружаться, хотя на предыдущей версии phpBB такого не было.
Как говорится, никогда такого не было, и вот опять ;)

Изображение Изображение Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15376
Стаж: 14 лет 9 месяцев
Откуда: Красноярск
Благодарил (а): 406 раз
Поблагодарили: 1832 раза

Re: Высокая нагрузка от phpBB 3.3

Сообщение rxu »

А попробуйте-ка отключить вот эту настройку и посмотрите, что будет (при просмотре тем). Смотреть под обычным юзером, не под гостем, не под администратором и не под модератором (не должно быть прав на одобрение сообщений/тем, и не в режиме проверки прав).

unapproved.png
На локалке запрос занимает мгновение.

Код: Выделить всё

QUERY #8
SELECT p.post_id
FROM phpbb_posts p
WHERE p.topic_id = 1
AND ((p.post_visibility = 1) OR ((p.post_visibility = 0 OR p.post_visibility = 3) AND p.poster_id = 2))
ORDER BY p.post_time ASC, p.post_id ASC
LIMIT 30 OFFSET 0

QUERY PLAN
Limit (cost=2.05..2.06 rows=1 width=8)
-> Sort (cost=2.05..2.06 rows=1 width=8)
Sort Key: post_time, post_id
-> Seq Scan on phpbb_posts p (cost=0.00..2.04 rows=1 width=8)
Filter: ((topic_id = 1) AND ((post_visibility = 1) OR (((post_visibility = 0) OR (post_visibility = 3)) AND (poster_id = 2))))

Before: 0.09336s | After: 0.09379s | Elapsed: 0.00043s

Да и здесь примерно аналогично. Может, с индексами таблицы posts проблемы? Или требуется оптимизация БД? Или SQL сервер не оптимизирован?
Изображение
Craftsman
phpBB 1.4.1
Сообщения: 40
Стаж: 2 года 6 месяцев
Благодарил (а): 6 раз
Поблагодарили: 9 раз

Re: Высокая нагрузка от phpBB 3.3

Сообщение Craftsman »

1. Отключил все расширения.
2. "А попробуйте-ка отключить вот эту настройку" - отключил.

Запрос не исчез, по-прежнему сыпится и накапливается в mysql-slow.log, и по-прежнему такой же длительный, доходит до 10-15 сек.
Может, с индексами таблицы posts проблемы?
Или требуется оптимизация БД?
Или SQL сервер не оптимизирован?
До установки 3.3.0 с ними было все нормально.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15376
Стаж: 14 лет 9 месяцев
Откуда: Красноярск
Благодарил (а): 406 раз
Поблагодарили: 1832 раза

Re: Высокая нагрузка от phpBB 3.3

Сообщение rxu »

Craftsman писал(а): 04.02.2020 18:50 по-прежнему сыпится
С отключенной настройкой этот запрос ничем не отличается от того, что был в 3.2. Смотрите, что изменилось в конфигурации и настройках сервера.
Изображение
Craftsman
phpBB 1.4.1
Сообщения: 40
Стаж: 2 года 6 месяцев
Благодарил (а): 6 раз
Поблагодарили: 9 раз

Re: Высокая нагрузка от phpBB 3.3

Сообщение Craftsman »

rxu писал(а): 04.02.2020 18:56 Смотрите, что изменилось в конфигурации и настройках сервера.
Изменилась только версия - была 3.2.8, стала 3.3.0.
Причем установилась гладко, без малейших проблем.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15376
Стаж: 14 лет 9 месяцев
Откуда: Красноярск
Благодарил (а): 406 раз
Поблагодарили: 1832 раза

Re: Высокая нагрузка от phpBB 3.3

Сообщение rxu »

Проверяйте, не требует ли оптимизации таблица phpbb_posts, все ли индексы в таблице на месте.
Изображение
Craftsman
phpBB 1.4.1
Сообщения: 40
Стаж: 2 года 6 месяцев
Благодарил (а): 6 раз
Поблагодарили: 9 раз

Re: Высокая нагрузка от phpBB 3.3

Сообщение Craftsman »

А разве innodb нуждается в оптимизации? Это надо только для MyISAM, имхо
Последний раз редактировалось Craftsman 04.02.2020 19:27, всего редактировалось 1 раз.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15376
Стаж: 14 лет 9 месяцев
Откуда: Красноярск
Благодарил (а): 406 раз
Поблагодарили: 1832 раза

Re: Высокая нагрузка от phpBB 3.3

Сообщение rxu »

Ну нет - так нет.
Изображение
Craftsman
phpBB 1.4.1
Сообщения: 40
Стаж: 2 года 6 месяцев
Благодарил (а): 6 раз
Поблагодарили: 9 раз

Re: Высокая нагрузка от phpBB 3.3

Сообщение Craftsman »

Ок-ок, я оптимизирую innodb, но из-за большой базы она будет проходить долго, часа 3-4, а то может, и больше.
Давайте я сделаю это ночью, когда юзеры рассосутся, а то на посещаемости скажется.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 15376
Стаж: 14 лет 9 месяцев
Откуда: Красноярск
Благодарил (а): 406 раз
Поблагодарили: 1832 раза

Re: Высокая нагрузка от phpBB 3.3

Сообщение rxu »

Это как вам будет угодно. Я говорю о том, что подобного бага в 3.3 нет, он ни у кого не повторяется. Обсуждаемый SQL запрос по сравнению с версией 3.2 не поменялся. Сам по себе запрос элементарный и не может вызывать такой нагрузки беспричинно.

Код: Выделить всё

SELECT p.post_id FROM phpbb_posts p
WHERE p.topic_id = 1
AND (1 = 1)
ORDER BY p.post_time DESC, p.post_id DESC
LIMIT 60, 30
Поэтому имеет смысл посмотреть на то, как оптимизирован и работает SQL сервер. Например:
https://server-gu.ru/innodb_file_per_table/
http://code.openark.org/blog/mysql/how- ... e-followup

и т.д. Вариантов масса.
Изображение
Аватара пользователя
Balamut
Поддержка
Поддержка
Сообщения: 2213
Стаж: 15 лет 11 месяцев
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 153 раза

Re: Высокая нагрузка от phpBB 3.3

Сообщение Balamut »

Siava писал(а): 04.02.2020 12:29 Craftsman, я бы с починки кулера начал :)
А я бы начал с перехода на PostgreSQL.
При активном юзанье Gitea на Go, заметил, что MariaDB не всегда адекватно себя ведёт. Понимаю, что пыха - не гоу, но осадок остался.

То ли он украл, то ли у него, но...
//
// That's all, Folks!
// -------------------------------------------------
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4608
Стаж: 16 лет 1 месяц
Откуда: Питер
Благодарил (а): 137 раз
Поблагодарили: 571 раз

Re: Высокая нагрузка от phpBB 3.3

Сообщение Siava »

Smayliks писал(а): 05.02.2020 12:58 А я бы начал с перехода на PostgreSQL.
Я конвертировал базу своего форума в Postgre. Не скажу, что доволен быстродействием. Да ты и сам в курсе :)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.5.x)
Craftsman
phpBB 1.4.1
Сообщения: 40
Стаж: 2 года 6 месяцев
Благодарил (а): 6 раз
Поблагодарили: 9 раз

Re: Высокая нагрузка от phpBB 3.3

Сообщение Craftsman »

По поводу перегрузки процессора продолжаю разбираться.
Кое-что удалось выяснить, но не до конца.
О результатах отчитаюсь.

И еще сделаю безвозмездный подарок нашему сообществу :)

Отправлено спустя 1 час 56 минут 39 секунд:
Решил не тянуть с подарком, ловите ;)

Вернуться в «Поддержка phpBB 3.3.x»