Kako zmanjšati stroške gostovanja za vašo aplikacijo
Da zmanjšate stroške gostovanja, ugotovite, kaj dejansko teče in zakaj, nato pa pustite, da vse spi, kadar ga nihče ne uporablja. Pri gostiteljih, ki se skrčijo na nič, neaktivna aplikacija in speča baza staneta zelo malo, zato so največji prihranki običajno v odstranitvi tistega, kar ju drži budna – najpogosteje kode, ki vsakih nekaj sekund preverja bazo – nato pa v zmanjšanju prometa in brisanju aplikacij, ki jih nihče ne uporablja.
Večina majhnih aplikacij nima težave s prometom. Imajo težavo »nekaj je ves čas vklopljeno«. Ta vodnik pokaže, kako to poiskati in popraviti, s pozivi, ki jih lahko damo AI graditelju aplikacij.
Za kaj dejansko plačujete
Računi za gostovanje majhnih aplikacij nastanejo iz nekaj stvari. Če veste, katera je velika, veste, kje iskati.
| Strošek | Kaj ga poganja | Običajna rešitev |
|---|---|---|
| Računalniški viri (strežnik) | Kako velik je stroj in koliko ur teče | Pustite, da spi; prilagodite velikost |
| Baza | Njena velikost in koliko časa je budna | Ustavite stalne poizvedbe, da lahko spi |
| Promet | Koliko podatkov prenesejo obiskovalci | Stisnite slike, predpomnite datoteke |
| Shramba | Datoteke in podatki, ki jih hranite | Izbrišite stare nalaganja, dnevnike in varnostne kopije, ki jih ne potrebujete |
| Zunanji API-ji | Klici modelov umetne inteligence, zemljevidov, e-pošte, SMS-ov | Predpomnite rezultate, dodajte omejitve |
Mnogi sodobni gostitelji, vključno z Mythexom, se skrčijo na nič: ko aplikacije nihče ne uporablja, se strežnik ustavi in za računalniške vire ne stane nič, nato se zbudi ob naslednjem obisku. Vprašanje se tako spremeni iz »kako velik je moj strežnik?« v »zakaj je moj strežnik buden?«.
Korak 1: Poglejte, kam odhajajo denarji
Preden kaj spremenite, odprite stran o porabi pri gostitelju in poiščite:
- Kateri projekt stane največ. Pogosto je ena aplikacija večina računa.
- Katera kategorija – računalniški viri, baza, promet ali shramba.
- Kdaj porablja. Ravna črta preko noči, ko nimate uporabnikov, je namig, da nekaj drži aplikacijo budno.
Na Mythexu Podrobnosti porabe prikazujejo zadnjih 30 dni, razdeljene na Build (agent umetne inteligence) in Run (gostovanje, promet, baza in shramba datotek), s razčlenitvijo po projektih.
Korak 2: Pustite neaktivnim aplikacijam in bazam, da spijo
Za večino majhnih aplikacij je to pravi vzvod. Baza, ki v mirovanju zaspi in se zbudi ob naslednji zahtevi, med tihimi urami skoraj nič ne stane. Baza, ki se poizveduje vsakih nekaj sekund, nikoli ne miruje, zato plačujete ves dan.
Mythexove omejitve gostovanja natančno opisujejo, kako to deluje za objavljene aplikacije: speča aplikacija ne porabi nič za računalniške vire, baza se začne v najmanjši velikosti, raste ob delu, zaspi po 5 minutah neaktivnosti in se zaračuna glede na svojo velikost, pomnoženo s časom, ko je bila budna. Aplikacija, ki poizveduje bazo vsaj enkrat na nekaj minut, dan in noč, se torej zaračuna, kot da je ves čas zaposlena – medtem ko ista aplikacija brez stalnega ozadnega klepeta stane zelo malo.
Pogoste stvari, ki držijo aplikacijo budno:
- Poizvedovanje. Stran vsaka 2–5 sekund vpraša strežnik »kaj novega?«. Če pustite ta zavihek odprt na enem prenosniku, baza nikoli ne zaspi.
- Samodejno osveževanje nadzornih plošč, ki po časovniku ponovno naložijo podatke, tudi ko jih nihče ne gleda.
- Nadzorniki delovanja, ki aplikacijo pingajo vsako minuto.
- Zanke v ozadju v strežniški kodi –
setInterval, ki za vedno čisti ali sinhronizira podatke. - Načrtovane zahteve »keep-alive«, ki jih je nekdo dodal, da bi se izognil počasnemu prvemu obisku – delujejo tako, da preprečujejo spanje, kar je prav tisto, kar stane denar.
Umetno inteligenco vprašajte, naj jih poišče:
Preglej kodo in poišči vse, kar teče po časovniku ali nenehno poizveduje bazo: poizvedovanje, setInterval, samodejno osveževanje, zanke v ozadju. Navedi vsako, kako pogosto teče in ali teče, ko nihče nima odprte strani. Še ničesar ne spreminjaj.
Nato jih popravite enega za drugim:
Nadzorna plošča vsake 3 sekunde poizveduje /api/orders. Spremeni, da se osvežuje samo, medtem ko je zavihek brskalnika viden, in vsakih 60 sekund namesto na 3. Dodaj gumb Osveži za ročno osvežitev.
Se vaša aplikacija resnično potrebuje takojšnje posodobitve (klepet, živa tablica rezultatov), vprašajte, ali lahko posodobitve potisne samo takrat, ko se nekaj spremeni, namesto da jih ves čas zahteva. Pri mnogih aplikacijah zadostuje »osveži, ko se uporabnik vrne na zavihek«.
Korak 3: Prilagodite velikost strežnika
Večji stroji stanejo več na uro. Mnoge aplikacije, zgrajene z AI, začnejo na privzeti velikosti, ki je dovolj; težave nastanejo, ko zahtevate »več moči«, da bi odpravili počasnost, ki je bila dejansko počasna poizvedba.
- Ohranite najmanjšo velikost, ki streže vaš promet brez napak.
- Če vidite zrušitve zaradi pomnilnika, najprej vprašajte umetno inteligenco, ali aplikacija v pomnilnik nalaga preveč (celotno tabelo namesto ene strani rezultatov).
- Dodajajte stroje samo, če imate izmerjen promet, ki jih potrebuje.
Na Mythexu velikost stroja izberemo ob objavi glede na to, kaj aplikacija potrebuje, dodatni stroji pa se zaženejo samo, ko je promet velik, in se spet uspavajo, ko upade. Strošek sledi velikosti, zato v klepetu zahtevajte manjšo velikost, če menite, da je prevelika.
Korak 4: Zmanjšajte promet
Promet je tisto, kar obiskovalci prenesejo. Slike so običajno največji del.
- Stisnite slike in uporabljajte sodobne formate, na primer WebP ali AVIF.
- Pomanjšajte slike na velikost, v kateri so prikazane. Fotografija s 4.000 slikovnimi pikami, prikazana kot sličica s 400 pikami, porabi večino prenesenega.
- Slike pod prvim zaslonom naložite leno (lazy-load).
- Predpomnite statične datoteke (skripte, sloge, slike), da se je vračajoči obiskovalci ne prenašajo znova. Glejte kaj je predpomnjenje.
- Ne dovolite, da aplikacija ob vsakem ogledu strani pošilja velike datoteke.
Preveri vsako sliko v aplikaciji. Pomanjšaj jih na največjo velikost, v kateri so prikazane, pretvori v WebP in naloži leno vse pod prvim zaslonom. Povej mi skupno velikost pred in po.
Hitrejše strani in manjši promet običajno gresta skupaj – glejte kako narediti spletno stran hitrejšo.
Korak 5: Počistite, kar nihče ne uporablja
- Odobjavite stare aplikacije – testne objave, končane poskuse, lanskoletno stran dogodka.
- Izbrišite stara nalaganja, dnevnike in izvoze, ki jih ne potrebujete.
- Izbrišite deljene predogledne povezave, ki jih ne uporabljate več. Na Mythexu odprtje predogledne povezave zbudi projekt in teče na vaših kreditih, zato pozabljena povezava, ki jo nekdo še naprej odpira, še vedno stane.
- Odstranite nepotrebne storitve – strežnik API ali delavca, ki ga aplikacija ne kliče več.
Korak 6: Razmislite o statični strani
Če vaša stran nima prijav, shranjenih uporabniških podatkov in strežniške logike – na primer tržna stran, portfelj, jedilnik –, je lahko statična stran: navadne datoteke, ki jih streže CDN. Strežnika ali baze, ki bi ju bilo treba držati v teku, ni. Na Mythexu statične strani, ko samo ležijo, ne porabljajo kreditov.
Ta stran nima prijav ali shranjenih podatkov. Ali jo je mogoče znova zgraditi kot statično stran brez strežnika? Kaj bi izgubili?
Korak 7: Pazite na plačljive klice API-jev
Pri aplikacijah, ki kličejo modele umetne inteligence, zemljevide ali SMS, lahko računi tretjih oseb presežejo gostovanje.
- Zahtevajte prijavo za vse, kar na klic stane denar.
- Dodajte omejitev na uporabnika (glejte kaj je omejevanje hitrosti).
- Predpomnite odgovore, ki se ne spreminjajo, na primer geokodiranje istega naslova.
- Nastavite omejitve porabe ali opozorila pri vsakem ponudniku.
Pogoste napake
- Ugibanje namesto merjenja. Najprej preglejte razčlenitev porabe; drago je pogosto nekaj, kar ne bi pričakovali.
- Nakup večjega strežnika za odpravo počasnosti. Manjkajoč indeks baze ali nalaganje preveč podatkov je običajno pravi vzrok.
- Poizvedovanje vsega. Vsak časovnik, ki se sproži vsake nekaj sekund, je razlog, da baza ostane budna.
- Pinganje aplikacije, da ostane »toplo«. To odvzame prihranek, ki ga da skrčenje na nič. Sprejmite kratko prebujanje ob prvem obisku ali pa za stalno delovanje namerno plačajte.
- Pozabljene stare objave. Neuporabljene aplikacije z bazami in opravili v ozadju se tiho seštevajo.
- Nestisnjene slike. Pogosto največji strošek prometa pri majhnih straneh.
Kontrolni seznam
- Vem, kateri projekt in katera kategorija (računalniški viri, baza, promet, shramba) stane največ.
- Nič ne poizveduje baze vsakih nekaj sekund, ko nihče ne gleda.
- Nadzorne plošče se osvežujejo v smiselnem intervalu ali samo medtem ko je zavihek viden.
- Noben nadzornik delovanja ali zanka v ozadju ne drži aplikacije budne brez razloga.
- Strežnik je najmanjša velikost, ki deluje.
- Slike so pomanjšane, stisnjene in naložene leno; statične datoteke so predpomnjene.
- Stare aplikacije so odobjavljene, stare datoteke izbrisane, neuporabljene predogledne povezave odstranjene.
- Strani brez podatkov ali prijav so statične.
- Plačljivi API-ji imajo prijavo, omejitve na uporabnika in opozorila o porabi pri ponudnikih.
Zmanjšanje stroškov na Mythexu
Mythex uporablja eno stanje kreditov za gradnjo in gostovanje, zato prihranki pri gostovanju pustijo več kreditov za gradnjo. Nekaj točk, specifičnih za Mythex:
- Objavljene aplikacije in njihove baze spijo, ko so neaktivne, in se zbudijo ob naslednjem obisku. Baza zaspi po 5 minutah neaktivnosti, zato je odprava stalnega poizvedovanja običajno največji dobiček.
- Pro za gostovanje, baze, promet, shrambo datotek in predogledno peskovnik plačuje polovično stopnjo Free; AI stane enako v obeh paketih. Glejte Krediti.
- Pred e-poštnim obvestilom o nizkem stanju, ki bi ustavilo objavljeno aplikacijo, dobite opozorilo; ustavljene aplikacije ohranijo svojo bazo in datoteke.
Za širšo sliko o stroških delovanja glejte koliko stane gradnja aplikacije in kaj je spletno gostovanje.
Vprašanja
Zakaj je moj račun za gostovanje visok, ko ima aplikacija malo uporabnikov?
Običajno nekaj jo drži budno. Koda, ki vsakih nekaj sekund preverja bazo, nadzornik delovanja, ki vsako minuto pošilja zahtevek, ali pozabljena zanka v ozadju lahko strežnik in bazo držijo v pogonu ves dan, tudi brez obiskovalcev.
Ali speča aplikacija stane denar?
Pri gostiteljih, ki se skrčijo na nič, speča aplikacija porabi malo ali nič za računalniške vire; za shranjene podatke običajno še vedno plačujete. Na Mythexu speča objavljena aplikacija ne porabi nič za računalniške vire, njena baza pa zaspi po 5 minutah neaktivnosti in se zaračuna le za čas, ko je bila budna.
Ali je poizvedovanje slabo za stroške gostovanja?
Poizvedovanje vsakih nekaj sekund pomeni, da baza nikoli nima premora in ne more zaspati. Poizvedujte redkeje, samo medtem ko nekdo gleda stran, ali posodobitve potisnite namesto da jih zahtevate.
Ali je statična stran cenejša za gostovanje kot spletna aplikacija?
Običajno da. Statična stran so le datoteke, ki jih streže CDN, brez strežnika in baze, ki bi ju bilo treba držati v teku. Če vaša stran nima prijav ali shranjenih podatkov, jo zgraditi kot statično stran pomeni enega največjih razpoložljivih prihrankov.