Перейти к содержимому
Фотоистория1 мин чтения

Знаете, есть такие дни, когда просто хочется всё удалить и пойти козочек пасти в горах... (в целом всегда конечно, но все же)

Знаете, есть такие дни, когда просто хочется всё удалить и пойти козочек пасти в горах... (в целом всегда конечно, но все же) Вчера сервер решил устроить праздник: вся оперативка истреблена, все ядра CPU встали колом на 100%. Иду разбираться.

Небольшое отступление про Pandas: Это библиотека для Python, которую обожают DS'ы. Очень удобная для работы с данными. Проблема в том, что писали её математики для математиков - им важна функциональность, а не оптимизация.

И вот эта штука имеет чудесную особенность: при неправильном использовании она начинает бесконечно копировать данные в памяти. Просто берёт и клонирует одно и то же снова, и снова, и снова... Магия! ✨ (вжух и ты петух, а нет другое заклинание)

Что выяснилось: Первая мысль - ну скорее всего Pandas. И да, он тоже был виноват, его пришлось оптимизировать. Но оказалось, что проблема ещё и в алгоритмах, которые я когда-то перенёс в прод и не особо валидировал. Классическая халатность: "работает - не трогай" 🤡 (это я, если вдруг не узнали) Переписал, оптимизировал - и вуаля, сервер снова дышит.

Вывод: Урок про "код который работает, лучше не трогать" оказывается иногда стоит нарушать.

P.S. Если кто-то из коллег читает - это не наезд, это самокритика. Мы все иногда косячим, главное - признавать и исправлять 🤝

Иллюстрация к записи «Знаете, есть такие дни, когда просто хочется всё удалить и пойти козочек пасти в горах... (в целом всегда конечно, но все же)»
Конец записи