Valitse muisti käyttöjärjestelmälle, pysyville palveluille ja realistiselle samanaikaisuudelle varauksella. Valitse CPU sen jälkeen, kun olet mitannut, mitkä tehtävät ovat kiireisiä, suoritetaanko ne rinnakkain ja millaisia viiveitä käyttäjät todella kokevat.
Kuvaile normaali työ ja ruuhkatyö erikseen
Pelkkä kävijämäärä on heikko mitoitusperuste. Yksi pyyntö voi tarjoilla välimuistiin tallennettua tiedostoa, kun taas toinen luo raportin tai tekee kyselyitä moniin tauluihin. Luettele verkkotyöntekijät, tietokanta, välimuisti, jonojen kuluttajat ja ylläpitotehtävät, jotka jakavat VPS. Kuvaile normaali samanaikaisuus ja vilkkain odotettu toiminto. Sisällytä ajoitetut viennit, pakettipäivitykset ja käyttöönotot sen sijaan, että kohtelisit niitä näkymättömänä taustatoimintana.
Kerää olemassa olevasta projektista edustava jakso, joka sisältää vilkkaan ajanjakson. Tallenna vasteajat ja virheet resurssien käytön ohella. Luo uutta projektia varten pieni testi, jossa on realistisia pyyntömuotoja ja tietokokoja. Alkuarviosi on epätäydellinen; hyödyllinen tavoite on dokumentoitu lähtökohta, jota voit verrata mitattuun käyttäytymiseen toimituksen jälkeen.
Rakenna muistibudjetti ennen prosessien lisäämistä
Muistintarve syntyy järjestelmästä, pysyvistä sovelluspalveluista, työntekijäkohtaisesta käytöstä ja väliaikaisista toiminnoista. Työntekijän jalanjäljen kertominen suunnitellulla samanaikaisuudella on karkea suunnittelutyökalu, ei tae, koska jaettu muisti ja välimuistit monimutkaistavat kokonaismäärää. Tarkkaile todellisia prosesseja kuormituksen aikana. Jätä riittävästi tilaa, jotta ylläpitotehtävä ei pakota sovellusta kilpailemaan jokaisesta jäljellä olevasta sivusta.
Tietokanta-asetukset voivat moninkertaistaa muistin käytön odottamatta. PostgreSQL dokumentoi, että work_mem koskee kyselytoimintoja, ja useat toiminnot tai istunnot voivat suorittaa samanaikaisesti. Asetuksella, joka näyttää yksinään vaatimattomalta, voi siksi olla suurempi vaikutus järjestelmään. Lue tietokantasi oma ohjeistus, testaa realistista samanaikaisuutta ja vältä kaikkien ilmoitettujen gigatavujen osoittamista yhdelle välimuistille.
Erota CPU-käyttöaste hyödyllisestä rinnakkaisuudesta
Prosessorien määrä kertoo, kuinka monta suoritusresurssia vieraalle esitetään, ei sitä, kuinka tehokkaasti ohjelmistosi voi niitä hyödyntää. Yksi kiireinen säie voi rajoittaa sovellusta, kun muut ytimet pysyvät hiljaisina. Työntekijöiden lisääminen voi auttaa riippumattomia pyyntöjä, mutta se voi myös lisätä tietokantakiistoja ja muistintarvetta. Tarkista sovelluksen samanaikaisuusmalli ennen kuin oletat, että kaksinkertainen ydinmäärä tuottaa kaksinkertaisen läpäisyn.
KVM tarjoaa virtuaalikoneille omat virtuaaliset laitteistonsa. Se ei muuta jokaista vCPU-merkintää identtiseksi vertailuarvoksi isäntien ja prosessorisukupolvien välillä. Vertaa lueteltua CPU-mallia ja allokointiehtoja, jos ne ovat saatavilla, ja arvioi palvelu omalla työkuormallasi. Vältä ostopäätöksen tekemistä lyhyen synteettisen pistemäärän perusteella, joka ei muistuta sovellusta.
Etsi painetta ja odotusta, ei vain keskiarvoja
Järjestelmä voi tuntua hitaalta, vaikka keskimääräinen CPU-prosentti ei olisi korkea. Prosessit voivat odottaa tallennusta, muistin vapauttamista tai toista palvelua. Linux-ytimen Pressure Stall Information paljastaa CPU-, muisti- ja I/O-viivetiedot tuetuissa järjestelmissä. Nämä signaalit voivat auttaa tunnistamaan resurssikiistoja tavallisten käyttöasteiden ja sovelluksen ajoitusten ohella.
Lue mittareita yhdessä. Jatkuva muistipaine, vaihtaminen, epäonnistuneet allokoinnit ja hitaat pyynnöt viittaavat eri toimenpiteeseen kuin yksittäinen kiireinen laskentatyöntekijä. Tallennusviiveet voivat perustella kyselymuutoksia tai erilaista levyprofiilia. Ulkoista API-viivettä ei korjata lisäämällä paikallista RAM-resurssia. Selitä havaittu rajoite ennen kuin valitset, mitä resurssia lisätä.
| Havaittu käyttäytyminen | Tutkittava kysymys | Mahdollinen seuraava askel |
|---|---|---|
| Yksi säie kiireinen, vapaat ytimet hiljaisia | Voiko tämä työ suorittaa rinnakkain? | Paranna tehtävää tai muuta työntekijäsuunnittelua |
| Muistipaine raportin aikana | Kuinka monta toimintoa on päällekkäin? | Rajoita samanaikaisuutta tai lisää testattua varaa |
| Hitaita pyyntöjä ja I/O-odotuksia | Mitkä lukemiset tai kirjoitukset viivästyvät? | Tarkista kyselyt ja tallennuskäyttäytyminen |
| CPU ja muisti vähissä, pyynnöt hitaita | Viivästyttääkö riippuvuus vastauksia? | Mittaa alavirran kutsut |
Suunnitteluesimerkki, jossa on selkeät oletukset
Kuvittele pieni sovellus, jossa on kaksi verkkotyöntekijää, tietokanta ja yksi jonon kuluttaja. Tiimi mittaa näitä palveluita tavallisten pyyntöjen ja raportin luontitehtävän aikana. Se havaitsee, että neljän raportin salliminen samanaikaisesti nostaa muistintarvetta jyrkästi ja viivästyttää normaalia liikennettä. Sen sijaan, että ostettaisiin heti suurin paketti, se rajoittaa raporttien samanaikaisuutta ja mittaa tuloksen uudelleen.
Jos mukautettu työkuorma tarvitsee edelleen lisää muistia, päivitys vastaa nyt havaittuun vaatimukseen. Jos jono on edelleen CPU-rajoitteinen ja riippumattomat työt voivat suorittaa rinnakkain, lisää suoritusresursseja voi olla aiheellista. Nämä ovat esimerkkipäätöksiä, eivät suorituskykylukuja SwissOctet-paketeille. Pidä omat mittauksesi ja rajoitteesi valitun kokoonpanon mukana.
Jätä selkeä polku seuraavaa mittausta varten
Määrittele merkit, jotka laukaisevat tarkastelun: vasteajan heikkeneminen, toistuva muistipaine, kasvavat jonot tai muuttunut työkuorma. Pidä seuranta riittävän kevyenä, ettei siitä tule uutta pullonkaulaa. Arvioi uudelleen ominaisuuden tai suuren tietojoukon lisäämisen jälkeen ja vältä toistuvia päivityksiä, kun todellinen ongelma on rajoittamaton prosessi tai hidas kysely.
SwissOctet:n VPS-perheet esittävät CPU- ja muistimääritykset sekä valitut resurssivaihtoehdot. Lue lopullinen kokoonpano lisäosien lisäämisen jälkeen, mukaan lukien laskutuskausi ja kokonaissumma. Vahvista päivitysjärjestelyt käytössä olevan operaattorin kanssa ennen kuin luotat niihin. Hyödyllinen VPS-koko on sellainen, joka suorittaa mitatun työkuorman järkevällä varalla ja ymmärrettävällä seuraavalla askeleella.
Käytännön tarkistuslistasi.
- Luettele palvelut ja ylläpitotyöt.
- Mittaa normaali ja vilkkaan ajanjakson samanaikaisuus.
- Budjetoi pysyvä ja väliaikainen muisti.
- Tarkista, voiko CPU-työ suorittaa rinnakkain.
- Vertaa painetta, käyttöastetta ja sovelluksen ajoituksia.
- Määrittele, milloin kokoonpano tarkistetaan.
Olennaiset yksityiskohdat.
Pitäisikö VPS mitoittaa kuukausittaisten kävijöiden mukaan?+
Käytä kävijämäärää taustatietona ja mittaa sitten pyyntöjen monimutkaisuus, samanaikaisuus, tietokoko ja taustatyö. Samat kävijämäärät voivat aiheuttaa erilaisia kuormia.
Tekevätkö suuremmat RAM-resurssit palvelusta aina nopeamman?+
Ei. Siitä on apua, kun muisti on rajoite tai se mahdollistaa hyödyllisen välimuistin, mutta se ei ratkaise kaikkia CPU-, tallennus- tai ulkoisia riippuvuusviiveitä.
Kaksinkertaistaako kaksinkertainen vCPU-määrä suorituskyvyn?+
Ei. Rinnakkaisuus, prosessorin ominaisuudet, kiistat ja sovelluksen suunnittelu määräävät, kuinka paljon lisäkapasiteetista on hyötyä.
Mene lähteelle.
Nämä lähteet tukevat tämän oppaan teknisiä käsitteitä. Noudata ajantasaisia dokumentaatioita ennen tuotantojärjestelmän muuttamista.
- Linux-ydin: Pressure Stall Information docs.kernel.org
- PostgreSQL: Resurssien kulutus www.postgresql.org
- KVM-projekti: Kernel Virtual Machine www.linux-kvm.org
Toimituksellinen ohjaus: SwissOctet. Esimerkit ovat havainnollistavia. Palvelumääritykset, saatavilla olevat vaihtoehdot ja sopimusehdot on tarkistettava erikseen.