abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:44 | Komunita

    Po .deb balíčcích Mozilla nově poskytuje také .rpm balíčky Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 1
    dnes 00:33 | IT novinky

    Vývojové prostředí IntelliJ IDEA slaví 25. narozeniny (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 23:55 | IT novinky

    Vedení společnosti NVIDIA údajně povolilo použití milionů knih ze známého 'warez' archivu Anna's Archive k výcviku umělé inteligence, ačkoliv vědělo, že archiv tyto knihy nezískal legální cestou. Žaloba, ve které se objevují i citace interních dokumentů společnosti NVIDIA, tvrdí, že NVIDIA přímo kontaktovala Anna's Archive a požadovala vysokorychlostní přístup k datům knihovny.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 14:33 | Zajímavý software

    Grafický správce balíčků Myrlyn pro SUSE a openSUSE, původně YQPkg, dospěl do stabilní verze 1.0.0. Postaven je nad libzypp a Qt 6. Projekt začal na SUSE Hack Weeku 24.

    Ladislav Hagara | Komentářů: 6
    včera 13:44 | Zajímavý projekt

    Vývojáři se podařilo vytvořit patch pro Wine, díky kterému je možné na linuxovém stroji nainstalovat a spustit Adobe Photoshop (testováno s verzemi Photoshopu PS2021 a PS2025). Dalším patchem se podařilo umožnit dokonce instalaci téměř celého Adobe Creative Cloud Collection 2023, vyjma aplikací Adobe XD a Adobe Fresco. Patch řeší kompatibilitu s windowsovými subsystémy MSHTML - jádrem prohlížeče Internet exporer, a MSXML3 - parserem

    … více »
    NUKE GAZA! 🎆 | Komentářů: 5
    včera 13:33 | IT novinky

    Hackeři zaútočili na portál veřejných zakázek a vyřadili ho z provozu. Systém, ve kterém musí být ze zákona sdíleny informace o veřejných zakázkách, se ministerstvo pro místní rozvoj (MMR) nyní pokouší co nejdříve zprovoznit. Úřad o tom informoval na svém webu a na sociálních sítích. Portál slouží pro sdílení informací mezi zadavateli a dodavateli veřejných zakázek.

    Ladislav Hagara | Komentářů: 10
    včera 12:22 | Nová verze

    Javascriptová knihovna jQuery (Wikipedie) oslavila 20. narozeniny, John Resig ji představil v lednu 2006 na newyorském BarCampu. Při této příležitosti byla vydána nová major verze 4.0.0.

    Ladislav Hagara | Komentářů: 2
    včera 01:33 | Zajímavý projekt

    Singularity je rootkit ve formě jaderného modulu (Linux Kernel Module), s otevřeným zdrojovým kódem dostupným pod licencí MIT. Tento rootkit je určený pro moderní linuxová jádra 6.x a poskytuje své 'komplexní skryté funkce' prostřednictvím hookingu systémových volání pomocí ftrace. Pro nadšence je k dispozici podrobnější popis rootkitu na blogu autora, případně v článku na LWN.net. Projekt je zamýšlen jako pomůcka pro bezpečnostní experty a výzkumníky, takže instalujte pouze na vlastní nebezpečí a raději pouze do vlastních strojů 😉.

    NUKE GAZA! 🎆 | Komentářů: 0
    18.1. 21:22 | Zajímavý projekt

    Iconify je seznam a galerie kolekcí vektorových open-source ikon, ke stažení je přes 275000 ikon z více jak dvou set sad. Tento rovněž open-source projekt dává vývojářům k dispozici i API pro snadnou integraci svobodných ikon do jejich projektů.

    NUKE GAZA! 🎆 | Komentářů: 3
    18.1. 03:33 | IT novinky

    Dle plánu certifikační autorita Let's Encrypt nově vydává také certifikáty s šestidenní platností (160 hodin) s možností vystavit je na IP adresu.

    Ladislav Hagara | Komentářů: 8
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (5%)
     (0%)
     (9%)
     (20%)
     (3%)
     (5%)
     (2%)
     (11%)
     (38%)
    Celkem 528 hlasů
     Komentářů: 15, poslední včera 18:29
    Rozcestník

    Linux-VServer a OpenVZ - přidělování CPU

    3. 10. 2007 | Jaroslav Tomeček | Systém | 5864×

    V dnešním díle budeme pokračovat v omezování hardwarových zdrojů serverům. Podíváme se, jak upravit přidělení CPU.

    Plánovač CPU

    Upravená jádra Linuxu obou systémů byla obohacena o rozšířený plánovač přidělení CPU. Ten nyní musí obsluhovat jak jednotlivé procesy, tak i virtuální servery. Systémy pro plánovaní přidělení CPU používají technologii Token-bucket. Každému virtuálnímu serveru je přiděleno pouze tolik systémového času, než spotřebuje přidělené tokeny. Konfiguraci lze měnit i za běhu virtuálního prostředí.

    Nastavení plánovače a přidělení CPU využijeme například ve chvíli, kdy server potřebuje při startu vyšší výkon než během svého běhu.

    Linux-VServer

    V Linux-VServeru nastavujeme počet tokenů (fill-rate), které jsou doplněny do bucket za časový interval (fill-interval). Dále můžeme nastavit počáteční, minimální a maximální množství tokenů.

    Ke správné funkci plánovače musíme sestavit jádro Linux-VServeru s volbou CONFIG_VSERVER_HARDCPU=y.

    Linux-VServer rozlišuje mezi „tvrdým“ a „měkkým“ limitem plánovače. Virtuálnímu serveru s tvrdým limitem je po vyčerpání tokenů odebrán procesor. Pokud virtuální server vyčerpá svůj měkký limit a na procesor nečeká jiný virtuální server, je tomuto virtuálnímu serveru nastavena velmi nízká priorita, ale může mu být přidělen procesor. Tvrdý limit nastavíme vložením sched_hard do souboru /etc/vservers/<id_of_vserver>/flags. Pro měkký limit vložíme do stejného souboru sched_prio. Metody nelze kombinovat.

    Vlastní nastavení plánovače je uloženo v souboru /etc/vservers/<id_of_vserver>/schedule. Tento soubor má šest řádků:

    • fill rate – počet tokenů přidělených při jedné obrátce
    • fill interval – délka obrátky v tokenech
    • počáteční množství tokenů
    • minimální množství tokenů
    • maximální množství tokenů
    • prio bias – hodnota, která je připočítána k ostatním hodnotám

    Po vyplnění může tento soubor vypadat například takto:

    7
    32
    500
    200
    1000
    0
    

    Virtuálnímu serveru je přiděleno 7/32 procesoru, na počátku má k dispozici 500 tokenů, jejich minimální stav je 200 a maximální 1000. Poslední hodnotou je prio bias. Je-li hodnota nenulová, přičte se k ostatním hodnotám. Pokud by v příkladu byla rovna 5, kontext by dostal 12/37 procesoru, měl by při startu k dispozici 505, minimálně 205 a maximálně 1005 tokenů.

    Nastavení plánovače můžeme změnit i za běhu virtuálního serveru. Použijeme k tomu program vsched z balíku util-vserver. Ten má následující syntaxi:

    vsched [--xid <xid>] [--fill-rate <rate>] [--interval
     <interval>] [--tokens <tokens>] [--tokens-min
      <tokens>] [--tokens-max <tokens>] [--prio-bias
       <bias>] [--] [ *]

    Argumentem volby --xid je kontextové číslo virtuálního stroje. To je možné zjistit pomocí utility vserver-stat. Volby --fill-rate, --interval, --tokens, --tokens-min a --token-max po řadě odpovídají pěti řádkům souboru /etc/vservers/<id_of_vserver>/schedule. Program umožňuje nastavit přidělení procesoru i určité aplikaci virtuálního serveru. Tato aplikace je potom posledním argumentem vsched.

    Změnu nastavení plánování virtuálního serveru s kontextovým číslem 1000 provedeme následovně:

    # vsched --xid 1000 --fill-rate 30 --interval 100 \
    > --tokens 100 --tokens_min 30 --tokens_max 200

    Nastavení plánování programu ls ve virtuálním serveru s kontextovým číslem 1000 změníme například takto:

    # vsched –-xid 1000 --fill-rate 30 --interval 100 \
    > --tokens 100 --tokens_min 30 --tokens_max 200 -- /bin/ls

    OpenVZ

    Změnu nastavení plánovače procesoru můžeme provést pomocí dvou přepínačů utility vzctl.

    Pro první možnost použijeme přepínač --cpulimit. Hodnota parametru odpovídá procentu času, po který je procesor přiřazen virtuálnímu serveru a po jehož uplynutí je CPU virtuálnímu serveru odebrán. Odpovídá tedy tvrdému limitu. Chceme-li přidělit virtuálnímu serveru 1919 10 % času procesoru, zadáme příkaz následovně:

    # /usr/sbin/vzctl set 1919 --cpulimit 10%

    Přidělíme-li virtuálnímu serveru více procesorů (přepínač --cpus utility vzctl s argumentem rovnajícím se počtu přidělených CPU) odpovídá celkový čas CPU násobku počtu procesorů. Například se dvěma procesory má hodnotu 200 %.

    Druhou variantu zvolíme přepínačem --cpuunits. Ten určuje garantovanou hodnotu takzvaných CPU jednotek (tokenů), které budou přiděleny virtuálnímu serveru. Argumentem je kladné nenulové číslo předávané plánovači CPU. Vyšší hodnota zaručuje více času procesoru přiděleného virtuálnímu serveru. Po vyčerpání jednotek nemusí být procesor virtuálnímu serveru odebrán, pokud žádný jiný server na procesor nečeká. Maximální hodnota je 500000, minimální 8. V celém systému se čas procesoru přiděluje podle poměru těchto hodnot pro jednotlivé servery. Implicitní hodnota odpovídá 1000 tokenům. Nastavení potom může vypadat následovně:

    # /usr/sbin/vzctl set 1919 --cpuunits 1000

    Hodnotu přidělených CPU jednotek --cpuunits můžeme nastavit i pro VE0, tedy samotný hostitelský systém. Přepínačem je --ve0cpuunits a jako číslo VE uvedeme 0. Nastavení tohoto argumentu na příliš nízkou hodnotu v poměru k hodnotám jiných virtuálních serverů může způsobit nestabilitu celého operačního systému. Autoři doporučují hodnotu mezi 5 - 10 %. Ta se ukládá do souboru /etc/vz/vz.conf (hodnota VE0CPUUNITS) a o její nastavení se stará skript /etc/init.d/vz.

    Stejně jako u jiných nastavení pomocí utility vzctl jsou nastavené hodnoty implicitně dočasné. Pro jejich trvalé uložení uvedeme přepínač --save. Nastavení se ukládá do souboru /etc/sysconfig/vz-scripts/<VPS_ID>.conf (hodnoty CPUUNITS a CPULIMIT).

    Aktuální hodnoty CPU jednotek zjistíme utilitou vzcpucheck. Jejím výstupem je hodnota spotřebovaných jednotek všemi virtuálními servery a VE0 a maximální možný „výkon“ systému:

    # vzcpucheck
    
    Current CPU utilization: 6667
    Power of the node: 73072.5

    Zařízení v adresáři /dev

    Oba projekty nabízejí jiné položky přístupné implicitně v adresáři /dev, stejně jako jiné přístupy k vytváření dalších speciálních souborů.

    Linux-VServer

    Po instalaci základní kostry systému obsahuje virtuální server následující položky:

    full log null ptmx pts
    random tty urandom zero

    Vytvoření dalších souborů není z virtuálního serveru možné. V kontextech není povolena capability CAP_MKNOD ani pro uživatele root, a samotný Linux-VServer nenabízí nástroj, který by byl obdobou mknod. Speciální soubory lze vytvářet pouze z hostitelského systému.

    OpenVZ

    Viditelnost speciálních souborů se mění podle konfigurace počítače. Obecně jsou vytvořené soubory a adresáře:

    console core fd full
    initctl kmem log mem
    null port ptmx pts
    ram random shm tty
    urandom zero

    OpenVZ umožňuje vytváření dalších speciálních souborů prostřednictvím svých utilit.

    Zařízení v adresáři /dev ve VPS zpřístupníme z hardwarového uzlu pomocí utility vzctl:

    # vzctl set VPS_ID --devnodes \
     device:r|w|rw|none --save

    Příkaz zpřístupní zařízení device (ve tvaru například /dev/hda) s přístupovými právy (r – čtení, w – zápis, rw – čtení a zápis, none – žádný přístup) s trvalým uložením změn v konfiguraci (parametr --save).

    Další možností je povolení capability CAP_MKNOD ve VPS z hostitelského serveru:

    # vzctl set VPS_ID --capability CAP_MKNOD:on --save

    Poté je možné ve VPS vytvářet speciální soubory pomocí mknod. Tato volba však může být možnou bezpečnostní slabinou.

    Příště

    V příštím díle se zaměříme na správu výpočetních zdrojů jako je paměť RAM, počet otevřených souborů atd.

    Nejčtenější články posledního měsíce

    Týden na ITBiz: Trhy zapochybovaly o návratnosti investic do AI
    Týden na ScienceMag.cz: Mohla by člověka ohrozit primordiální černá díra?
    Týden na ScienceMag.cz: Vyvinuli novou metodu měření vlastností krátkých spinových vln

    Nejkomentovanější články posledního měsíce

    Týden na ITBiz: Prodejci věří, že AI dokáže vylepšit většinu IT produktů
      všechny statistiky »

    Seriál Virtualizace na úrovni jádra (dílů: 8)

    Virtualizace na úrovni jádra operačního systému (první díl)
    <—« Linux-VServer a OpenVZ - diskové limity
    »—> Linux-VServer - správa výpočetních zdrojů
    Linux-VServer - správa výpočetních zdrojů (poslední díl)

    Související články

    Jaderné noviny: Souborové kvalifikace
    Jaderné noviny: KVM 15
    Jaderné noviny: Vývoj KVM
    Jaderné noviny: /dev/kvm
    Jaderné noviny: Patche Xen
    Jaderné noviny: Kontejnery procesů
    Jaderné noviny: Připojení Linuxu k hypervisorům
    Jaderné noviny: Virtualizační rozhraní VMI
    Jaderné noviny: Kontejnery a odlehčená virtualizace
    Jaderné noviny: API pro virtuální I/O: virtio
    Jaderné noviny: Virtuální čas
    Jaderné noviny: OpenVZ a checkpointing za běhu
    Jaderné noviny: Zdroje: má dáti, dal
    Chroot prostředí

    Odkazy a zdroje

    openvz.org
    Linux-VServer.org

    Další články z této rubriky

    Úvod do Dockeru (1)
    Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Unixové nástroje – 26 (triky pro práci v Bashi)
    Unixové nástroje – 25 ((s,c)fdisk, gdisk, parted a findmnt)
    Linux: systémové volání splice()
           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    4.10.2007 05:40 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Linux-VServer a OpenVZ - přidělování CPU
    U mě tedy pro VServer neexistuje soubor schedule, ale adresář tohoto jména obsahuje soubory s parametry plánovače - fill-rate interval tokens tokens-max tokens-min.
    4.10.2007 10:04 Cunha
    Rozbalit Rozbalit vše Re: Linux-VServer a OpenVZ - přidělování CPU
    V nejake z poslednich verzi VServeru doslo ke zmene - parametry(radky) se presunuly do vlastnich souboru - , ale funkcnost je stejna.
    4.10.2007 16:26 MartinT | skóre: 12 | blog: MT blog
    Rozbalit Rozbalit vše OpenVZ: vzcpucheck "Current CPU utilization"
    Vám ukazuje vzcpucheck jako Current CPU utilization něco jiného než celkový součet přidělených jednotek ? (soudě podle hodnoty 6667). Snažil jsem se přetížit zkušební VE pomocí "bzip2 -9" cca 80MB taru, přičemž zkušebnímu VE jsem nastavil jen 8 jednotek. Paralelně jsem se díval na výstup z vzcpucheck a byl trvale 4008 (VE0 + 3x reálné VE po 1000 a zkušení s 8). A pokud tedy vzcpucheck nelže ohledně "Current CPU utilization", tak to IMHO znamená, že i nastavení přes --cpuunits je de fakto tvrdý limit. Server sice má "Power of the node: 186725", ale se mi nechce věřit, že by to ten bzip2 zvládlo pod 8/186725 výkonu CPU (když mu to trvalo cca 20s).
    5.10.2007 16:31 MartinT | skóre: 12 | blog: MT blog
    Rozbalit Rozbalit vše Re: OpenVZ: vzcpucheck "Current CPU utilization"

    Tak jsem to asi špatně pochopil a můj závěr je špatný. Co jsem si prostudoval dokumentaci, tak to vypadá tak, že OpenVZ prostě přiděluje každému VPS definovaný počet cpuunits. Po jejich vyčerpání přejde k dalšímu VPS a tak pořád dokola. Cpuunits tedy definují v jakém poměru se na dané VPS dostane čas na procesoru vzhledem k ostatním VPS. V mém případě tedy hostitel a 3 reálné VPS dostávají stejný díl času na procesoru, kdežto zkušebnímu VPS když se dostane na řadu bude přidělena pouze 8/1000 času (oproti ostatním). A když je "Power of the node: 186725", každé z VPS se dostane na řadu 186725/4008 krát za sekundu (cca 46Hz). Jinak řečeno (v mém případě): VE0 jede 5,35ms, pak se systém přepne na VPS1 a to jede 5,35ms, pak na VPS2 opět 5,35ms, pak na VPS3 zase 5,35ms a pak na zkušební VPS a to po dobu 0,04ms. A pak zase VE0 5,35ms .. .

    Nevíte o nějakém nástroji, který by nějak souhrnně ukázal, jak je procesor využíván v rámci jednotlivých VPS ? Jde mi o odladění potřebných cpuunits pro jednotlivé VPS. V rámci kontextů je dostupná statistika v /proc/loadavg. Navíc se nějaké užitečné informace dají najít i v /proc/vz/vestat. Ale k tomu by se muselo něco bastlit, šlo mi o to, jestli jsem nepřehlédnul nějaký použitelný nástroj.

    Komunista avatar 12.10.2007 21:23 Komunista
    Rozbalit Rozbalit vše Re: Linux-VServer a OpenVZ - přidělování CPU
    Tento seriál sa pomaly dostáva mimo moje vedomosti (chápanie), ale aj tak dík ;-)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.