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í
×
    včera 19:22 | Nová verze

    Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 18:00 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.

    Ladislav Hagara | Komentářů: 0
    včera 01:22 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 00:55 | Zajímavý projekt

    PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.

    vlk | Komentářů: 0
    7.5. 19:44 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    7.5. 17:33 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    7.5. 05:33 | Komunita

    Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.

    Ladislav Hagara | Komentářů: 16
    7.5. 03:55 | Komunita

    sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.

    Ladislav Hagara | Komentářů: 0
    6.5. 22:11 | Nasazení Linuxu

    Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).

    Ladislav Hagara | Komentářů: 2
    6.5. 13:22 | IT novinky

    Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.

    Ladislav Hagara | Komentářů: 1
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (1%)
     (3%)
    Celkem 560 hlasů
     Komentářů: 26, poslední včera 09:58
    Rozcestník

    Dotaz: ondemand, sampling_rate, rychlost změny frekvence

    10.5.2007 00:43 Jan Martinek | skóre: 43 | blog: johny | Brno
    ondemand, sampling_rate, rychlost změny frekvence
    Přečteno: 654×
    Zdravím, svým dotazem navazuji na tuto diskusi o frekvenci procesoru
    http://www.abclinuxu.cz/forum/show/179537
    která je ale v této chvíli už překošatělá.
    Zcela jistě má smysl regulovat frekvenci procesoru i na desktopu - za rok provozu jsou náklady na elektřinu srovnatelné s pořizovací cenou procesoru ( a to mluvím pouze o penězích).
    Druhou stránkou věci je to, že se frekvence procesoru musí zvýšit dostatečně rychle při zvýšené zátěži, jinak se počítač jeví líný. Jestliže mám zapnutý ondemand governor:
    echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    
    a jestliže nastavím, aby se frekvence zvýšila už při 20% zátěži
    echo 20 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
    
    a jestliže nechám samplovat zátěž co nejčastěji
    echo $(cat /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_min) > \
    /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
    
    tak to stejně není dostatečné, protože nejnižší hodnota pro samplovací periodu je 620000 mikrosekund, tedy něco přes půl sekundy. A to už je bohužel poznat. Mohu názorně demonstrovat:
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import time
    
    fncur = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq'
    fnmin = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq'
    fnmax = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq'
    
    class CPUgov:
        def __init__(self):
            self.minfreq = self.readintfromfile(fnmin)
            self.maxfreq = self.readintfromfile(fnmax)
    
        def readintfromfile(self, fn):
            return int(file(fn).read())
    
        def getfreq(self):
            return self.readintfromfile(fncur)
    
        def waitforfall(self):
            stamp = time.time()
            while self.getfreq() != self.minfreq:
                time.sleep(0.01)
            return time.time() - stamp
    
        def waitforrise(self):
            stamp = time.time()
            while self.getfreq() != self.maxfreq:
                pass
            return time.time() - stamp
    
    cpu = CPUgov()
    while True:
        print 'rise:', cpu.waitforrise()
        print 'fall:', cpu.waitforfall()
    
    Frekvence se skutečně zvýší až po cca 0.6 sekundách, což je pro interaktivní práci (např. přepínání mezi okny, renderování html) příliš dlouho. Takže se chci zeptat, jak snížit hodnotu v
    /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_min
    Díky

    Odpovědi

    10.5.2007 08:39 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    Zjistil jsem další věc. Na jiném počítači (notebook, Mobile AMD Athlon(tm) XP 2800+) je hodnota v
    /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_min
    pouze 100000, tedy desetina sekundy. A skutečně se to velmi projeví v ochotě zvyšovat frekvenci. Ale přece to nemůže záviset na hardwaru. Nebo ano?
    Josef Kufner avatar 10.5.2007 09:20 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    Zkusil bych:
    echo "požadovaná hodnota" > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_min
    Přičemž ona požadovaná hodnota bude ze .../scaling_available_frequencies.
    Hello world ! Segmentation fault (core dumped)
    10.5.2007 09:52 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    No, mě šlo o něco trochu jiného. Frekvence procesoru se přepíná mezi správnými hodnotami (to měnit nemusím), ale governor reaguje příliš pozdě na změnu zátěže.
    Reakční doba se sice dá nastavit v souboru
    /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
    ale nejnižší nastavitelná hodnota je sampling_rate_min. A ta je dle mého názoru příliš vysoká.
    Josef Kufner avatar 10.5.2007 20:43 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    No vždyť.
    Hello world ! Segmentation fault (core dumped)
    10.5.2007 21:14 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    No, zapomněl jsem podotknout hlavní kámen úrazu - že sampling_rate_min je read-only soubor.
    Josef Kufner avatar 10.5.2007 21:56 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    Aha, tak to by mohl být trošku problém. Toho jsem si nějak nevšiml ;-)
    Hello world ! Segmentation fault (core dumped)
    10.5.2007 21:44 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    Aha, tady si toho taky někdo všiml (a snad to popsal líp než já). http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/6b4c5005900a9f08/acc0776dd0b9c08c?lnk=raot
    nekompilujete zrovna někdo nové jádro, že byste zkusili něco změnit v cpufreq_ondemand.c? Myslím, že tahle věc musí vadit všem, co používají jaderný ondemand governor.
    10.5.2007 23:21 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    Jaká je minimální frekvence, kterou si ten procesor umí nastavit? Zkusil jsem ten tvůj skript a frekvence se mi přepne až po 1.2s, přesto žádné výrazné zpomalení nepozoruju, všechny programy reagují svižně. (AMD Athlon X2, minimální frekvence je 1GHz)
    Quando omni flunkus moritati
    11.5.2007 08:51 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    Až za 1.2 sekundy? Tak to je ještě horší než u mě (mám 0.62). Jasně, je to hnidopišství, 1GHz je pořád ještě dost slušná mašina. Ale když něco dělám v inkscapu, gimpu, prohlížeči apod. tak se frekvence mnohdy přepne s křížkem po funuse a přijde mi to jako škoda.
    11.5.2007 00:06 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    A nebylo by lepší, kdyby to jelo na max po celou dobu, co počítač používáš, a teprve když odejdeš, tak aby nastoupilo řízení frekvence? Se spuštěním screensaveru zapnout řízení, s vypnutím vypnout, třeba.
    11.5.2007 09:03 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    To by bylo spíš obcházení problému. Navíc se zdá, že náprava nebude složitá. V jádře je tohle:
    static unsigned int def_sampling_rate;
    #define MIN_SAMPLING_RATE_RATIO                 (2)
    /* for correct statistics, we need at least 10 ticks between each measure */
    #define MIN_STAT_SAMPLING_RATE                  \
                            (MIN_SAMPLING_RATE_RATIO * jiffies_to_usecs(10))
    #define MIN_SAMPLING_RATE                       \
                            (def_sampling_rate / MIN_SAMPLING_RATE_RATIO)
    #define MAX_SAMPLING_RATE                       (500 * def_sampling_rate)
    #define DEF_SAMPLING_RATE_LATENCY_MULTIPLIER    (1000)
    #define TRANSITION_LATENCY_LIMIT                (10 * 1000)
    Zkusím si s tím trochu pohrát. Mám (na druhém počítači) vyzkoušeno, že když ondemand zareaguje za 0.1 sekundy, tak je to už úplně v pohodě a nepoznám žádnou prodlevu.
    11.5.2007 10:20 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    Tak mě se zdá, že při tvých podmínkách by mohlo docházet ke změně frekvence docela často. Třeba při každém načtení webové stránky, zobrazení další stránky v pdf dokumentu atd. Nevím, jestli vysoká frekvence zmeny frekvence cpu nevadí... A docela by mě zajímalo, kolik času při tomhle nastavení pojede procesor stejně na max. A vyšší frekvence vzorkování to taky určitě trošinku ovlivní :-)
    11.5.2007 11:09 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: ondemand, sampling_rate, rychlost změny frekvence
    Chci ji měnit (nejvýše) desetkrát za sekundu, což mi vůbec nepřijde často. Vzhledem k tomu, že P-state transition latency bývá 10 až 100 mikrosekund, tak jsem naprosto klidný. Viz
    http://softwarecommunity.intel.com/isn/Community/en-US/forums/30234265/ShowThread.aspx
    Jestli vyšší frekvence vzorkování bude mít na něco vliv, to pochybuju. Schválně zkus číst 10x za sekundu soubor /proc/stat. Pro systém je to zcela neměřitelná zátěž.
    A kolik procent času stráví procesor na své max. frekvenci? Taky by mě to zajímalo. Jdu měřit:
    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    import time
    
    fncur = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq'
    fnmin = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq'
    fnmax = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq'
    
    class CPUgov:
        def __init__(self):
            self.minfreq = self.readintfromfile(fnmin)
            self.maxfreq = self.readintfromfile(fnmax)
            self.samples_high = 0
            self.samples_low = 0
    
        def readintfromfile(self, fn):
            return int(file(fn).read())
    
        def getfreq(self):
            return self.readintfromfile(fncur)
    
        def measure(self):
            freq = self.getfreq()
            if freq == self.minfreq:
                self.samples_low += 1
            else:
                self.samples_high += 1
    
    cpu = CPUgov()
    while True:
        cpu.measure()
        N100 = (cpu.samples_high + cpu.samples_low) * 0.01
        print 'high: %5.2f%%  low:%5.2f%%' %(cpu.samples_high / N100,
                                             cpu.samples_low / N100)
        time.sleep(1)
    
    Zkuste tohle nechat běžet hodinu, dvě, tři ... den, dva, tři ...

    Založit nové vláknoNahoru

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

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