Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Почему возникает ошибка "too many connections" [RSS Feed]

#1 Июль 19, 2012 00:19:16

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

Слишком много запросов к бд? Значит проблема в коде? Разные страницы сайта выдают такое переодически. Куда копать?
Для работы с бд юзаю джанговский orm



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#2 Июль 19, 2012 00:21:59

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

Поменяйте max_connections или что-то в этом роде в конфиге mysql.



Офлайн

#3 Июль 19, 2012 00:32:37

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

К сожалению, сайт на хостинге, доступа к конфигам БД нет =(
Потрясу хостеров.



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#4 Июль 19, 2012 02:46:30

FlaPy
Зарегистрирован: 2012-04-25
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

обычно эта ошибка возникает когда забываем закрывать соединения и открываем новые.

Если выполнить SQL запрос:

 SHOW variables LIKE "max_connections";
то можно увидеть доступное количество соединений. Попытаться изменить это значение, например на 150, можно выполнив запрос :
SET global max_connections = 150;
Но эти значения будут сброшены в default при перезапуске сервера MySQL



Twisted || Tornado

Отредактировано FlaPy (Июль 19, 2012 03:15:37)

Офлайн

#5 Июль 19, 2012 11:25:28

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

Хостеры написали, что ближе к ночи (как раз, когда я работаю над сайтом), они перезапускают сервер. Иногда выдает 504 ошибку, но чаще - too many connections. Если проблема в том, что не закрываю соединения, то как их закрывать используя orm джанговский?



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#6 Июль 19, 2012 12:43:36

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

ORM стоит выше уровня закрывания соединений. Покажите проблемное место в коде, когда возникают ошибки. Если непонятно, где это происходит, самое время подружиться с логгированием.



Офлайн

#7 Июль 19, 2012 14:35:47

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

На разных страницах. Есть где два или три запроса, а есть где и один. Покурю логгирование на днях)



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#8 Июль 19, 2012 14:45:43

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

Интересно. А что за запросы такие покажите?



Офлайн

#9 Июль 19, 2012 15:27:45

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

Вот например, при работе с этой вьюхой бывает:

@is_teacher
def list_pages(request):
    if request.method == 'POST':
        post_pages = request.POST.getlist('pages[]')
        if request.POST['action'] == u'delete':
            for page_id in post_pages:
                p = Page.objects.get(id=int(page_id))
                p.delete()
                
    user = User.objects.get(id=request.session['user'])                   
    menu = Menu.objects.get(owner = user)
    if len(menu.items) < 1:
        pages = Page.objects.filter(user=user)
    else:
        pages = 0
    return render_to_response('list_pages.html', locals(), context_instance=RequestContext(request))
Даже если POST запрос в неё не посылаю, все равно иногда выдает ошибку эту



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Отредактировано barabansheg (Июль 19, 2012 15:29:52)

Офлайн

#10 Июль 19, 2012 17:35:55

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Почему возникает ошибка "too many connections"

А post_pages - большой список?
Может тогда:

Page.objects.fiter(id__in=map(int, post_pages)).delete()
И может user'a проще вот так:
user = request.user

Еще
len(menu.items)
смущает. items - это что?

Отредактировано reclosedev (Июль 19, 2012 17:42:06)

Офлайн

  • Начало
  • » Django
  • » Почему возникает ошибка "too many connections"[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version