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 05:55 | Zajímavý projekt

Dle příspěvku na blogu zaměstnanců CZ.NIC byl spuštěn ostrý provoz služby Honeypot as a Service (HaaS). Zapojit se může kdokoli. Stačí se zaregistrovat a nainstalovat HaaS proxy, která začne příchozí komunikaci z portu 22 (běžně používaného pro SSH) přeposílat na server HaaS, kde honeypot Cowrie (GitHub) simuluje zařízení a zaznamenává provedené příkazy. Získat lze tak zajímavé informace o provedených útocích. K dispozici jsou globální statistiky.

Ladislav Hagara | Komentářů: 0
dnes 04:44 | Komunita

Před týdnem společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux oznámila, že pro macOS a Linux vydají hru Rise of the Tomb Raider. Včera společnost oznámila (YouTube), že pro macOS a Linux vydají také hru Total War Saga: Thrones of Britannia. Verze pro Windows by měla vyjít 19. dubna. Verze pro macOS a Linux krátce na to.

Ladislav Hagara | Komentářů: 0
včera 21:33 | Nová verze

Byla vydána nová major verze 7.10 svobodného systému pro řízení vztahů se zákazníky (CRM) s názvem SuiteCRM (Wikipedie). Jedná se o fork systému SugarCRM (Wikipedie). Zdrojové kódy SuiteCRM jsou k dispozici na GitHubu pod licencí AGPL.

Ladislav Hagara | Komentářů: 0
včera 16:44 | Nová verze

Byla vydána nová verze 0.30 display serveru Mir (Wikipedie) a nová verze 2.31 nástrojů snapd pro práci s balíčky ve formátu snap (Wikipedie). Z novinek Miru vývojáři zdůrazňují vylepšenou podporu Waylandu nebo možnost sestavení a spouštění Miru ve Fedoře. Nová verze snapd umí Mir spouštět jako snap.

Ladislav Hagara | Komentářů: 0
včera 14:00 | Komunita

Na Indiegogo běží kampaň na podporu Sway Hackathonu, tj. pracovního setkání klíčových vývojářů s i3 kompatibilního dlaždicového (tiling) správce oken pro Wayland Sway. Cílová částka 1 500 dolarů byla vybrána již za 9 hodin. Nový cíl 2 000 dolarů byl dosažen záhy. Vývojáři přemýšlejí nad dalšími cíli.

Ladislav Hagara | Komentářů: 1
včera 11:11 | Nasazení Linuxu

Před dvěma týdny se skupina fail0verflow (Blog, Twitter, GitHub) pochlubila, že se jim podařilo dostat Linux na herní konzoli Nintendo Switch. O víkendu bylo Twitteru zveřejněno další video. Povedlo se jim na Nintendo Switch rozchodit KDE Plasmu [reddit].

Ladislav Hagara | Komentářů: 3
včera 05:55 | Komunita

Byla vydána vývojová verze 3.2 softwaru Wine (Wikipedie), tj. softwaru, který vytváří aplikační rozhraní umožňující chod aplikací pro Microsoft Windows také pod GNU/Linuxem. Z novinek lze zdůraznit například podporu HID gamepadů. Aktuální stabilní verze Wine je 3.0, viz verzování. Nejistá je budoucnost testovací větve Wine Staging s řadou experimentálních vlastností. Současní vývojáři na ni již nemají čas. Alexandre Julliard, vedoucí projektu Wine, otevřel v diskusním listu wine-devel diskusi o její budoucnosti.

Ladislav Hagara | Komentářů: 2
18.2. 16:55 | Komunita

Do 22. března se lze přihlásit do dalšího kola programu Outreachy (Wikipedie), jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 14. května do 14. srpna 2018, v participujících organizacích lze vydělat 5 500 USD.

Ladislav Hagara | Komentářů: 54
17.2. 15:44 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice dnes slaví 6 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně ale byla založena až 17. února 2012. Poslední lednový den byl vydán LibreOffice 6.0. Dle zveřejněných statistik byl za dva týdny stažen již cca milionkrát.

Ladislav Hagara | Komentářů: 1
17.2. 04:44 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že byla vydána nová verze 1.2.3 svobodného routovacího démona Quagga (Wikipedie) přinášející několik bezpečnostních záplat. Při nejhorší variantě může dojít až k ovládnutí běžícího procesu, mezi dalšími možnostmi je únik informací z běžícího procesu nebo odepření služby DoS. Konkrétní zranitelnosti mají následující ID CVE-2018-5378, CVE-2018-5379, CVE-2018-5380 a CVE-2018-5381.

Ladislav Hagara | Komentářů: 0
Který webový vyhledávač používáte nejčastěji?
 (2%)
 (28%)
 (62%)
 (2%)
 (3%)
 (1%)
 (1%)
 (1%)
Celkem 385 hlasů
 Komentářů: 34, poslední 14.2. 18:44
    Rozcestník

    Unixové nástroje – 22 (taskset, ionice, chrt)

    2. 5. 2012 | Luboš Doležel | Návody | 7337×

    Tentokrát se podíváme na méně obvyklé nástroje z balíčku schedutils.

    Obsah

    taskset

    link

    Prvním nástrojem je taskset, který dokáže omezit běh procesu na vybrané procesory. Považuji jej za nástroj, který v ideálním případě není nikdy zapotřebí, protože jím zpravidla řešíme nějakou překážku nebo problém. Mně osobně slouží ke zkrocení programu, který „záhadně“ funguje bez problémů na jednojádrovém CPU, ale na SMP systému vykazuje zvláštní chyby. Mimo to – což je pro mě informace z doslechu – se může hodit například při provozu databázového serveru Oracle, pokud máte licenci na méně procesorů, než máte v systému.

    Obecně ale nemá smysl snažit se docílit méně migrací procesu na jiné CPU pomocí taskset – plánovač Linuxu tak jako tak dělá vše pro to, aby se tak nedělo.

    Způsoby použití jsou dva: spouštění procesu s daným nastavením a změna (případně zjištění) nastavení existujícího procesu. V obou případech se zadává seznam povolených procesorů, tedy procesorů, na kterých program může (ale nemusí) běžet. A způsoby, jak povolené procesory vyjádřit, jsou dva. Pro fajnšmekry jsou tu hrátky s jedničkami a nulami, tedy nastavení masky, pro línější je tu výřečnější forma vypsání povolených procesorů.

    Chceme-li spustit program pouze na prvním a třetím procesoru, můžeme tak učinit následovně:

    # 'program argument' je příklad programu
    
    # Za použití masky:
    # číslo 0x5 = nastaven první a třetí bit
    taskset 0x5 program argument
    
    # To samé za použití výčtu procesorů:
    # CPU se indexují od nuly
    taskset -c 0,2 program argument
    

    Ve výčtu je možné určit i neexistující procesory, pokud ale ani jeden povolený procesor nebude platný, obdržíme chybu. Výčet je možné zapsat i rozsahem (např. 0-5).

    Potřebujeme-li trochu přidusit existující proces, pomůže nám přepínač -p, pomocí kterého určíme PID procesu.

    program &
    pid=$!
    
    taskset -p 0x5 $pid
    

    Povšimněte si zápisu, kdy nedáváme PID za parametr -p, ale nejdříve určíme masku. A pokud masku neurčíme, ale jen zadáme PID, dostaneme informaci o aktuálním nastavení pro proces. Nastavení se při forkování dědí.

    # Zjistíme nastavení procesu init
    $ taskset -p 1
    pid 1's current affinity mask: 3
    
    # 3 = povolen první a druhý procesor (spuštěno na CPU se dvěma jádry)
    

    ionice

    link

    ionice je blízký příbuzný příkazů nice a renice (díl 18), jen se zde nestanovuje priorita při přidělování procesorového času, nýbrž při I/O (tedy čtení a zápisu dat na disky). I/O niceness (priorita) je na současných jádrech ve výchozím stavu odvozována od CPU niceness – pokud tedy potřebujeme zajistit, že něco „proběhne rozumně rychle“, stačí ve většině situací použít jen nice/renice. To nám ale nebrání v tom podívat se i na ionice a poladit si to ručně.

    Procesy mohou spadat do tří tříd priority:

    • žádná nastavená priorita – priorita je řízena jádrem, může se mezi verzemi Linuxu lišit; kód 0
    • minimální možná priorita („Idle“) – proces nebude mít dopad na jiné procesy, tuto prioritu může nastavit i běžný uživatel; kód: 3
    • běžná priorita („Best effort“); kód: 2
    • reálný čas („Real time“) – proces má k dispozici maximum prostředků, kdykoliv si o ně řekne; kód: 1

    V případě tříd běžné priority a reálného času existuje ještě 8 podskupin (hodnoty 0 až 7), které určují prioritu v rámci dané třídy. Nula znamená nejvyšší priorita.

    Příklad: potřebujeme udělat nějakou zálohu, ale nechceme, aby měla dopad na ostatní procesy:

    # Třídu určíme přepínačem -c
    ionice -c 3 rsync ...
    

    Příklad: velmi urgentně potřebujeme vytvořit kopii souboru na zatíženém systému:

    # Prioritu v rámci skupiny nastavíme přepínačem -n
    ionice -c 1 -n 0 cp /a/soubor.bin /b/
    

    ionice má ještě dva další přepínače. Prvním je -p, pomocí kterého můžeme určit PID existujícího procesu. Druhým je pak -t, který zajistí ignorování chyby, pokud nelze prioritu nastavit z důvodu příliš starého jádra nebo chybějících práv.

    chrt

    link

    chrt je nástroj pro nastavení priority procesoru, co se procesorového času týče. Od známého nice/renice se liší tím, že zařazuje procesy do zvláštních tříd. Těchto tříd máme několik (přesné informace o nich v man sched_setscheduler):

    • SCHED_OTHER/SCHED_NORMAL: výchozí skupina (přepínač -o)
    • SCHED_IDLE: nejnižší možná priorita, proces nebude mít vliv na jiné procesy (přepínač -i)
    • SCHED_BATCH: procesy s tímto plánováním mají nižší prioritu, ale jsou spouštěny v dávkách (delší časové úseky), čtete detailní popis chování (přepínač -b)
    • SCHED_RR: realtime priorita s časovým omezením platným mezi vícero realtime procesy (přepínač -r)
    • SCHED_FIFO: realtime priorita bez omezení

    U realtime tříd se je možné přes chrt nastavit prioritu v rámci dané třídy a na Linuxu může tato priorita nabývat hodnot od 1 do 99 (nejnižší až nejvyšší). U tříd SCHED_OTHER a SCHED_BATCH k nastavení priority slouží nice/renice. Takto spustíme proces s nejvyšší možnou prioritou:

    # Třída FIFO, priorita v rámci třídy 99
    chrt -f 99 program argument
    

    Takto změníme třídu vybraného existujícího procesu na minimální možnou:

    chrt -i -p $pid
    

    Můžeme si například zobrazit prioritu jaderného vlákna migration/0:

    $ chrt -p $(pgrep migration/0)
    pid 6's current scheduling policy: SCHED_FIFO
    pid 6's current scheduling priority: 99
    

    To je pro tentokrát vše.

           

    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ář

    Bedňa avatar 2.5.2012 08:19 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Existuje aj nejaká možnosť nastavenia, aby na jednom jadre bežal len jeden proces a nič iné tam sheduler nenapchal? Teda pokiaľ sa mi nechce všetkým procesom nastavovať aby bežali len na iných jadrách.
    KERNEL ULTRAS video channel >>>
    2.5.2012 08:50 poustevnik
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    cgroups?
    Luboš Doležel (Doli) avatar 2.5.2012 09:55 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Taskset na dané CPU a realtime priorita?
    2.5.2012 19:22 Kvakor
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Pokud se někde při startu (např. hned na začátku initscriptů) vymaskuje tasksetem jedno z CPU a ten je pak věnován onomu vybranému procesu (tj. na jádře nemůže na něm běžet nic jiného, ale ani proces nemůže běžet na jiném jádře), tak by to mělo stačit. Možná by byklo lepší nastavit prioritu spíš na SCHED_FIFO, ale protože na danném CPU nebude nic jiného běžet, tak se to nejspíš nijak neprojeví.
    3.5.2012 08:52 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Pozor, to "nic jiného nepoběží" nemusí být až tak úplně pravda, některé kernel thready potřebují mít instanci na každém procesoru a čas od času je potřeba něco provést na všech procesorech, takže pokud dáte realtime prioritu procesu, který je schopen procesor vytížit naplno, můžete si tím krásně udusit systém.
    2.5.2012 10:49 bohyn
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Skoda ze z uvedenych unixovych nastroju na unixu (freebsd) zadny neni. taskset bych urcite uzivil :)

    Abych jen nerejpal, tak dik za fajn serial
    Luboš Doležel (Doli) avatar 2.5.2012 14:42 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Opravdu tam není žádná obdoba?
    2.5.2012 21:08 bohyn
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Tak jsem trosku zapatral

    k taskset se zda byt altrnativou cpuset. Pokud jsem to spravne pochopil (man stranku jsem jen rychle procetl) tak je treba z CPU vytvorit cpuset a tomu se daji prirazovat procesy, popripade se daji procesy prirazovat k jaulum.

    altrnativu pro ionice jsem nenasel a zda se ze FreeBSD nema IO scheduler, nebo aspon ne takovy ktery by se dal usmernovat.

    pro chrt jsem alternativu take nenasel.

    2.5.2012 11:00 Kojot
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Svázání procesu s jedním jádrem slouží pro větší "realtime-ovost". Samo o sobě ovšem nestačí. Je potřeba mít ještě možnost zakázat na daném jádře zpracovávat přerušení a samozřejmě povolit maximální priority v přístupu ke zdrojům OS apod.
    2.5.2012 12:21 JaR
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    "se může hodit například při provozu databázového serveru Oracle, pokud máte licenci na méně procesorů, než máte v systému."

    Bohužel nemůže, Oracle na Intelu uznává prakticky jen dvě licenční bariéry - OracleVM a Solaris kontejnery. Pokud tedy nepoužíváte jedno z toho, taskset, cgroups, vmware, KVM, XEN (od nekoho jineho nez Oraclu) atd. je vám k ničemu a zalicencovat musíte stejně všechna CPU/jádra na boxu. A ještě lepší peklo je to s farmou a migrujícími virtuály. Oracle není dobrý příklad pro podobné techniky.

    jose17 avatar 2.5.2012 14:14 jose17 | skóre: 43 | blog: Joseho_blog | Košice/Nové Mesto nad Váhom
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    afaik orakle "respektuje" aj lpary
    Ja vim, on vi, ty nano!
    3.5.2012 00:02 victor8 | skóre: 24 | blog: blog | Košice
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    j, ale AFAIK na inteloch sa ich tak skoro nedockame :)
    Max avatar 2.5.2012 14:55 Max | skóre: 66 | blog: Max_Devaine
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Bohužel, je to tak :-/.
    Zdar Max
    Měl jsem sen ... :(
    4.5.2012 13:47 trekker.dk | skóre: 71
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Obecně ale nemá smysl snažit se docílit méně migrací procesu na jiné CPU pomocí taskset – plánovač Linuxu tak jako tak dělá vše pro to, aby se tak nedělo.

    Teoreticky. V praxi musím používat taskset na firefox (flashová videa) a mplayer, když se přehrává něco náročnějšího na dekódování. Jinak se to video prostě trhá, protože plánovač čas od času ten dekódovací proces přehodí na jiné jádro CPU, kde je snížený takt (protože do té doby nedělalo nic.)
    Quando omni flunkus moritati
    6.5.2012 15:15 Stevo
    Rozbalit Rozbalit vše Re: Unixové nástroje – 22 (taskset, ionice, chrt)
    Nepoznám problematiku úplne do hĺbky, ale v článku je asi chyba:
    "Takto změníme třídu vybraného existujícího procesu na minimální možnou: chrt -i -p $pid"
    Uvedený príkaz mi v Ubuntu 10.04 iba vypíše aktuálnu policy a priority a nič nenastaví. Použité chrt (util-linux-ng 2.17.2)

    Zmena policy na SCHED_IDLE mi funguje nasledovne:

    # chrt -p -i 0 $pid

    Zmena policy na SCHED_FIFO s prioritou 50 mi funguje nasledovne:

    # chrt -p -r 50 $pid

    Zmena policy zo SCHED_OTHER na SCHED_RR ide aj takto:

    # chrt -p 50 $pid

    Inak SCHED_BATCH policy je podporovaná od Linux 2.6.16 a SCHED_IDLE od Linux 2.6.23.

    Založit nové vláknoNahoru

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