@spbpython

Страница 70 из 785
Aleksander
05.07.2016
22:06:40
А ртути другой тулзы для мониторинга не юзает ?

Никто*

Roman
06.07.2016
07:10:53
Есть кто на pgday?

А есть ли какая-то инфраструктура счетчиков для python с бэкендом в редисе? Хочется метрики снимать в приложении.

Google
Vitali K.
06.07.2016
11:17:51
Мы делаем это вручную.. 1) Инкрементируем счетчик в редисе из разных воркеров 2) Отдельный скрипт бегущий в фоне раз в минуту отправляет значения в https://github.com/spotify/ffwd и очищает счетчики 3) ffwd отправляет счетчики в KairosDB 4) Смотрим результаты в Grafana

Вообще не то что тебе нужно ))

Vitali K.
06.07.2016
18:08:15
@lig11 в нашем случае надо обновлять тк у нас все вручную. Обычно в готовых либах обнулять не нужно, да

Serge
06.07.2016
22:36:20
23 Июля IT Global Meetup #8 http://www.meetup.com/spbpython/events/232311643/

http://www.meetup.com/spbpython/events/231934142/

Roman
07.07.2016
09:01:52
def _currency(self, currency): if currency == u'2': return u'rur' elif currency == u'1': return u'usd' elif currency == u'3': return u'eur'

Помните этот код?

А как его можно переписать строго на лямбдах?

Не могу не поделиться шЫдевром

Andrey
07.07.2016
09:03:51
и как, переписали?

Google
Roman
07.07.2016
09:04:38
Да там выяснилось, что у человека цель: лямбда ради лямбды

Andrey
07.07.2016
09:06:19
ну нет паттернматчинга в питоне к сожалению

Dmitry
07.07.2016
09:07:28
под паттерн-матчингом разумеешь switch-case?.. Так дикт же

GNU/Docker
07.07.2016
09:13:34
Но это не паттерн матчинг, а так, херня.

но лучше иф-елифов.

Serge
07.07.2016
09:21:10
но лучше иф-елифов.
Не всегда, но в таких случаях да

Dmitry
07.07.2016
09:22:31
о, да? хм, не знал

а как через енам такое сделать?..

Serge
07.07.2016
09:23:09
Инстанциировать enum числом и всё

Dmitry
07.07.2016
09:23:16
аа. всё, понял вроде

прикольно. Надо не забыть.

Serge
07.07.2016
09:23:33
Enum(1)

cur = CurEnum(1) assert cur == CurEnum.usd

коллеги, нужна помощь с профайлингом по памяти

есть сайт, да на джанге

запускаем, ждем, выжрал до хрена

хочется понять какой запрос к сайту увеличил потребление памяти

gevent

Google
Serge
07.07.2016
10:50:16
запросов много паралелльных, савнить потребление и ответы сложно

uwsgi вроде умеет репортить в логи потребление памяти, может кто знает тулзу чтобы это удобно копать?

вот тут пишут http://stackoverflow.com/a/12254394/396862

но блин, оно правда будет захватывать другие запросы, т.е. придется коррелировать срабатывания между собой... ну что ж

попробую сначала https://pypi.python.org/pypi/django-profiling-dashboard

попробую сначала https://pypi.python.org/pypi/django-profiling-dashboard
старое, не совместимое даже с годовалой джангой, плюс зависит от либы Кошелева (sic!) с такими же багами

завести завел, но результат не тот, что я ожидал.

в итоге логгирую через middleware

кое что накопал

а вот еще, а чем можно нарушения DRY в коде искать? pyflakes?

Konstantin
07.07.2016
15:20:07
в целом по коду проекта - не знаю, а по модулю pylint точно показывал количество повторов

Dmitry
07.07.2016
16:24:30
flake8

Serge
07.07.2016
16:56:14
ну flake8 это же pyflakes + pep8, правильно?

Aleksander
07.07.2016
17:49:54
народ, а что можно заюзать в качестве простой очереди для множества GET, POST запросов ? хочется чего-нибудь простого а не Celery python-rq боюсь не справится

Serge
07.07.2016
17:52:37
varnish

Roman
07.07.2016
17:54:51
varnish
Quagga

Aleksander
07.07.2016
17:55:33
nginx в качестве очереди для питона ?)

очередь задач на отправку запросов

Vitali K.
07.07.2016
17:56:36
Мы используем RQ

Google
Vitali K.
07.07.2016
17:56:46
Десятки миллионов запросов в день

Roman
07.07.2016
17:56:51
Vitali K.
07.07.2016
17:57:09
Если речь об исходящих запросах

Aleksander
07.07.2016
17:58:33
Десятки миллионов запросов в день
а можно поподробнее как добились ?

нет кол-ва на открытые сокеты ?

ограничения*

Serge
07.07.2016
17:59:04
Десятки миллионов запросов в день
для 20 лямов - это 231,5 запрос в сек

если ответ меньше секунды, то это очень мало параллельных соединений

а можно поподробнее как добились ?
а чего там добиваться? на gevent и больше можно

Admin
ERROR: S client not available

Serge
07.07.2016
18:00:53
мы вон тоже параллельно в несколько систем ходим, по 200 параллельных коннектов с каждого хоста

Aleksander
07.07.2016
18:02:03
а чего там добиваться? на gevent и больше можно
вот, мне вот интересно и было чистый RQ или нет

Vitali K.
07.07.2016
18:02:28
Чисты rq. Но ив без gevent

На сервер несколько сотен воркеров

Serge
07.07.2016
18:03:37
Vitali K.
07.07.2016
18:03:41
Да

Serge
07.07.2016
18:03:51
да вы батенька жируете;)

Vitali K.
07.07.2016
18:04:08
Можно сделать иначе, не спорю

Serge
07.07.2016
18:04:23
200 одновременных запросов спокойно летит с одного процесса на gevent на t2.small в aws

можно и больше, зависит от того насколько сложно результат обрабатывать

Google
Vitali K.
07.07.2016
18:05:12
Парсить и писать на Диск

Serge
07.07.2016
18:05:50
вот парсить - это может быть что угодно от маленьго json до километров xml

Vitali K.
07.07.2016
18:05:57
Знаю знаю)

Rq плохо работает с длинными очередями

Там LREM O(n) для удпления завершившейся таски

Лучше делить на несколько очередей по какому то признаку. И расплавление будет ровнее и редис тупить не будет

Serge
07.07.2016
18:13:40
вернемся к DRY flake8 не ищет повторы кода

Vitali K.
07.07.2016
18:14:26
А кто-есть умеет?

Aleksander
07.07.2016
18:18:02
Лучше делить на несколько очередей по какому то признаку. И расплавление будет ровнее и редис тупить не будет
а если для каждого юзера свою очередь заводить ? не будет ограничений на кол-во очередей ? умеет RQ поднимать очереди динамически ?

Vitali K.
07.07.2016
18:20:20
Создавать очереди динамически - да

Но каждый воркер привязан с списку очередей

Т.е. если юзеры меняются, то не вариант похоже

Serge
07.07.2016
18:22:40
pylint пишет, что умеет

Vitali K.
07.07.2016
18:22:50
Ограничения на кол-во очередей я не увидел тк у меня всего ~30

Roman
07.07.2016
18:23:31
Людям хотелось увидеть как сервис будет жить при росте нагрузки

Vitali K.
07.07.2016
18:30:06
@jetbootsmaker длинная очередь на нашем редисе это скажем > 50k

Dmitry
07.07.2016
18:44:49
Sergey
07.07.2016
18:44:58
как?

Dmitry
07.07.2016
18:45:12
и предлагает выделить в метод

Eugene
07.07.2016
18:45:27
https://www.jetbrains.com/help/idea/2016.1/analyzing-duplicates.html

Sergey
07.07.2016
18:45:38
здорово

Страница 70 из 785