Túlértékesítés

Overselling ( eng.  Overselling ) - a szállítói szolgáltatások értékesítése a biztosítható erőforrások mennyiségét meghaladó mértékben.

Szinonimája : túlfoglalás _ _  _

Túlértékesítés a hosting iparágban

A tárhelyszolgáltatások értékesítésével kapcsolatban a túlértékesítés a számítási teljesítmény nagyobb mennyiségben történő értékesítését jelenti, mint amennyit a szerver hardver képes biztosítani.

Kezdetben a túlértékesítés a megosztott hosting szolgáltatások értékesítésével járt , és főként olyan erőforrásokra vonatkozott, mint a forgalom és a merevlemez-terület. A Virtual Private Server (VPS/VDS) szolgáltatások népszerűsítésével a "túlértékesítés" szó széles közönség számára ismertté vált, és a legtöbb tárhelyszolgáltatónál bevett gyakorlat .

A túlértékesítés elve

A túlértékesítés azon alapul, hogy az ügyfelek többsége soha nem használja fel maradéktalanul a tarifacsomagban számukra biztosított erőforrásokat. Ezért a tárhelyszolgáltatók többször értékesítik a szerverkapacitást, ami segít csökkenteni az energiaköltségeket és csökkenti a kihasználatlan kapacitás leállási idejét. Ennek eredményeként ez a szolgáltatások árának csökkenéséhez vezet.

Példa:

Egy 32 Gb RAM-mal rendelkező szerveren 32 virtuális dedikált szerver lehet, amelyek mindegyike 1 Gb RAM-ot kap, így garantáltan minden kliens maximális terhelés mellett kapja meg a RAM -ot. Általában sokkal több virtuális gép kerül egy ilyen kapacitású szerverre.

Elméletileg lehetséges egy olyan helyzet, amikor az összes VPS/VDS egyszerre próbálja kihasználni a rájuk osztott kapacitásokat, és a fizikai szerver a korlátig terhelődik. Ekkor a szolgáltató ügyfelei észrevehetik a túlértékesítés következményeit: a szolgáltatások lassulása, hibák, az oldal időszakos elérhetetlensége. A legtöbb tárhelyszolgáltató gondosan figyeli a fizikai szerverek terhelését, és nem enged ilyen helyzeteket. A felügyeleti rendszerek időben újra elosztják a "problémás" klienseket más szerverek között, ami észrevétlenül történik maguktól az ügyfelektől.

Különféle virtualizációk túlértékesítése

OpenVZ virtualizációs technológia

Túlértékesített RAM

A Linux operációs rendszer több értékkel számolja a felhasznált memóriát: VIRT, RES, SHM.

VIRT (a folyamat virtuális mérete) – a folyamat által felhasznált virtuális memória mennyisége. Ez az aktuálisan használt memória, a folyamat által igényeinek fenntartott memória, a folyamat által használt lemezen lévő fájlok (leggyakrabban a könyvtárak) és a más folyamatokkal megosztott memória összege. A VIRT megmutatja, hogy egy folyamat mennyi memóriát kaphat jelenleg.

RES (rezidens méret) - az aktuálisan használt memória mennyisége. Mindig kisebb, mint a VIRT, mivel a legtöbb program ugyanazokat a könyvtárakat használja.

SHR – Megmutatja, hogy összesen mennyi VIRT memória van felhasználva.

Például a program a könyvtár egyes funkcióinak csak egy részét használja. Így a teljes könyvtár VIRT-be és SHM-be íródik, és csak a ténylegesen használt rész kerül a RES-be.

A tárolón belüli OpenVZ-n használt memória kiszámításakor a VIRT-t veszik figyelembe, ami több, mint a ténylegesen felhasznált memória, de a vendég operációs rendszer használható. Így a VPS/VDS VIRT memórián keresztüli eladásakor többet adhat el, mint amennyi a szülőszerveren rendelkezésre áll.

A memória túlértékesítéséhez a vmguarpages, oomguarpages és vmguarpages paraméterek használatosak – ez a memória lefoglalása a tárolóhoz, az oomguarpages pedig a folyamat memóriakorlátja.

CPU túlértékesítés

A CPU - használati korlátot a tároló indításakor állítják be a cpuunits (minimum garantált CPU-időérték a VDS-hez), a cpulimit (a VDS által felhasználható maximális érték százalékban) és a cpus (a VDS által használt magok száma) paraméterekkel.

A Cpulimit akkor fog működni, ha a szerver tétlen, és az egyik konténerből hiányzik a cpuunits érték, akkor a mag legfeljebb n%-át használhatja (magok, cpus-ban lévő érték).

FreeBSD Jail Virtualization Technology .

Túlértékesített RAM

A memória túlértékesítése ugyanazon elv szerint történik, mint az OpenVZ -ben, egy különbséggel, RES-nek számít. Ez tulajdonképpen használt memória. Például n folyamata van a libc könyvtárat használva, mindegyik folyamat 10 MB-ot fogyaszt, amiből 2 MB a libc direktívája, így (10-2) * n + 2 lesz kiszámítva, és nem számít, mennyit foglalt le a VIRT-ben . 5 másodpercenként egyszer, ha túllépik, a folyamatokat az OOMkiller nevű kernelmemória-leosztó mechanizmus leállítja .

CPU túlértékesítés

A CPU is hasonló elv szerint korlátozva van az OpenVZ -nél, VPS/VDS-en maximum 1 magos soft limit van beállítva, van egy hard limit is amit parancs vált ki, ha már 1 magot kapott a konténerben, és a rakományt hosszú ideig tartják, és nem esik le, akkor egy kemény határérték aktiválódik.

FreeBSD Jail és OpenVZ HDD túlértékesítés

Mindkét virtualizáción felülértékeljük a lemezterületet azáltal, hogy többször eladjuk. Ebben az esetben a tárhelyszolgáltatónak folyamatosan gondoskodnia kell arról, hogy elegendő szabad hely maradjon, ha egy (több) konténer (VDS) mindenre szüksége van, aminek lennie kell.

A lemezhasználat korlátozása ebben az esetben az I / O műveletek korlátozásán keresztül valósítható meg, de jelenleg ez a korlátozás nehezen kivitelezhető. A végső illesztőprogram nem tudja, honnan küldték az olvasási parancsot, és nem tudja kiszámítani egy adott tárolóhoz. Ezért az egyidejűleg megnyitott fájlok – fájlleírók korlátozásához folyamodnak . Amikor eléri a megnyitott fájlok korlátját, a vendég operációs rendszer hibaüzenetet ad a befejezett innode -okról .

KVM virtualizációs technológia

Ezen a virtualizáción lehetséges a processzor és a RAM túlértékesítése.

Túlértékesített RAM

A RAM túlértékesítése a Kernel SamePage Merging (KSM), Ballooning és Swapping technológiák segítségével történhet .

A KSM a következő elv szerint működik:

Az első lépés a KSM konfigurálása a memóriaterületek vizsgálatára, a KVM virtualizáció alapértelmezés szerint nincs konfigurálva a KSM-mel való együttműködésre. A konfigurálás után a KSM elkezdi keresni a RAM-ot azonos adatokért. Amikor a KSM 2 vagy több egyezést talál, megosztottként jelöli meg az adatokat, és az összes azonos memóriahelyet egy blokkra cseréli, és írásvédettvé teszi. Ha később az ilyen memóriát használó folyamatok egyike kéri az információ megváltoztatását, a KSM az írásvédett blokk másolásával új területet hoz létre.

Légballonozás:

A hypervisor (operációs rendszer-kezelő program) kérést küld a vendég operációs rendszernek (VDS), hogy a RAM egy részét visszaadja az irányítása alá:

  1. A VDS virtio_balloon illesztőprogramja kérést kap a hypervisortól.
  2. A virtio_balloon illesztőprogram memóriafelhőt hoz létre a VPS/VDS-en belül, amelyhez nem férhetnek hozzá a VDS-en belül futó folyamatok.
  3. A virtio_balloon driver mindig igyekszik kielégíteni a hypervisor kérését. Előfordulhat azonban, hogy egyszerűen nem tudja teljesíteni az adott kérést. Például, ha a VPS/VDS-en futó alkalmazások az összes RAM-ot felhasználják. Ilyen helyzetekben a vendég operációs rendszer a lehető legnagyobb mennyiségű memóriát foglalja le, hogy legalább részben teljesítse a hipervizor kérését.
  4. A felhő lefoglalása után a vendég operációs rendszer tájékoztatja erről a hipervizort.

A hipervizor saját belátása szerint használja ezt a memóriát, ahol éppen szüksége van rá. Amikor a felhőből származó memória felszabadul, a hypervisor visszaküldheti azt a vendég operációs rendszerbe, amelyből a felvételt vette:

  1. A hypervisor ismét elküldi a virtio_balloon illesztőprogram-kérést a vendég operációs rendszernek.
  2. A kérés közli a vezetővel, hogy a memóriafelhő megsemmisíthető és tetszés szerint használható.
  3. Az illesztőprogram elérhetővé teszi a felhőből származó memóriát a vendég operációs rendszer számára.

Csere:

A memória túlértékesítése a merevlemezen lévő lapozófájlt használja.

CPU túlértékesítés

A CPU-túlértékesítést a KVM hypervisor támogatja a Linux ütemezőn és a cgroups mechanizmuson keresztül , bizonyos folyamatok priorizálásával. Ebben az esetben a vendég operációs rendszer nem tapasztal problémát, ha nem használja 100%-on a processzort. CPU-túlértékesítés esetén nem adhat el több magot egy VDS-nek, mint amennyi a szerveren van, és nem kell 80%-nál nagyobb terhelést engednie a rendszernek, mivel a további túlértékesítés jelentősen csökkentheti mind a vendég operációs rendszer, mind a vendég operációs rendszer teljesítményét. maga a szerver.

Linkek