Blogg

Stærri vinnusvæði án þess að nokkur bíði

Hvert Mythex verkefni fær sitt eigið vinnusvæði: litla tölvu í skýinu þar sem gervigreindin skrifar kóða og forskoðun forritsins þíns keyrir. Við höfðum hækkað minni nýrra vinnusvæða úr 1 GB í 2 GB, en eldri vinnusvæði héldust í 1 GB. Þegar við athuguðum var það um fjórðungur þeirra. Fyrsta lagfæringin færði verkefni yfir á stærra vinnusvæði þegar það var næst opnað. Á fyrsta degi í framleiðslu lét hún einn notanda bíða í sjö mínútur. Við settum fasta tímamörk á hana og tókum síðan færsluna úr því að opna verkefni.

Af hverju gömul vinnusvæði voru áfram lítil

Sýndarvélaþjónustan okkar ákvarðar stærð vinnusvæðis þegar það er búið til og heldur henni í gegnum hverja hvíld og endurræsingu. Breyting á sniðmátinu, uppskriftinni sem ný vinnusvæði eru byggð úr, hefur aðeins áhrif á vinnusvæði sem búin eru til eftir breytinguna. Ekkert breytir stærð þeirra sem þegar eru til.

Það skipti máli. Eitt litla vinnusvæðið kláraði minnið í miðri git push meðan forskoðunin var að ræsast, og svaraði ekki í 11 mínútur. Birting mistókst vegna þess.

Fyrsta tilraun: færðu verkefnið þegar það vaknar

Vinnusvæði fara í hlé þegar enginn notar þau og vakna þegar verkefnið er opnað. Vakningin virtist vera rétta augnablikið til að færa verkefni, því enginn er að vinna í því ennþá.

Færslan virkaði svona:

  1. Athugaðu stærðina. Ef vinnusvæðið er minna en 2 GB er það fært. Ef stærðin er óþekkt gerum við ekkert.
  2. Ekki trufla birtingu. Birting les skrár vinnusvæðisins, svo ef hún er í gangi sleppum við færslunni.
  3. Pakkaðu verkefninu. Þjappaðu öllu í verkefninu, þar með talin git-saga þess, sem er hver eftirlitspunktur verkefnisins, og .env-skrá forritsins, sem tilheyrir eigandanum. En skildu eftir uppsettar háðar (node_modules), því þær má setja upp aftur.
  4. Afritaðu beint yfir. Streymdu skjalasafninu úr gamla vinnusvæðinu yfir í nýtt 2 GB vinnusvæði, þannig að það þarf aldrei að passa í minni þjónsins okkar.
  5. Berðu saman áður en þú skiptir. Teldu skrárnar, lestu nýjasta eftirlitspunktinn og teldu eftirlitspunktana, í báðum vinnusvæðunum. Skiptu aðeins ef allt þrennt passar.
  6. Haltu gamla vinnusvæðinu við hvers konar bilun. Hvers konar villa eða misræmi hendir nýja vinnusvæðinu og opnar verkefnið í gamla vinnusvæðinu, eins og áður.

Eitt atriði í samanburðinum skipti meira máli en það virðist. Athugunin keyrir sem stjórnandareikningurinn og git neitar að lesa geymslu sem annar notandi á. Hún prentaði ekkert á báðum hliðum, og „ekkert“ jafnaðist á „ekkert“, þannig að athugunin stóðst án þess að bera nokkra sögu saman. Við sögðum git að treysta möppunni og bættum við prófi svo það geti ekki skriðið til baka.

Hvað fór úrskeiðis á fyrsta degi

Á fyrsta degi í framleiðslu rakst pökkun á eitt verkefni á fimm mínútna tímamörk skipunar, inni í vöknuninni. Eigandinn beið í sjö mínútur eftir að vinnusvæðið opnaðist. Og þar sem færslan hafði mistekist var verkefnið enn lítið, þannig að næsta opnun hefði reynt aftur og látið þau bíða aftur.

Flutningur sem lætur einhvern bíða meðan hann opnar eigið verkefni er slæmur kostur. Allur tilgangurinn með því að gera hann við vöknun var að enginn myndi taka eftir honum.

Önnur tilraun: fast tímabudget

Sama dag breyttum við fjórum atriðum:

  • Ein mínúta fyrir alla færsluna. Hvert skref, að athuga stærðina, pakka, búa til nýja vinnusvæðið, afrita, pakka upp og bera saman, deilir einu 60 sekúndna tímabudgeti. Þegar það klárast opnast verkefnið í gamla vinnusvæðinu.
  • Stöðvaðu verkið, ekki bara biðina. Að hætta að bíða hjá okkur dugar ekki ef skjalasöfnunin keyrir enn inni í vinnusvæðinu sem eigandinn er um það bil að nota. Hver skjalasafnsskipun er nú drepin inni í vinnusvæðinu rétt áður en tímabudgetið rennur út. Ef nýja vinnusvæðið kemur eftir að við höfum gefist upp er því hent.
  • Láttu eigandann ekki bíða eftir hreinsun. Eyðing tímabundna skjalasafnsins fer nú fram í bakgrunni.
  • Reyndu ekki aftur við hverja opnun. Verkefni sem ekki tókst að færa er látið í friði í 24 klukkustundir, þannig að bilun kostar í mesta lagi eina töf á dag, ekki eina á hverja opnun.

Þriðja tilraun: taktu hana úr vöknuninni

Þetta gerði versta tilfellið að einni mínútu. En mínúta er samt mínúta, og við áttuðum okkur á að færslan þurfti alls ekki að vera á leið neins.

Engin vinnusvæði eru búin til í 1 GB lengur. Þetta er því ekki áframhaldandi ferli; þetta er einskiptisverk með fastan lista vinnusvæða. Að gera það inni í vöknuninni þýddi að raunveruleg manneskja borgaði fyrir hverja hæga færslu, og eina leiðin til að vita að vinnusvæði myndi ekki færast var að einhver hefði nýlega beðið eftir því.

Þess vegna fjarlægðum við færsluna úr vöknuninni alveg. Það að opna verkefni gerir það sem það gerði áður. Þau litlu vinnusvæði sem eftir eru eru afgreidd sem stýrð lota í staðinn: enginn bíður eftir henni, og vinnusvæði sem ekki færist birtist í skýrslu lotunnar, þar sem við getum skoðað það, í stað þess að birtast fyrir framan eigandann.

Það sem við lærðum

  • Stærð er ekki alltaf hægt að breyta. Þegar vettvangur festir stærð við sköpun hjálpar það aðeins nýju hlutunum að hækka sjálfgefið gildi. Gerðu ráð fyrir þeim gömlu.
  • „Enginn notar það ennþá“ þýðir samt að einhver er að bíða. Vinna sem unnin er á leiðinni inn í vöru er vinna sem manneskja fylgist með.
  • Settu fjárhagsáætlun á allt sem er á leið notanda, og stöðvaðu verkið þegar hún klárast. Tímamörk hjá okkur meðan skipun heldur áfram annars staðar færa vandann bara til.
  • Einskiptisflutningur á heima í einskiptisverki. Að fela hann inni í daglegum aðgerðum gerir hann ódýrari í skrifum og dýrari í keyrslu.
  • Prófaðu öryggisathuganirnar þínar. Samanburður sem ber ekkert saman lítur nákvæmlega eins út og sá sem stóðst.

Ef þú smíðar á Mythex er ekkert að gera: markmiðið er einfaldlega færri vinnusvæði sem klárast af minni, og að opna verkefni sé jafn hratt og áður. Hvernig vinnusvæði fara í hlé og vakna er fjallað um í skjölunum undir einkavinnusvæði. Fyrir aðra sögu um minnisþrot, sjá minnisleka sem leyndist í framvindutákni.

Mythex · Pricing · Smíðaðu hvað sem er með gervigreind · Sniðmát fyrir vefsíður og forrit · Mythex í samanburði · Orðasafn um forritasmíði með gervigreind · Ókeypis verkfæri fyrir forritasmíði með gervigreind · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)