![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
wrx888 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.3.2014 Репутация: нет Всего: нет |
Всем привет, у меня вдруг появилась одна проблема с моим приложением (C # + MySQL). Иногда пользователи имеют такую проблему:
"error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached». И они не могут подключиться к MySQL .. Я даже могу перезапустить MySQL сервер и нажать кнопку в приложении, чтобы пересоединиться, но это не поможет и результат остается таким же и существует только один способ - перезапуск самого приложения на проблемном компьютере. И тогда все ок и еще пару часов они могут работать. При запуске приложения оно использует только 30 МБ и когда появляется эта проблема то памяти примерно 400MB занято. Такое чувство что приложение засоряется всяким хламом. Но каждое соединение я закрываю через Dispose. Все формы тоже закрываю и вызываю Dispose..но это не решает проблему Кто-нибудь может объяснить мне, почему мое приложение стало выдавать такую проблему? Это сообщение отредактировал(а) wrx888 - 17.3.2014, 09:55 |
|||
|
||||
jexerrus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.3.2014 Репутация: нет Всего: нет |
Возможно проблема не в приложении а в mysql сервере.
Нужно смотреть в my.cnf и добавлять памяти + смотреть какие стоят параметры количества коннектов + смотерть что в slow_log mysql |
|||
|
||||
wrx888 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.3.2014 Репутация: нет Всего: нет |
такие проблемы наблюдаются на каждом из 4 серверов..и каждый из них по разному настроен (под свои нужды) и настараживает то, что перезагружаю сервер и проблема в клиентском приложении не уходит, а только рестарт его помагает решить проблему на время
|
|||
|
||||
jexerrus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.3.2014 Репутация: нет Всего: нет |
ну значит точно дело в сервере.
а что говорит мониторинг серверов ? нужно проанализировать количество потребляемой памяти, количество открытых коннектов, общее количество по буферам и главное - смотреть какие таблицы залочены и эти данные наложить на таймлайн и туда же наложить ваши отрубания - тогда станет чётко все ясно. у вас есть мунин или заббикс ? если проблема актуальная и нужно решить срочно - напишите мне [email protected] мы такие задачи решаем довольно часто =) |
|||
|
||||
wrx888 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.3.2014 Репутация: нет Всего: нет |
А вот я делал при зависании программы команду netstat и мне выдало различные тср соединения и одно бросается в глаза:
Server - эт другой сервер..и не понимаю откуда столько висящих соединений..когда закрываю приложение все они пропадают..т.е. мое приложение это все делает |
||||
|
|||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
У Вас в клиентской библиотеке, очевидно, используется пул соединений. Когда он заканчивается -- приходит абзац.
Почему он заканчивается -- другой вопрос. Либо где-то течёт, либо действительно много работы в параллель. Впрочем, судя по показанному -- скорее, действительно, течёт где-то. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |