Lustálkodók pusztítása szkripttel

Kezdőlap Fórumok Programozás Lustálkodók pusztítása szkripttel

10 bejegyzés megtekintése - 1-10 / 19
  • Szerző
    Bejegyzés
  • #2135617
    sjrextor
    Felhasználó

      A ps az összes futó folyamatot megjeleníti, míg a w csak azt, hogy ki van benn és éppen milyen parancsot futtat.
      Ha pl nem csinál semmit, akkor arra ott az idle time, gondolom ez a script egyik alappillére.
      Ha viszont a ps aux | grep -i hetsznyukapanyanyimonyok alapú, akkor meg minden folyamat, amit az adtt felhasználó indított el, pl azzal, hogy belépett, pl bash, login, stb.
      A különbség számomra ahogy leesett az az, hogy a ps aux minden folyamat, ami éppen fut, a w pedig hogy ki és éppen mit csinál és mindig az utolájra beírt parancsot írja ki, hogyha pedig a csóka visszakapja a command prompt-ot, akkor a w kimenete az adott felhasználó alapértelmezett shell-jének a neve.
      PFF, megint nem tudok fogalmazni 😀

      #2135618
      sjrextor
      Felhasználó

        A ps az összes futó folyamatot megjeleníti, míg a w csak azt, hogy ki van benn és éppen milyen parancsot futtat.
        Ha pl nem csinál semmit, akkor arra ott az idle time, gondolom ez a script egyik alappillére.
        Ha viszont a ps aux | grep -i hetsznyukapanyanyimonyok alapú, akkor meg minden folyamat, amit az adtt felhasználó indított el, pl azzal, hogy belépett, pl bash, login, stb.
        A különbség számomra ahogy leesett az az, hogy a ps aux minden folyamat, ami éppen fut, a w pedig hogy ki és éppen mit csinál és mindig az utolájra beírt parancsot írja ki, hogyha pedig a csóka visszakapja a command prompt-ot, akkor a w kimenete az adott felhasználó alapértelmezett shell-jének a neve.
        PFF, megint nem tudok fogalmazni 😀

        #2135619
        ELaci
        Felhasználó
          sjrextor wrote:
          A ps az összes futó folyamatot megjeleníti, míg a w csak azt, hogy ki van benn és éppen milyen parancsot futtat.
          Ha pl nem csinál semmit, akkor arra ott az idle time, gondolom ez a script egyik alappillére.
          Ha viszont a ps aux | grep -i hetsznyukapanyanyimonyok alapú, akkor meg minden folyamat, amit az adtt felhasználó indított el, pl azzal, hogy belépett, pl bash, login, stb.
          A különbség számomra ahogy leesett az az, hogy a ps aux minden folyamat, ami éppen fut, a w pedig hogy ki és éppen mit csinál és mindig az utolájra beírt parancsot írja ki, hogyha pedig a csóka visszakapja a command prompt-ot, akkor a w kimenete az adott felhasználó alapértelmezett shell-jének a neve.
          PFF, megint nem tudok fogalmazni 😀

          A „ps -ef” -et használom, az összes processz megjelenítéséhez. Nyilván ebből ki kell szürni azokat grep-el, akik használnak adatbázist.
          Megnézem „w” -vel ugyanígy szürve grep-el, és kiderül hogy a „ps” -el megjelenítettekhez képest csak kb. harmada van a „w” listán. Most ezek úgy lógnak valahol, és nincsenek belépve? A „ps” kiírja hogy ott vannak, van tty meg loginnév meg ilyenek.
          Az is lehetséges hogy ezeket már nyugodtan ki lehet lökni az adatbázisból, mert olyan közelzombi állapotban vannak.
          Az adatbáziskezelőnek is van egy segédszoftvere, ami a „ps” -nek megfelelő állapotot írja ki a userhasználatot illetően, tehát a „ps” -nek igaza van. Az egyetlen probléma az hogy csak a „w” használatával tudom eldönteni, hogy az adott user vajon lustálkodik-e, vagy hosszabb feldolgozást futtat, ugyanis csak ebben jelenik meg a processz JCPU ideje.
          Tehát egy kb. 10 perces sleep idő alatt szeretném kideríteni az adott processz müködését és annak cpu terhelését a „w” -vel, viszont sok processz már eleve nem is jelenik meg.
          Lehet hogy kicsit zavaros amit írok, de valami ötlet jó lenne ennek a megoldására, pl. a jcpu idő kijelzése mással típusú is.

          EL

          Szerkesztve utólag:
          Azt hiszem a dolog világosodik:
          A „w” által kiírt listán azért nem jelennek meg azok a bizonyos processzek, mert már nem is élnek, tehát elvileg nyugodtan leállíthatók. Elvileg. Valami „tcp delay” mizéria lehet.
          Gyakorlatilag ennek a feltételezésnek a kivizsgálása – érzésem szerint – hosszabb időt vesz igénybe.

          #2135620
          ELaci
          Felhasználó
            sjrextor wrote:
            A ps az összes futó folyamatot megjeleníti, míg a w csak azt, hogy ki van benn és éppen milyen parancsot futtat.
            Ha pl nem csinál semmit, akkor arra ott az idle time, gondolom ez a script egyik alappillére.
            Ha viszont a ps aux | grep -i hetsznyukapanyanyimonyok alapú, akkor meg minden folyamat, amit az adtt felhasználó indított el, pl azzal, hogy belépett, pl bash, login, stb.
            A különbség számomra ahogy leesett az az, hogy a ps aux minden folyamat, ami éppen fut, a w pedig hogy ki és éppen mit csinál és mindig az utolájra beírt parancsot írja ki, hogyha pedig a csóka visszakapja a command prompt-ot, akkor a w kimenete az adott felhasználó alapértelmezett shell-jének a neve.
            PFF, megint nem tudok fogalmazni 😀

            A „ps -ef” -et használom, az összes processz megjelenítéséhez. Nyilván ebből ki kell szürni azokat grep-el, akik használnak adatbázist.
            Megnézem „w” -vel ugyanígy szürve grep-el, és kiderül hogy a „ps” -el megjelenítettekhez képest csak kb. harmada van a „w” listán. Most ezek úgy lógnak valahol, és nincsenek belépve? A „ps” kiírja hogy ott vannak, van tty meg loginnév meg ilyenek.
            Az is lehetséges hogy ezeket már nyugodtan ki lehet lökni az adatbázisból, mert olyan közelzombi állapotban vannak.
            Az adatbáziskezelőnek is van egy segédszoftvere, ami a „ps” -nek megfelelő állapotot írja ki a userhasználatot illetően, tehát a „ps” -nek igaza van. Az egyetlen probléma az hogy csak a „w” használatával tudom eldönteni, hogy az adott user vajon lustálkodik-e, vagy hosszabb feldolgozást futtat, ugyanis csak ebben jelenik meg a processz JCPU ideje.
            Tehát egy kb. 10 perces sleep idő alatt szeretném kideríteni az adott processz müködését és annak cpu terhelését a „w” -vel, viszont sok processz már eleve nem is jelenik meg.
            Lehet hogy kicsit zavaros amit írok, de valami ötlet jó lenne ennek a megoldására, pl. a jcpu idő kijelzése mással típusú is.

            EL

            Szerkesztve utólag:
            Azt hiszem a dolog világosodik:
            A „w” által kiírt listán azért nem jelennek meg azok a bizonyos processzek, mert már nem is élnek, tehát elvileg nyugodtan leállíthatók. Elvileg. Valami „tcp delay” mizéria lehet.
            Gyakorlatilag ennek a feltételezésnek a kivizsgálása – érzésem szerint – hosszabb időt vesz igénybe.

            #2135621
            admin
            Adminisztrátor

              „az adott processz müködését és annak cpu terhelését a „

              Csak ötlet: top-les ;D

              #2135622
              admin
              Adminisztrátor

                „az adott processz müködését és annak cpu terhelését a „

                Csak ötlet: top-les ;D

                #2135623
                ELaci
                Felhasználó
                  sany wrote:
                  „az adott processz müködését és annak cpu terhelését a „

                  Csak ötlet: top-les ;D

                  „top”
                  Gondoltam erre én is, az ötlet majdnem jó.
                  Egyetlen probléma van vele: a pillanatnyi cpu terhelést írja ki százalékban. Ez egy folyamatosan futó processz esetén akár nulla is lehet a multitask terheléselosztás miatt, ami azt is jelentheti hogy a user lustálkodik adott pillanatban, pedig nem, csak nem jutott neki processzor idő.

                  top-les: command not found 🙂

                  EL

                  #2135624
                  ELaci
                  Felhasználó
                    sany wrote:
                    „az adott processz müködését és annak cpu terhelését a „

                    Csak ötlet: top-les ;D

                    „top”
                    Gondoltam erre én is, az ötlet majdnem jó.
                    Egyetlen probléma van vele: a pillanatnyi cpu terhelést írja ki százalékban. Ez egy folyamatosan futó processz esetén akár nulla is lehet a multitask terheléselosztás miatt, ami azt is jelentheti hogy a user lustálkodik adott pillanatban, pedig nem, csak nem jutott neki processzor idő.

                    top-les: command not found 🙂

                    EL

                    #2135625
                    ds
                    Felhasználó

                      ha jól értem a problémát valami ilyesmi kellene neked:
                      ps -U elaci -u elaci -o time | awk ‘BEGIN {a=0;FS=”:”} // {a+=$3+$2*60+$1*3600} END{print a} ‘
                      ez ugyanazt az eredményt adja (nálam) mint a w (ott csak a startkde látszik (meg néhány bash) mivel annak van tty -je

                      #2135626
                      ds
                      Felhasználó

                        ha jól értem a problémát valami ilyesmi kellene neked:
                        ps -U elaci -u elaci -o time | awk ‘BEGIN {a=0;FS=”:”} // {a+=$3+$2*60+$1*3600} END{print a} ‘
                        ez ugyanazt az eredményt adja (nálam) mint a w (ott csak a startkde látszik (meg néhány bash) mivel annak van tty -je

                      10 bejegyzés megtekintése - 1-10 / 19
                      • Be kell jelentkezni a hozzászóláshoz.