Страница 1 из 1

Перегруз сервера

Добавлено: 04.09.2018 11:52
Гриif
Хостер отписал:
Долго выполняются запросы, аналогичные приведённому ниже.

Непосредственно этот запрос обработал 10908852 (более 10 миллионов) строк за 386 секунд - около шести с половиной минут.

SELECT ug.user_id, a.forum_id, r.auth_setting, r.auth_option_id, ao.auth_option
FROM phpbb3_acl_groups a, phpbb3_user_group ug, phpbb3_groups g, phpbb3_acl_roles_data r, phpbb3_acl_options ao
WHERE a.auth_role_id = r.role_id AND r.auth_option_id = ao.auth_option_id
AND a.group_id = ug.group_id
AND g.group_id = ug.group_id
AND ug.user_pending = 0
AND NOT (ug.group_leader = 1 AND g.group_skip_auth = 1)

AND a.forum_id = 21
AND ao.auth_option = 'm_';
При этом в указанных таблицах всего 33 тысячи строк.
В консоли mysql при помощи запроса 'show processlist;' я видел одновременно несколько десятков таких запросов в состоянии передачи данных.

Знает кто-то в чем беда?

Re: Перегруз сервера

Добавлено: 04.09.2018 12:05
romaamor
Боты штормуют ?

Re: Перегруз сервера

Добавлено: 04.09.2018 12:09
Siava
Гриif, отключите отображение модераторов форумов - поможет.

Re: Перегруз сервера

Добавлено: 04.09.2018 13:11
Гриif
Включить отображение модераторов: "Нет" и стоит.

Re: Перегруз сервера

Добавлено: 04.09.2018 13:25
Siava
Гриif, верно, к модераторам списка форумов не имеет отношения... :oops:
Этот запрос из функции acl_raw_data() в phpbb/auth/auth.php
Вот только почему так долго.. трссировкой баловались может либо индексы таблиц не в порядке?

Re: Перегруз сервера

Добавлено: 04.09.2018 13:28
Гриif
Нет, ничем не баловался, ничего не менял.
Вот хостер отписал еще, что был выключен кеш mysql запросов, включили...

Re: Перегруз сервера

Добавлено: 22.04.2019 21:13
Kot
Вот ровно такая же проблема возникла, на этих же запросах, по сути. Что интересно, я менял почти всё: апач, php, mysql... В общем, переезжал на новый сервер, боле мощный. А в итоге время генерации страницы "Новые сообщения" увеличилось с 0.08763s до 3.390s.

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

Насчёт кэша запросов тоже был вопрос. Но не потому, что он выключен, а потому, что работает странно: при минимальной разнице в настройках на старом хосте Memory fill ratio = 66.60 %, на новом -- .10 %. Очень странная разница.

Я даже обновился на самую последнюю версию (отдельно плевался от самого процесса обновления), в надежде, что это какая-то особенность последних версий софта и само всё наладится... Ан нет.

Для справки, старая система:
php 5.5.9
mysql 5.5.62

Новая:
php 7.2.15
mysql 5.7.25

Отправлено спустя 30 минут :
Короче, проблема действительно в выключенном кэше запросов. Я полагал, что кэш включается или выключается изменением значения переменной query_cache_size. Ан нет, нет ещё и query_cache_type, которая отсутствовала в конфигах на обоих хостах, но на старом хосте по умолчанию была выставлена в 1 (ON), а на новом почему-то по умолчанию в 0... Включил, всё полетело.