
Zart
26.10.2016
13:09:34
ээ... а сейчас к мусклю чем подключение идет-то?

Roman
26.10.2016
13:09:38

Serge
26.10.2016
13:09:42

Dmitry
26.10.2016
13:10:21

Google

Serge
26.10.2016
13:10:40

Zart
26.10.2016
13:11:06
sqlalchemy не работает с базами. это обёртки, тредпул и орм

Serge
26.10.2016
13:12:52
ну, вот мне тоже кажется, что люди на торнадо писали и знали как надо базку пользовать
Dmitry вы профилировали приложение как-то?
может просто "настал момент"
и пора запустить второй процесс?

Zart
26.10.2016
13:14:19
на скорости 200км/ч мерседеса обгоняет запорожец. его водила скорчив зверскую гримасу рычит "а теперь - вторая!"
в худшем случае можно купить пока тазик помощнее и заняться рефакторингом

Dmitry
26.10.2016
13:15:40

Zart
26.10.2016
13:16:10
вроде ж считается оптимальным гонять колво ядер + пара сверху...

Roman
26.10.2016
13:16:16

Serge
26.10.2016
13:16:44

Google

Dmitry
26.10.2016
13:16:49

Zart
26.10.2016
13:17:00
ага... т.е. тазик приличный

Serge
26.10.2016
13:17:11
ну, значит нужен второй тазик;)

Zart
26.10.2016
13:17:16
брать второй и лоадбалансить..
причем может лоадбалансить не веб, а мускль

Dmitry
26.10.2016
13:17:43

Serge
26.10.2016
13:18:00
а нагрузка на CPU какая?

Roman
26.10.2016
13:18:07
как бы хер
эээ... теперь я в смятении. что бы такое почитать чтобы заведомо заблокироваться?

Serge
26.10.2016
13:18:18
если базка на отдельном сервере и нагрузка на проц большая, то базка не при чем

GNU/Docker
26.10.2016
13:18:34
метрики пособирать реально
чо ваще

Serge
26.10.2016
13:18:52

Zart
26.10.2016
13:18:53
надо мерять. причем всю цепочку - от фронта до базы...

GNU/Docker
26.10.2016
13:18:54
ну и на работу с базой посмотреть.
потому что орм прячет не детали базы от программистов, а плохое знание программистами конкретной БД)

Dmitry
26.10.2016
13:19:51
а нагрузка на CPU какая?
сам tornado грузит где-то 15-20% от всех ядер (не от одного). При этом на серваках еще есть другой софт, но теоретически можно было бы дойти до того, чтобы tornado грузил 50%

Roman
26.10.2016
13:20:38

Serge
26.10.2016
13:21:29

Zart
26.10.2016
13:23:17

Serge
26.10.2016
13:25:19
The GIL is controversial because it prevents multithreaded CPython programs from taking full advantage of multiprocessor systems in certain situations. Note that potentially blocking or long-running operations, such as I/O, image processing, and NumPy number crunching, happen outside the GIL. Therefore it is only in multithreaded programs that spend a lot of time inside the GIL, interpreting CPython bytecode, that the GIL becomes a bottleneck.

Google

Serge
26.10.2016
13:25:23
хм...

Zart
26.10.2016
13:25:50
цпу баунд треды хавают гил по черному
ну и опять же, помним про new gil в 3.3

Roman
26.10.2016
13:26:31

Serge
26.10.2016
13:26:54
ну, тут вопрос "как заблокируется"

Zart
26.10.2016
13:27:10
бизли там офигенные картинки рисовал, в частности про конвойный эффект в новом гил при смешивании и/о и цпу баунд тредов

Serge
26.10.2016
13:27:11
на чистом системном io - да, норм

Roman
26.10.2016
13:29:28

Zart
26.10.2016
13:29:53
www.dabeaz.com/python/NewGIL.pdf вот это надо обязательно знать про гил

Roman
26.10.2016
13:30:34

Dmitry
26.10.2016
13:30:53
Ладно, всем спасибо. Но, я так понимаю, что опыта решения подобной проблему ни у кого нет?

Dmitry
26.10.2016
13:31:26

Zart
26.10.2016
13:31:37
ну это как лечить пациента по его детским фотографиям...

Roman
26.10.2016
13:32:14
что бд?
вы утверждаете, что виновно общение с бд. на чём основано данное утверждение? вообще, возьмите тот же vmprof и постройте flamegraph )

Dmitry
26.10.2016
13:35:12

Serge
26.10.2016
13:35:17
ну вот, если нужен драйвер под торнаду, я дал ссылку, драйвер - это то что под sqlalchemy у вас работает и собственно ходит в базу

Google

Dmitry
26.10.2016
13:39:12
Всем спасибо, думаю мне лучше вернуться уже завтра

Serge
26.10.2016
13:39:28
и лучше к исследованию приложения;)

Roman
26.10.2016
13:39:48
https://github.com/brutasse/graphite-api/blob/master/graphite_api/functions.py#L68-L71
вот зачем так писать?

Zart
26.10.2016
13:40:43
return reduce(operator.sub, safeValues)

Serge
26.10.2016
13:44:52
потому что reduce надо импортить в 3-ке
а если оно под оба, то придется что-то делать

Zart
26.10.2016
13:45:36
try:
reduce
except NameError:
from functools import reduce

Serge
26.10.2016
13:46:01
именно это я и называю что-то делать

Admin
ERROR: S client not available

Zart
26.10.2016
13:46:12
ну или брать бгмерзкий six

Serge
26.10.2016
13:46:15
и они разные, нно для этого кейса не критично

Zart
26.10.2016
13:46:19
где всё сделато за нас

Serge
26.10.2016
13:46:32
там, кстати, не всё;)

Zart
26.10.2016
13:47:03
ну я про вот эти вот проверки 2/3 и приведение импортов к общему знаменателю

Roman
26.10.2016
13:47:19

Zart
26.10.2016
13:47:28
а накой он?

Serge
26.10.2016
13:47:48
ну я про вот эти вот проверки 2/3 и приведение импортов к общему знаменателю
вот за этим;)
но там не всё;)

Google

Serge
26.10.2016
13:48:11
я вечно натыкаюсь что там чего-нибудь нет

Zart
26.10.2016
13:48:16
по мне проще вставить пару except ImportError с фоллбаками

Serge
26.10.2016
13:48:17
в смысле не покрыто

Zart
26.10.2016
13:48:36
чем тащить полновесный пакадж, который еще и ломает порой серьезно код

Serge
26.10.2016
13:49:13
когда у тебя только два импорта да, но часто он уже есть

Roman
26.10.2016
13:49:23
Нашел в продакшен коде))

GNU/Docker
26.10.2016
13:49:33
обычно оно быстро превращается в собственный compat.py
Костлей

Serge
26.10.2016
13:49:57

GNU/Docker
26.10.2016
13:49:58
> Костлей

Serge
26.10.2016
13:50:42
просто если ты уже написал метакласс с six и заюзаз строки оттуда, то можно и для импортов уже six

Zart
26.10.2016
13:51:20
нууу... если нужна настолько тяжелая артиллерия, то можно и сикс потащить
я ни разу не против оправданных зависимостей
а тащить сикс вместо банального from __future__ import print_function, unicode_literals порой оверкилл

Serge
26.10.2016
13:56:57

Roman
26.10.2016
13:59:17
кстати, а что, напоролся на чтото?
да тут в devops рассказывали что можно графит ускорить раза в 3 запустив на pypy и что pypy не любит всякую магию и для него list comprehensions - это плохо.

Zart
26.10.2016
13:59:46
ээээ

Roman
26.10.2016
13:59:48
но на самом деле list comprehensions в pypy быстрее