Идвам да кажа, че понякога се престараваме с инфраструктурата ни. Например marvin живя дълго време на 2GB RAM (1vCPU, 2GB RAM, 25GB storage). След като ми мина downscale initiative-а минах на 1GB RAM (1vCPU, 1GB RAM, 25GB storage) като цената беше на половина ($6 vs $12).

Имах малко притеснения как ще се държи машината при все, че на нея живее освен блога и няколко проекта + docker compose и три контейнера (watchtower, cdn-check и storytel to goodreads sync-а) + база + още няколко неща.

Е, след малко играчка с php-fpm и базата в момента състоянието на VPS-а е:

marvinator@xxx ~ $ free -m
               total        used        free      shared  buff/cache   available
Mem:             967         643         111          70         436         324

marvinator@xxx ~ $ w
 12:14:19 up 43 days,  3:12,  3 users,  load average: 0.25, 0.25, 0.23
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU  WHAT
xxx      pts/0    185.7.216.6      12:14    0.00s  0.19s   ?    w

Интересен факт, който разглеждахме с моето mentee е за това колко реално свободна памет има на машината.

В момента имам точно 324 MB налична памет за нови приложения (последната колона).

Понякога хората се бъркат по стойността на колоната free, но както знаем в Linux “свободната” памет е празна памет, а празната памет е загубена памет (каква мъдра мисъл, а?). Linux kernel-а я използва за кеширане, но ще я освободи веднага, ако някое приложение я поиска).

Та тръгнах да пиша това по повод, че си гледам как последно време китайците са се засилили да ми “четат” (да не кажа ебат) блога. Малко статистика:

Та с едно ядро и 1GB RAM можем да направим супер много. Всъщност базата ми е един от най-големите процеси.
Забравихме какво е да си пазим ресурсите и include-ваме десетки npm пакети, инсталираме и забравяме за сървиси, които могат да се оптимизират точно за нашите нужди (и съответно да използват много по-малко ресурси), решаваме, че можем да си използваме ubuntu:latest във всеки контейнер, защото … еми защото работи. На кому е нужен slim/alpine.

Нека това е напомняне към това, че overprovisioning-а в някои случаи може да е ок, но не винаги е нещото, което търсим.