@ru_python

Страница 9340 из 9768
Just
15.06.2019
13:16:45
Подскажите. Поднял на сервере ubuntu 18, postgres 10, nginx, gunicorn. При селекте данных из бд при большой выборке сервер падает по таймауту, хотя и у , gunicorn и у nginx тайм-аут увеличил, но это не самое критичное, самое критичное то, что gunicorn не очищает оперативную память после этих выборок, в итоге забирает все доступные 16гб и сервер зависает. Как решить, в какую сторону копать?

Tishka17
15.06.2019
13:18:45
1. Не делать таких выборок, это все таки веб приложение 2. Это не gunicorn очищает, а питон. Проверяй что ты написал 3. В крайнем случае можно гуникорну сказать убивать воркеры после какого-то количества запросов

Если запрос выполняется больше 1 секунды, ты явно что-то делаешь не то

В идеале сервер конечно должен отвечать за 0.1

Google
Tishka17
15.06.2019
13:20:52
Но тут уже надо оптимизировать

Just
15.06.2019
13:21:33
Бд 3 Гб, поля в ней типа Текст, Контекстные индексы, векторный поиск

Tishka17
15.06.2019
13:22:40
Сложно, понял

Ну, короче все равно вопрос к твоему коду

И почему в питон прилетает много данных

Just
15.06.2019
13:26:38
Данных то и не много, вопрос в том что поиск отрабатывает медленно и это вешает все по таймауту и эти данные какого-то фига висят в оперативке

Tishka17
15.06.2019
13:30:58
Точно они в питоне висят?

Ну и медленно отрабатывающий поиск в любом случае надо чинить

Just
15.06.2019
13:33:41
Поиск да, надо чинить, но он максимум отрабатывает за 75с, что не особо плохо, обычно 12-13с, все зависит от сложности запроса. Сами процессы gunicorn висят и толстеют

Tishka17
15.06.2019
13:34:23
12-13 уже в 13 раз хуже чем должен и в 100 раз хуже чем желательно

Just
15.06.2019
13:36:18
Запросы оптимизированы настолько, насколько позволяет сервер, индексы и статистика, все сделано и собрано, не в ту сторону

Google
Tishka17
15.06.2019
13:39:04
Запрос 70 секунд звучит так как будто, его не надо выполнять сразу, а стоит ставить в очередь и потом уведомлять клиента о результате

Tishka17
15.06.2019
13:40:23
Но вообще странно, что память течет

Alex
15.06.2019
13:41:16
кто сказал что она течет

Tishka17
15.06.2019
13:41:26
В первом сообщении

Alex
15.06.2019
13:41:33
В первом сообщении
нет, это предположение.

Tishka17
15.06.2019
13:41:33
Говорит воркеры съедают все память постепенно

Alex
15.06.2019
13:41:36
вопрос как определил

Just
15.06.2019
13:42:10
Как такое определил? Открыл диспетчер и увидел, что воркеры съели все

В этом и основной вопрос

Tishka17
15.06.2019
13:42:22
Как бы если в клиент летит 100 строк из таблицы. И у нас 1 rps, это должно полгода течь

Alex
15.06.2019
13:42:50
Tishka17
15.06.2019
13:42:52
А вряд ли тут больше 1 рпс с такой скоростью ответа

Just
15.06.2019
13:43:28
Alex
15.06.2019
13:43:41
тут бы мониторинг не повредил.

на крайний случай гуникорн воркеры можно перезагружать по количеству запросов

Just
15.06.2019
13:44:23
Где такая настройка?

Alex
15.06.2019
13:44:36
Где такая настройка?
эх сразу кидаться на легкий вариант?

Google
Mew
15.06.2019
13:44:41
Смотрю мануалы для написания ботов под Telegram. Хочу понять, какая библиотека для разработки telegram-бота наиболее функциональна и понятна? Вообще, я нашел две библиотеки, которые встречались наиболее часто: - pyTelegramBotAPI (telebot) - python-telegram-bot (telegram.ext) Буду признателен, если поясните, какая между ними разница и куда направляться новичку.

Alex
15.06.2019
13:44:50
вместо полноценного RCA

Tishka17
15.06.2019
13:44:52
5% от 16 гигов за раз?

Just
15.06.2019
13:45:29
5% от 3х Гб это 150мб

Tishka17
15.06.2019
13:45:41
150 метров за один запрос? Ух

Alex
15.06.2019
13:45:46
это 150мб сырых данных

Tishka17
15.06.2019
13:45:58
Дохуя, надо сказать

Alex
15.06.2019
13:46:02
в питоне это чуть больше все же

Tishka17
15.06.2019
13:46:20
в питоне это чуть больше все же
Полгига без проблем. А потом ещё результат обработки

А потом ещё релокации на все это накладывают, что процесс съел гига два

Just
15.06.2019
13:48:10
5 воркеров, едят сначала мелочи, потом гиг, потом выше

Tishka17
15.06.2019
13:48:53
5 по два гига без проблем десятку

И это не утечки

Alex
15.06.2019
13:49:03
зы: про сервер зависает поподробнее зыы: а вот нехуй на сервере своп держать.

Tishka17
15.06.2019
13:49:34
Ну короче, имхо проблема в больших данных

Могу предложить уменьшить число воркеров

Alex
15.06.2019
13:50:03
я пока что проблем никаких с утечкой не вижу

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

Google
Alex
15.06.2019
13:50:34
и попытку пациента решать проблему увеличением таймаутов

Alex
15.06.2019
14:14:50
Bogdan (SirEdvin)
15.06.2019
14:16:38
оптимизация потребления памяти на случаи, когда у вас не весь код используется часто, например

Alex
15.06.2019
14:21:52
оптимизация потребления памяти на случаи, когда у вас не весь код используется часто, например
Ну давай так, если мы говорим о промышленных системах, сделанных по уму, то swap действительно рекомендуется иметь. у нас тут ситуация несколько иная, вместо того чтобы OOM киллер прибил текучий процесс имеем катастрофическую деградацию производительности.

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

Andrey
15.06.2019
14:35:57
поддержу за своп. Особенно когда сервер на ссд, то деградация не катастрофическая. даёт время среагировать на уведомление от мониторинга.

Andrey
15.06.2019
14:41:25
Не у меня же «сервер зависает».
а, я не всё обсуждение почитал

Александр
15.06.2019
14:42:12
Где по ООП на python найти задачек? От простого к сложному, желательно

На русском

Andrey
15.06.2019
14:43:26
На русском
напиши программу для изучения английского с помощью ооп

Александр
15.06.2019
14:43:54
напиши программу для изучения английского с помощью ооп
Спасибо за совет, но он к сожалению бесполезен

DeepHill
15.06.2019
14:44:27
Александр
15.06.2019
14:44:51
Мне из области нужно "реализуйте объект стул с такими то параметрами"

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

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

Andrey
15.06.2019
14:46:57
так и запишем - Питон это динамический язык

DeepHill
15.06.2019
14:48:07
С Википедии хоть начал для общего понимания...

Google
DeepHill
15.06.2019
14:48:28
На русском

Александр
15.06.2019
14:49:07
DeepHill
15.06.2019
14:49:26
Те до задач есть что почитать

Александр
15.06.2019
14:50:24
Вот именно!

Поэтому я и прошу от простого к сложному, с практикой на русском языке

Ладно, буду адаптировать из hf код на python с java (

Mikhail
15.06.2019
14:57:56
Мде, рили?

polaris
15.06.2019
14:58:26
БеЗконтактный?? В школу не ходил?

qwertyOleg
15.06.2019
14:59:22
Кто нибудь репортнет?

Страница 9340 из 9768