Size: a a a

2019 September 10

VR

Victor Ryabinin in rannts
Grigory
Вопрос про митап - доклад про всякое около computer vision / deep learning интересен будет? Например, как добиться воспроизводимого разбиения данных (фиксация всяких сидов), как мы собирали грабли с копированием объектов между процессами и так далее.
по фиксации сидов понятно, а про копирование интересно, особенно с выходом pandas 0.25, многое работает не так как в 0.23)
источник

G

Grigory in rannts
Victor Ryabinin
по фиксации сидов понятно, а про копирование интересно, особенно с выходом pandas 0.25, многое работает не так как в 0.23)
у нас не pandas, у нас pytorch)
источник

VR

Victor Ryabinin in rannts
все-равно интересно)
источник

G

Grigory in rannts
Victor Ryabinin
все-равно интересно)
👍
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Известно что питон не возвращает системе память, которую он у неё захавал - он сам ей рулит и переиспользует. Но вдруг есть какая-то хитрая функция, которая может вернуть свободную память в систему?
У меня в приложении используется Pillow для ресайза картинок. Причём я запускаю задачки ресайза в N-тредах, где N - число ядер. Иногда, похоже, прилетают довольно большие картинки, и при этом одновременно. В результате питон может захавать сразу N * ImageSize памяти.
И ладно бы оно захавало сколько надо для N * MaxImageSize и остановилось, но ведь нет - оно почему-то со временем начинает хавать больше и больше. Анализатор занятой памяти питона показывают, что под всякие питонячие структуры в приложении занято всего 30Мб. При этом процес занимает, например, 2.8 Гб памяти.
Подозреваю, что из-за фрагментации памяти, питон иногда не может "всунуть" новую картинку ни в один из своих свободных блоков памяти, и просто запрашивает доп. память у системы.
Как бы мне решить эту проблемку?
источник

SZ

Sergey Z in rannts
Не использовать пиллоу? Использовать внешний процесс?
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Медленно
источник

RB

Roman Bolkhovitin in rannts
Форкаться, все делать в форке, когда он зажрался прибивать и опять форкаться?
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Я, как быстро-хак, уже подумываю просто задать докер-контейнеру лимит на память, и путь он киляет процесс и перезапускает весь контейнер. Но это как-то грубо, и с обрывом клиентских конектов получится. Что бы было помягче надо наверное использовать какой-то оркестратор, который сначала поднимет новый контейнер, перекинет нагрузку в него, и потом кильнёт старый.
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Форкаться наверное тоже можно попробовать
источник

SZ

Sergey Z in rannts
В любом случае быстрым и более простым решением будет отдать контроль за памятью в операционку, значит обработку картинок надо отпилить в отдельный процесс.
Либо изучать ядро питона?
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Прикольно
Since Python returns memory to the OS on the heap (that allocates other objects than small objects) only on Windows, if you run on Linux, you can only see the total memory used by your program increase.
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Оказывается в винде питон возвращает в систему память
источник
2019 September 11

AM

Artem Malyshev in rannts
Kirill (Cykooz) Kuzminykh
Оказывается в винде питон возвращает в систему память
И фс в асинхронный io умеют.
источник

RB

Roman Bolkhovitin in rannts
И гуй намертво не вешается когда память кончается
источник

RB

Roman Bolkhovitin in rannts
источник

in

ildar nizamov in rannts
интересно, что еще можно разрешить, апелируя к "злостному вмешательству в контракт"?
источник

in

ildar nizamov in rannts
написал "обязуюсь поставить 50 интимных фоток Эммы Уотсон"  и пусть теперь она только попробует помешать - засужу?
источник

💭П

💭 Руслан Прохоров in rannts
ildar nizamov
написал "обязуюсь поставить 50 интимных фоток Эммы Уотсон"  и пусть теперь она только попробует помешать - засужу?
Хороший план 👍
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Artem Malyshev
И фс в асинхронный io умеют.
Новые линуксы тоже обзавелись api для асинхронной работы с fs
источник