🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
8 messages
8 total messages Started by Scottie Wed, 17 Nov 2010 13:28
Szukanie i podliczanie elementow w tablicy hash
#52010
Author: Scottie
Date: Wed, 17 Nov 2010 13:28
84 lines
3083 bytes
Czesc!
Z powodu tego, ze narzedzia top, ps i glance (na HP-UX) pokazuja rozne
(nie dajace porownac sie) dane wyjsciowe, postanowilem skorzystac z
modulu "Proc::ProcessTable". Wszystko fajnie, ale od paru dni glowie
sie nad zliczaniem tego, co ten modul prezentuje. Poszukuje
rozwiazania zliczania elementow w tablicy w stylu ponizszej klauzuli
SQL:
SELECT sum(rssize)
FROM procprocesstable
WHERE uid IN (101, 102);

Kod:
#!/usr/bin/perl

use Proc::ProcessTable;

$ref = new Proc::ProcessTable;

foreach $proc (@{$ref->table}) {
  if(@ARGV) {
    next unless grep {$_ == $proc->{pid}} @ARGV;
  }

  print "--------------------------------\n";
  foreach $field ($ref->fields){
    print $field, ":  ", $proc->{$field}, "\n";
  }
}

Powyzszy kod robi cos takiego (debug): http://goo.gl/y35jX
Co po duzym uproszczeniu prezentuje ponizsze, przykladowe (zmyslone)
dane:
--------------------------------
uid:  0
pid:  0
cpu:  0
start:  1284802722
flag:  515
state:  sleep
procnum:  1
pctcpu:  0.000000
rssize:  0
--------------------------------
uid:  101
pid:  0
cpu:  0
start:  1284802722
flag:  515
state:  sleep
procnum:  1
pctcpu:  0.000010
rssize:  3057
--------------------------------
uid:  102
pid:  0
cpu:  2
start:  1284802722
flag:  515
state:  sleep
procnum:  1
pctcpu:  0.000002
rssize:  2048
--------------------------------
uid:  101
pid:  0
cpu:  1
start:  1284802722
flag:  515
state:  sleep
procnum:  1
pctcpu:  0.000001
rssize:  1024
--------------------------------

Problem, ktory mam, to jak podliczyc np. RSSIZE dla kazdego
uzytkownika?? Dla jednego usera (uid) to bym wiedzial, ale jak dla
wielu??

Bylbym wdzieczny, gdyby ktos zapodal jakis pomysl, jak w ogole sie za
to zabrac, bo ja na razie nie mam pojecia... :-/

Pozdrawiam,
--
Scottie
Re: Szukanie i podliczanie elementow w tablicy hash
#52011
Author: Sławomir Szczyrba
Date: Wed, 17 Nov 2010 14:06
23 lines
1625 bytes
Scottie powiada :

[...]
> Problem, ktory mam, to jak podliczyc np. RSSIZE dla kazdego
> uzytkownika?? Dla jednego usera (uid) to bym wiedzial, ale jak dla
> wielu??
>
> Bylbym wdzieczny, gdyby ktos zapodal jakis pomysl, jak w ogole sie za
> to zabrac, bo ja na razie nie mam pojecia... :-/
>
my %suma;
...
...
    $suma{$uid}+=$rssize;

?

Sławek
-- 
  ________ 
_/ __/ __/ 367. Stripping to ten sam efekt co striptiz.
 \__ \__ \_______________________________________________________________
 /___/___/ Sławomir Szczyrba                          steev/AT/hot\dot\pl
Re: Szukanie i podliczanie elementow w tablicy hash
#52012
Author: hubert depesz lubaczewski
Date: Wed, 17 Nov 2010 18:20
13 lines
1338 bytes
On 2010-11-17, Scottie <scottie383@gmail.com> wrote:
> Problem, ktory mam, to jak podliczyc np. RSSIZE dla kazdego
> uzytkownika?? Dla jednego usera (uid) to bym wiedzial, ale jak dla
> wielu??

kontrolnie się tylko zapytam - wiesz, że to nie ma sensu? i że zwracana
wartość może nie mieć nic wspólnego z rzeczywistością?

depesz

-- 
Linkedin: http://www.linkedin.com/in/depesz  /  blog: http://www.depesz.com/
jid/gtalk: depesz@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007
Re: Szukanie i podliczanie elementow w tablicy hash
#52013
Author: Scottie
Date: Thu, 18 Nov 2010 09:40
15 lines
2153 bytes
On 17 Lis, 19:20, hubert depesz lubaczewski <dep...@depesz.com> wrote:
> kontrolnie się tylko zapytam - wiesz, że to nie ma sensu? i że zwracana
> wartość może nie mieć nic wspólnego z rzeczywistością?

No to mnie, kurcze Depesz "pocieszyłeś". :-/ Już miałem nadzieję, że
znalazłem sposób (Proc::ProcessTable) na podliczanie ile pamięci
zajmują procesy użytkowników, a tu się okazuje, że to też lipa???
Wiem, że ta grupa to nie najlepsze miejsce do tego typu pytań, ale
cholera jak zmierzyć faktyczną konsumpcję pamięci przez userów na
maszynie HP-UX??? Problem w tym, że nie wszędzie jest dostępny program
'glance', a - jak już wspomniałem - 'top' i 'ps' pokazują zupełnie
różne rzeczy (np. w stronach, które trzeba mnożyć przez 8KB, a i tak
nie wychodzi to samo, co w glance).

Scottie
Re: Szukanie i podliczanie elementow w tablicy hash
#52014
Author: Stachu 'Dozzie' K.
Date: Thu, 18 Nov 2010 09:50
30 lines
2954 bytes
On 2010-11-18, Scottie <scottie383@gmail.com> wrote:
> On 17 Lis, 19:20, hubert depesz lubaczewski <dep...@depesz.com> wrote:
>> kontrolnie się tylko zapytam - wiesz, że to nie ma sensu? i że zwracana
>> wartość może nie mieć nic wspólnego z rzeczywistością?
>
> No to mnie, kurcze Depesz "pocieszyłeś". :-/ Już miałem nadzieję, że
> znalazłem sposób (Proc::ProcessTable) na podliczanie ile pamięci
> zajmują procesy użytkowników, a tu się okazuje, że to też lipa???
                                                                ^^^
Z10000m??????? A ty obl00kałeś co to jest przestrzeń adresowa?!???
Czaisz???

> Wiem, że ta grupa to nie najlepsze miejsce do tego typu pytań, ale
> cholera jak zmierzyć faktyczną konsumpcję pamięci przez userów na
> maszynie HP-UX??? Problem w tym, że nie wszędzie jest dostępny program
> 'glance', a - jak już wspomniałem - 'top' i 'ps' pokazują zupełnie
> różne rzeczy (np. w stronach, które trzeba mnożyć przez 8KB, a i tak
> nie wychodzi to samo, co w glance).

A pytałeś dostawcę oprogramowania? Bo zarządzanie pamięcią to dość
trudny kawałek chleba. Jeden proces może zajmować 24MB, a dwa takie same
już 30MB -- bo współdzielą biblioteki. Do tego nie wiadomo komu
przypisać pamięć dzieloną (SHM), czy wliczać strony pamięci na swapie i,
jeśli system to obsługuje, jak traktować strony copy-on-write. Do tego
jeszcze dolicz overbooking (na przykład w Linuksie to występuje), kiedy
proces prosi o dużo pamięci, a używa (zapisuje) mało.

-- 
Secunia non olet.
Stanislaw Klekot
Re: Szukanie i podliczanie elementow w tablicy hash
#52015
Author: Scottie
Date: Thu, 18 Nov 2010 10:32
15 lines
2066 bytes
On 18 Lis, 10:50, "Stachu 'Dozzie' K."
<doz...@go.eat.some.screws.spammer.invalid> wrote:
> Z10000m??????? A ty obl00kałeś co to jest przestrzeń adresowa?!???
> Czaisz???

Dżizas, człowiek się uprzejmie pyta i prosi o radę, to robią z niego
debila. Nie każdy miał okazję ukończyć Mega Zajebistą Politechnikę,
albo przeczytać miliard książek łącznie z manualami. Czaisz?
Zamiast robić z siebie geeka, podałbyś jakiś namiar na literaturę albo
www. Skąd mam wiedzieć, czy to co piszesz nie jest wybujałą fantazją,
czy może robiłeś certa z HP-UX?!?

Szacunek,
--
Scottie
Re: Szukanie i podliczanie elementow w tablicy hash
#52018
Author: hubert depesz lubaczewski
Date: Thu, 18 Nov 2010 10:55
27 lines
2140 bytes
On 2010-11-18, Scottie <scottie383@gmail.com> wrote:
> On 17 Lis, 19:20, hubert depesz lubaczewski <dep...@depesz.com> wrote:
>> kontrolnie się tylko zapytam - wiesz, że to nie ma sensu? i że zwracana
>> wartość może nie mieć nic wspólnego z rzeczywistością?
>
> No to mnie, kurcze Depesz "pocieszyłeś". :-/ Już miałem nadzieję, że
> znalazłem sposób (Proc::ProcessTable) na podliczanie ile pamięci
> zajmują procesy użytkowników, a tu się okazuje, że to też lipa???

nie znam hpuxa, ale ogólnie to jest większy problem.
najprostszą rzeczą o jaką się rozbija problem to pamięć dzielona.

ujmę to tak - jest to problem naprawdę mocno skomplikowany, do tego
stopnia, że kolesie od kernela linuksa i zawartego w nim oom-killera też
tego nie potrafią (to nie znaczy, że ja potrafię!).

tu masz trochę szerszy opis
http://thoughts.j-davis.com/2009/11/29/linux-oom-killer/

oczywiście to nie przekłada się na hpuxa, ale chodzi mi o podanie
kontekstu do "ile ramu zajmują procesy usera".

depesz

-- 
Linkedin: http://www.linkedin.com/in/depesz  /  blog: http://www.depesz.com/
jid/gtalk: depesz@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007
Re: Szukanie i podliczanie elementow w tablicy hash
#52016
Author: Stachu 'Dozzie' K.
Date: Thu, 18 Nov 2010 11:13
33 lines
2751 bytes
On 2010-11-18, Scottie <scottie383@gmail.com> wrote:
> On 18 Lis, 10:50, "Stachu 'Dozzie' K."
><doz...@go.eat.some.screws.spammer.invalid> wrote:
>> Z10000m??????? A ty obl00kałeś co to jest przestrzeń adresowa?!???
>> Czaisz???
>
> Dżizas, człowiek się uprzejmie pyta i prosi o radę, to robią z niego
> debila.

Było użyć pojedynczego pytajnika, bym się nie nabijał. Bo podkreślenia
oczywiście nie zauważyłeś.

> Nie każdy miał okazję ukończyć Mega Zajebistą Politechnikę,
> albo przeczytać miliard książek łącznie z manualami. Czaisz?
> Zamiast robić z siebie geeka, podałbyś jakiś namiar na literaturę albo
> www.

A bo ja wiem? Gdzieś kiedyś doczytałem o overbookingu.
A czy ty możesz wskazać podręcznik, z którego uczyłeś się matematyki?
Analogiczna sprawa. A jeśli wytniesz z mojego poprzedniego posta ten
jeden kawałek który ci się nie spodobał, to dostałeś garść słów
kluczowych do szukania. I naprawdę lepiej zapytaj dostawcę systemu
operacyjnego jak to robić. HP-UX to dość kosztowny OS, więc spodziewam
się że wsparcie techniczne masz również wykupione.

> Skąd mam wiedzieć, czy to co piszesz nie jest wybujałą fantazją,
> czy może robiłeś certa z HP-UX?!?

O widzisz, a tu już użyłeś pytajnika prawidłowo.

-- 
Secunia non olet.
Stanislaw Klekot
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads