BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 июн 2025, 19:06

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: [7.0] show full processlist
СообщениеДобавлено: 13 май 2016, 21:03 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Постоянно в процессах mysql висят подобные процессы (висят тоже что - постоянно появляются)
Не испытываю ничего против, но может сделать чтобы они пореже появлялись? :)
Проверка лицензий ваша али нет?
Код:
SELECT COUNT(cid) FROM contract_module LEFT JOIN module ON module.id = contract_module.mid LEFT JOIN contract ON contract.id = contract_module.cid WHERE module.name = 'ipn' and (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now() )

SELECT COUNT(cid) FROM contract_module LEFT JOIN module ON module.id = contract_module.mid LEFT JOIN contract ON contract.id = contract_module.cid WHERE module.name = 'reports' and (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now() )

SELECT COUNT(cid) FROM contract_module LEFT JOIN module ON module.id = contract_module.mid LEFT JOIN contract ON contract.id = contract_module.cid WHERE module.name = 'dialup' and (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now() )

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] show full processlist
СообщениеДобавлено: 14 май 2016, 01:39 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
а на сколько часто появляются и как долго выполняются?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] show full processlist
СообщениеДобавлено: 28 май 2016, 02:41 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Изображение

Это все обращения к базе за 1 секунду.
Снимал дамп 14 секунд - за 14 секунд - 75 таких запросов. Оно так нужно? :)

Так же меня смущают запросы "SELECT 1"
Изображение

Так же кол-во за 1 секунду.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] show full processlist
СообщениеДобавлено: 28 май 2016, 02:46 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
1) SELECT 1 это запросы которые генерирует connectionPool, он таким образов проверяет живо ли соединение с базой

2) а что выдает запрос
Код:
EXPLAIN SELECT COUNT(cid) FROM contract_module LEFT JOIN module ON module.id = contract_module.mid LEFT JOIN contract ON contract.id = contract_module.cid WHERE module.name = 'ipn' and (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now() )


3) сколько времени выполняются запросы
Код:
SELECT COUNT(cid) FROM contract_module LEFT JOIN module ON module.id = contract_module.mid LEFT JOIN contract ON contract.id = contract_module.cid WHERE module.name = 'ipn' and (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now() )

Код:
SELECT mid, COUNT(cid) FROM contract_module LEFT JOIN contract ON contract.id = contract_module.cid WHERE (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now()) GROUP BY mid


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] show full processlist
СообщениеДобавлено: 28 май 2016, 02:58 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Вообще я с чего этим заинтересовался.
У меня вот такая вот картинка
Изображение

Крайне смущают Qcache lowmem prunes.
После перехода на 7.0 (до этого вроде не было жалоб) и полного перевода на utf8 (хотя перевел я базу на utf8 еще на 6.1), периодически очень долго открывается монитор модуля inet.
При этом простейший запрос (который выполняется при открытии модуля)
Код:
SELECT SQL_CALC_FOUND_ROWS auth_error.* FROM inet_auth_error_12_201605 AS auth_error WHERE auth_error.lastTime BETWEEN '2016-05-23 00:00:00' AND '2016-05-23 00:00:00' ORDER BY auth_error.lastTime DESC LIMIT 0,30

через клиент биллинга скриптом
Код:
public class testSelectAuthError
        extends GlobalScriptBase {
    @Override
    public void execute(Setup setup, ConnectionSet connectionSet)
            throws Exception {
        print("Start");
        long timeStart = System.currentTimeMillis();
        String tableName = "inet_auth_error_12_201605";
        Connection con = connectionSet.getConnection();
        int count = 0;
        String query = "";
        query = " SELECT auth_error.id FROM inet_auth_error_12_201605 AS auth_error WHERE auth_error.lastTime BETWEEN '2016-05-23 00:00:00' AND '2016-05-23 00:00:00' ";
        PreparedStatement ps = con.prepareStatement(query);
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            count++;
        }
        rs.close();
        ps.close();

        long timeEnd = System.currentTimeMillis();
        print("count = " + count);
        print("query = " + query);
        print("Process time: " + (timeEnd - timeStart) / 1000 + " s.");

    }
}

выбирается
Код:
Start count = 8 query =  SELECT auth_error.id FROM inet_auth_error_12_201605 AS auth_error WHERE auth_error.lastTime BETWEEN '2016-05-23 00:00:00' AND '2016-05-23 00:00:00'  Process time: 33 s.


show processlist показывает то sending data то sorting result то waiting for query cache lock.

При этом напрямую с консоли или через GUIшный клиент с другого компа - выбирается за доли секунд.

Лечится полными стопами всего и вся и соответственно перезапуском. Раз в сутки приходится делать.

Сейчас собираю больше инфы, играюсь с некоторыми настройками в my.cnf, так что думаю если ничего не изменится - ждите на следующей неделе в ХД )

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] show full processlist
СообщениеДобавлено: 28 май 2016, 03:00 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Phricker писал(а):
Крайне смущают Qcache lowmem prunes.


Думаю попробовать переписать стандартные сервисы чтобы для инета убрать кеширование подобных запросов.
Чтобы он их не помещал в кеш и соответственно не удалял в дальнейшем.
Код:
SELECT * FROM inet_accounting_period_12 WHERE contractId=193734 AND (timeTo IS NULL OR timeTo>='2016-05-27 23:23:39') ORDER BY timeFrom

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] show full processlist
СообщениеДобавлено: 28 май 2016, 03:05 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
1) SELECT 1 это запросы которые генерирует connectionPool, он таким образов проверяет живо ли соединение с базой

2) а что выдает запрос
Код:
EXPLAIN SELECT COUNT(cid) FROM contract_module LEFT JOIN module ON module.id = contract_module.mid LEFT JOIN contract ON contract.id = contract_module.cid WHERE module.name = 'ipn' and (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now() )


3) сколько времени выполняются запросы
Код:
SELECT COUNT(cid) FROM contract_module LEFT JOIN module ON module.id = contract_module.mid LEFT JOIN contract ON contract.id = contract_module.cid WHERE module.name = 'ipn' and (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now() )

Код:
SELECT mid, COUNT(cid) FROM contract_module LEFT JOIN contract ON contract.id = contract_module.cid WHERE (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now()) GROUP BY mid


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] show full processlist
СообщениеДобавлено: 28 май 2016, 03:05 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
skn писал(а):
2) а что выдает запрос
Код:
EXPLAIN SELECT COUNT(cid) FROM contract_module LEFT JOIN module ON module.id = contract_module.mid LEFT JOIN contract ON contract.id = contract_module.cid WHERE module.name = 'ipn' and (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now() )


Изображение


skn писал(а):
3) сколько времени выполняются запросы
Код:
SELECT COUNT(cid) FROM contract_module LEFT JOIN module ON module.id = contract_module.mid LEFT JOIN contract ON contract.id = contract_module.cid WHERE module.name = 'ipn' and (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now() )


SQLyog - Exec 0,257 sec. Total 0,258 sec

skn писал(а):
Код:
SELECT mid, COUNT(cid) FROM contract_module LEFT JOIN contract ON contract.id = contract_module.cid WHERE (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now()) GROUP BY mid



SQLyog - Exec 1,019 sec. Total 1,019 sec

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] show full processlist
СообщениеДобавлено: 28 май 2016, 03:20 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
а время такого запроса

Код:
SELECT mid, COUNT(cid) FROM contract LEFT JOIN contract_module ON contract.id = contract_module.cid WHERE (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now()) GROUP BY mid;


и

Код:
EXPLAIN SELECT mid, COUNT(cid) FROM contract LEFT JOIN contract_module ON contract.id = contract_module.cid WHERE (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now()) GROUP BY mid;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [7.0] show full processlist
СообщениеДобавлено: 28 май 2016, 10:58 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
skn писал(а):
Код:
SELECT mid, COUNT(cid) FROM contract LEFT JOIN contract_module ON contract.id = contract_module.cid WHERE (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now()) GROUP BY mid;

Два раза подряд
Изображение

Изображение
skn писал(а):
Код:
EXPLAIN SELECT mid, COUNT(cid) FROM contract LEFT JOIN contract_module ON contract.id = contract_module.cid WHERE (contract.date1 is null or contract.date1  <= now() ) and (contract.date2 is null or contract.date2 >= now()) GROUP BY mid;

Изображение

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.054s | 36 Queries | GZIP : On ]