V pátek 28. srpna 2026 se v pražském Karlíně uskuteční již osmý Mobilní Hackday. Akce začne v 10:00 a potrvá až do večera. Setkání proběhne v prostorách SUSE Linux, s.r.o. na adrese Křižíkova 148/34, Praha 8 – Karlín. Nejbližší zastávkou je Křižíkova, kam se lze dostat tramvají i metrem. Na programu budou například novinky z posledních měsíců, možnosti, jak si zjednodušit práci s LLM/AI, a také nová linuxová distribuce BengalOS, včetně … více »
Jakub Vrána vydal Adminer ve verzi 6.0.0 s více než 130 změnami: "Většina změn vznikla s asistencí Claude Opus 5. Někteří lidi se bojí, že AI asistence může kód zamořit technickým dluhem. To je jistě pravda, pokud vývojář všechny změny bezduše odbouchne Enterem. Ale pokud si pořádně projde plán, vyjedná v něm změny a pak totéž udělá i s vygenerovaným kódem, kvalita kódu stoupne a technický dluh naopak klesne. Je to jako párové programování s
… více »Sam Aaron vydal novou major verzi 5.0.0 aplikace Sonic Pi (Wikipedie) určené také pro výuku programování pomocí skládání hudby. Přehled novinek na GitHubu. Instalovat lze také z Flathubu.
U příležitosti 30. výročí vydání počítačové hry Quake byla vydána nová epizoda s názvem Dawn of the Machine (Steam).
Vládní CERT upozorňuje (𝕏) na sérii bezpečnostních záplat (CVSS 9.9) v produktech Cisco řešících kritické zranitelnosti umožňující obejití autentizace, eskalaci oprávnění, vzdálené spuštění kódu a odepření služby. Úspěšné zneužití může útočníkům umožnit získat neoprávněný přístup k dotčeným systémům, kompromitovat zařízení Cisco Catalyst SD-WAN a Cisco IOS XE, spustit libovolný kód, zpřístupnit citlivé informace nebo narušit dostupnost postižených systémů.
Soud v americkém státě Nové Mexiko ve čtvrtek nařídil internetové společnosti Meta Platforms zaplatit 567 milionů dolarů (téměř 12 miliard Kč) za újmy, které její platformy působí mladým lidem. S přihlédnutím k dřívějšímu verdiktu tak má společnost celkem zaplatit 942 milionů dolarů, což je malý zlomek jejího ročního výnosu, který loni činil 60 miliard dolarů. Čtvrteční verdikt firmě také nařizuje, aby změnila způsob, jakým její
… více »Mark Russinovich (CTO v Microsoft Azure) se na LinkedIn pochlubil svým projektem MS Paint Doom napsaným pomocí Claude. Hru Doom umožňuje hrát v programu Malování (Microsoft Paint). Malování funguje jako monitor. Herní engine (ViZDoom) běží na pozadí a každý vykreslený snímek hry vkládá automaticky přes schránku (clipboard) do Malování.
Platformy ChatGPT i Roblox by mohly být zařazeny na seznam mimořádně velkých on-line platforem nebo internetových vyhledávačů, na něž se vztahují zvláštní podmínky podle nařízení o digitálních službách (DSA). Vzhledem k tomu, že ChatGPT i Roblox oznámily počet uživatelů nad prahovou hodnotou DSA, je toto označení „rozhodně možné“ a mohlo by „přijít dříve či později“. On-line platformy a vyhledávače zařazené na seznamy DSA musejí
… více »Společnost Cloudflare představila Cloudflare OS (GitHub), tj. open source platformu navrženou pro integraci umělé inteligence (agentů) přímo do pracovních procesů organizací.
Byla vydána nová verze 5.13 svobodného multiplatformního softwaru pro konverzi a zpracování digitálních fotografií primárně ve formátů RAW RawTherapee (Wikipedie). Vedle zdrojových kódů je k dispozici také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
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 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:
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 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):
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.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
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í.
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.
"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.
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.)
"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.