abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 00:33 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.

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

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Nová verze

    Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.

    Ladislav Hagara | Komentářů: 0
    3.5. 13:11 | Nová verze

    Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    2.5. 22:33 | Nová verze

    Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 19
    2.5. 21:22 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 2
    2.5. 19:33 | Nová verze

    Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    2.5. 11:22 | Bezpečnostní upozornění

    Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.

    Ladislav Hagara | Komentářů: 3
    2.5. 11:00 | Nová verze

    Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".

    Ladislav Hagara | Komentářů: 4
    1.5. 23:22 | IT novinky

    Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).

    Ladislav Hagara | Komentářů: 23
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (48%)
     (12%)
     (23%)
     (17%)
    Celkem 60 hlasů
     Komentářů: 8, poslední včera 08:25
    Rozcestník

    Dotaz: Monitorovanie kratkych procesov

    Tombik avatar 16.5.2012 09:52 Tombik | skóre: 12
    Monitorovanie kratkych procesov
    Přečteno: 185×
    Potrebujem monitorovat php-cgi procesy, ktore sa spustaju pod jednotlivym uzivatelom vzdy ked niekto nacitava jeho web. Tieto procesy vacsinov rychlo vzniknu vytvoria nejaky kratkodoby CPU load (samozrejme zoberu aj RAM...) a potom zaniknu.

    Potrebujem, aby napriklad kazdych 10 minut mi skript spravil report o tom kolko php-cgi procesov, ktorych uzivatelov bolo behom tychto 10 minut spustane a aky vytvorili CPU load. Da sa nejako spravit, ze vzdy ked vznikne novy php-cgi proces tak to zaroven spusti nejaky moj skript? Alebo ako inac by som mohol postupovat?

    Za kazdy napad budem velmi vdacny. Skusal som hladat rozne monitorovacie nastroje, ale na moj ucel som nic nenasiel. Mam naprogramovane nieco vlastne, ale to len kontroluje aktualny CPU load vzdy ked sa skript spusti z cronu. Jednoducho parsuje data z ps. Toto samozrejme nestaci.

    Dakujem

    Řešení dotazu:


    Odpovědi

    16.5.2012 10:03 jkhkjhkhj
    Rozbalit Rozbalit vše Re: Monitorovanie kratkych procesov
    http://www.gnu.org/software/acct/
    Řešení 1× (Tombik (tazatel))
    16.5.2012 10:41 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: Monitorovanie kratkych procesov
    Na to asi byl nejvhodnejsi SystemTap. Inspirovat se lze napr v prikladech. Pro zacatek napr process/forktracker.stp, process/pstrace_exec.stp. Pak lze nastavit dalsi skript ktery se povesi na vystup SystemTapu a reaguje na udalosti.
    Pri konci procesu pak nejak zjistit kolik zabral casu (neco jako je v /proc/[pid]/stat - to by SystemTap mohl taky umet, ale je to na delsi zkoumani. Highlevel bych to videl takhle - v kprocess.exec_complete si vyfiltrovat a zapamatovat potrebne procesy (vcetene casu startu); v kprocess.exit zjistit zda konci zapamatovany proces, zjistit jeho utime a vypsat ho spolecne s rozdilem od casu kprocess.exec_complete - tim se pak da toho dost zjistit.
    Jelikoz to je povesene na vytvareni / ruseni procesu tak by to snad ani nemuselo brat tolik vykonu.
    Docela zajimave vypada tohle http://people.redhat.com/berrange/systemtap/process-files/process-files.stap
    Tombik avatar 16.5.2012 11:56 Tombik | skóre: 12
    Rozbalit Rozbalit vše Re: Monitorovanie kratkych procesov
    Diky za odpoved idem sa na to pozriet a vyskusat to.
    Řešení 1× (Tombik (tazatel))
    16.5.2012 12:05 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: Monitorovanie kratkych procesov
    Coz takhle: process-files.stap:
    global pids
    
    function get_usertime:long() %{
      THIS->__retvalue = current->utime + current->signal->utime;
    %}
    
    function proc:string() {
      return sprintf("%d (%s)", pid(), execname())
    }
    
    probe syscall.fork.return {
      printf("%s fork   : %d\n", proc(), $return)
    }
    
    probe syscall.execve {
      printf("%s execve :%s\n",proc(), kernel_string($filename))
      pids[pid()] = gettimeofday_ms()
    }
    
    
    probe syscall.exit {
      if (pids[pid()] != 0) {
        printf("%s exit  : utime=%d rtime=%d\n", proc(), get_usertime(), gettimeofday_ms() - pids[pid()])
        pids[pid()] = 0
      } else {
        printf("%s exit  : utime=%d rtime=unknown\n", proc(), get_usertime())
      }
    }
    
    Spusteni: stap process-files.stap -g Priklad vystupu:
    14 (kthread) fork   : 7686
    7686 (kstopmachine) exit  : utime=0 rtime=unknown
    14 (kthread) fork   : 7687
    7687 (kstopmachine) exit  : utime=0 rtime=unknown
    14 (kthread) fork   : 7688
    7688 (kstopmachine) exit  : utime=0 rtime=unknown
    7668 (bash) exit  : utime=4919 rtime=unknown
    6426 (bash) fork   : 7689
    7689 (bash) execve :/bin/cat
    7689 (cat) exit  : utime=0 rtime=1912
    6426 (bash) fork   : 7690
    7690 (bash) execve :/bin/bash
    7690 (bash) exit  : utime=3680 rtime=3341
    7680 (stapio) exit  : utime=0 rtime=unknown
    
    Kde utime je klasicky user time a rtime je real-time (celkovy cas behu programu). Neni problem pridelat system-time. Procesy s rtime=unknown byl spusteni pred zacatkem behu skriptu.
    Napr cat bezel 1912ms a spotreboval 0ms, tudiz prumerne vytezoval procesor na 0% po dobu 1912ms; bash bezel 3341ms a spotreboval 3680ms, tudiz prumerne vytezoval procesor na 100% po dobu 3341ms (tady netusim proc rtime < utime, ale tech par ms pujde snad zanedbat)
    Tombik avatar 16.5.2012 13:26 Tombik | skóre: 12
    Rozbalit Rozbalit vše Re: Monitorovanie kratkych procesov
    Diky toto presne vyzera ako to co potrebujem. Idem s tym dalej experimentovat :)

    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.