BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 16 июн 2024, 09:29

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: MySQL 5.5 и PREPARED
СообщениеДобавлено: 09 июл 2012, 22:01 
Не в сети
Клиент

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
Добрый день!

После перехода на 5.2 версию и движок InnoDB в логах некоторых программ стали появляться сообщения Can't create more than max_prepared_stmt_count statements (current value: 16382)]. Причем сам bgbilling работает нормально. Что можете посоветовать в этой ситуации? Не думаю что простое увеличение этого числа в корне решит ситуацию. Включил в mysql set global log=on и вижу много вот таких записей:
Код:
                  535 Prepare   SELECT DISTINCT cid FROM contract_module  WHERE mid = 3
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT summa1 + summa2 - summa3 - summa4 FROM contract_balance WHERE cid=? AND yy=? AND mm=?
                  535 Prepare   SELECT summa1 + summa2 - summa3 - summa4 FROM contract_balance  WHERE cid=? AND ((yy*12) + mm)<=((?*12) + ?) ORDER BY yy DESC, mm DESC LIMIT 1
                    5 Prepare   SELECT status FROM ipn_contract_status_3 WHERE cid=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
120709 21:50:01   535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
                  535 Prepare   SELECT * FROM contract WHERE id=?
--More--(11%)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MySQL 5.5 и PREPARED
СообщениеДобавлено: 10 июл 2012, 12:01 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Скоро будет средство диагностики для этого . Сделали уже его для 5.1
Код:
808   09.07.2012 13:04:13   ДОБАВЛЕНО   Возможность определения незакрытых ресурсов БД.


Для 5.2 в ближайшее время тоже выпустим, я отпишусь как настроить. Начали c 5.1, так как там это проще сделать - на старых версиях библиотек. Если кому надо, могу сказать как настроить для 5.1(начали уже отлаживать на одном из клиентов). Как результат исправления после диагностики (вы присылаете логи - мы правим ) надеемся получить сокращение потребляемой памяти и ускорение времени работы ..А родилось это все оттого что к нам в 5.2 обратились с проблемой что абонплаты считаются 6 часов, в результате диагностики исправили и стало считать на порядок меньше .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MySQL 5.5 и PREPARED
СообщениеДобавлено: 10 июл 2012, 12:09 
Не в сети
Клиент

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
Надо, у меня на 5.1 есть клиент, который тоже страдает.
А для 5.2 очень очень жду, запросов много и стабильно несколько раз в сутки mysql забивается. А дергать каждый раз базу - не комильфо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MySQL 5.5 и PREPARED
СообщениеДобавлено: 12 июл 2012, 17:38 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
Была такая же проблема с 5.1. Биллинг занимал все каналы в mysql и никто подключаться не мог.
Сделал cachePrepStmts=false в настройках jdbc. Помогло. На прозизводительность вроде не повлияло, уже несколько месяцев все работает нормально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MySQL 5.5 и PREPARED
СообщениеДобавлено: 12 июл 2012, 18:52 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Похоже, что в библиотеке mysql, которая используется в 5.2 теперь по умолчанию useServerPrepStmts=true, хотя раньше было false (вроде бы были какие-то проблемы с ними в mysql драйвере).
С одной стороны, они должны работать быстрее, с другой - при их кэшировании могут возникнуть такая ситуация, что очень много закешированных становится.
Сейчас периодически выкладываем обновления "Освобождение ресурсов" (viewtopic.php?f=22&t=6959), которое должно помочь решить эту проблему.
Установка cachePrepStmts=false или useServerPrepStmts=false также уберет эту проблему, но может повлиять на производительность.


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

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


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


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

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