Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 7, 2012 09:42:01

h0rn3t
От:
Зарегистрирован: 2012-01-07
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

tornado 504 ошибка

Вообщем так есть фронтенд nginx -> балансирощик haproxy -> бекенд tornado (3 сервера). Сайт очень легкий (пару строк текста без всяких джаваскриптов и прочего на Django, автообновление страницы каждые 10 сек), соединений в среднем 2500-3000. Если отключить 2 сервера у клиентов начинают возникать 504 ошибки. Вопрос в следуйщем сервер Core i7 нагружено только 1 ядро из 8, даст ли увеличение процессов tornado на сервере каких то результатов?



Офлайн

#2 Янв. 7, 2012 11:40:32

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

tornado 504 ошибка

> соединений в среднем 2500-3000
3000 в секунду (нагрузка)? сколько соединений держит 1 процесс (Х)? делим нагрузку на Х + 1 = оптимальное кол-во процессов.

> даст ли увеличение процессов tornado на сервере каких то результатов?
В большинстве случаев да. (т.к. 1 процесс выдает не более 3к “hello world” на среднем сервере)

пофоркать процессы можно с пом. модуля tornado.process

Офлайн

#3 Янв. 10, 2012 08:04:40

h0rn3t
От:
Зарегистрирован: 2012-01-07
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

tornado 504 ошибка

В том то и дело что на одном сервере запущено 8 процессов, а на остальных двух по 4, если отрубить их то будут ошибки 504. Если добавить на первый сервер еще 8 процессов это поможет делу?



Офлайн

#4 Янв. 10, 2012 17:12:35

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

tornado 504 ошибка

504 вываливается сразу или через какое-то время?

> одном сервере запущено 8 процессов
т.е. все ядра загружены, добавление процессов даст производительности только в том случае если сервер криво написан, например использует блокирующие (синхронные) методы. Но ещё не факт что проблема в этом, много фактов не известно, возможно криво настроен nginx / haproxy.

> Если добавить на первый сервер еще 8 процессов это поможет делу?
Добавьте - протестируйте.

Офлайн

#5 Янв. 10, 2012 21:20:31

h0rn3t
От:
Зарегистрирован: 2012-01-07
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

tornado 504 ошибка

запуск джанго проекта производится этим скриптом

import os
import sys

DJANGO_ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DJANGO_APPS_DIR = os.path.join(DJANGO_ROOT_DIR, 'app')

def daemon(iport):
import tornado.wsgi
import tornado.ioloop
import tornado.httpserver

sys.path.insert(0, DJANGO_APPS_DIR)
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

container = tornado.wsgi.WSGIContainer(application)
http_server = tornado.httpserver.HTTPServer(container)
http_server.listen(iport)
tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
daemon(int(sys.argv[1]))



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version