Іван Клімчук • Тэхнабеларус
Лянота інжынера — рухавік прагрэса 🤗
Сёння па-сапраўднаму інжынерны допіс. Распавяду, як вырашаць праблемы з разумным выкарыстаннем рэсурсаў і часу!
🧑🔧 Так склалася, што даволі працяглы час я дапамагаю адмініць сайт адной кампаніі, а калі дакладна — інтэрнэт-краму. Асартымент крамы даволі вялікі, калі 16 тысяч актыўных найменаванняў, для кожнай амаль заўсёды ёсць фота і больш таго, на кожнае фота робіцца яшчэ некалькі копій меншых памераў, каб паказваць, дзе яны патрэбны. І вось на днях прыляцела нечаканая заяўка з паведамленнем, што скончылася месца на хостынгу.
🤑 Перад тым, як заліваць пажар грашыма (падвысіць тарыф), вырашыў паглядзець, што можна зрабіць. Пачаў з выграбання смецця, але даволі хутка выявілася, што смецця там ну ад сілы на 2 гігабайты (састарэлыя лог-файлы сінхранізацый за прошлы год і розныя кэшы), а вось што рабіць з 12 гігабайтамі фота, было дакладна незразумела.
🤔 Першай думкай было канверціраваць фота ў папулярны і даволі эфектыўны фармат webp. Аднак гэта патрабуе дапрацоўкі сайта, некаторых модуляў, а праект стары, не ўсё можа хутка атрымацца, ды і прапусціць некаторыя месцы можна. Да таго ж і часу няма, каб такім займацца.
😏 Таму падышоў да праблемы як сапраўдны лянівы інжынер. Спачатку спампаваў ўсе фота сабе на кампьютар, лакальна запусціў аптымізатар, бо на хостынгу не паставіць адпаведныя праграмы, запампаваў ўсё назад. Ад мяне патрабавалася літаральна толькі тры дзеянні, астатняе — чакаць, пакуль спампуецца, апрацуецца, запампуеца назад. Ну вы ведаеце гэтыя мемы пра праграмістаў, дзе "яно кампіліруецца", вось гэта быў я! :)
✅ Yay! You saved 6.342 GB (65%)
Зыходныя даныя былі такія: 265 865 файлаў, агулам каля ~10.64 Гб, на хостынгу паказвала каля 12 Гб. Спачатку я намагаўся скарыстацца праграмай ImageOptim, але яна пачынала завісаць ужо пасля 300 фота, таму давялося шукаць замену. На шчасце, трапіўся open source інструмет Optimizt, які без праблем перабраў усю папку за хвілін 10 і абрадаваў вынікамі сваёй працы.
Такім чынам, памер фота стаў ~3.82 Гб, а пасля запампоўкі на хостынг каманда du -sh паказала памер у 4.4 Гб. Больш чым удвая, выдатная эканомія!
Тэхнічны куток. Файлы туды сюды цягаў праз SSH камандай rsync. Вось прыклад, толькі шляхі да файлаў памяняць на свае:
rsync -avzhr --progress --stats --info=progress \
~/images user@host:/home/user/images/