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
Author: Scottie
Date: Wed, 17 Nov 2010 13:28
Date: Wed, 17 Nov 2010 13:28
84 lines
3083 bytes
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
Author: Sławomir Szczyrba
Date: Wed, 17 Nov 2010 14:06
Date: Wed, 17 Nov 2010 14:06
23 lines
1625 bytes
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
Author: hubert depesz lubaczewski
Date: Wed, 17 Nov 2010 18:20
Date: Wed, 17 Nov 2010 18:20
13 lines
1338 bytes
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
Author: Scottie
Date: Thu, 18 Nov 2010 09:40
Date: Thu, 18 Nov 2010 09:40
15 lines
2153 bytes
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
Author: Stachu 'Dozzie' K.
Date: Thu, 18 Nov 2010 09:50
Date: Thu, 18 Nov 2010 09:50
30 lines
2954 bytes
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
Author: Scottie
Date: Thu, 18 Nov 2010 10:32
Date: Thu, 18 Nov 2010 10:32
15 lines
2066 bytes
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
Author: hubert depesz lubaczewski
Date: Thu, 18 Nov 2010 10:55
Date: Thu, 18 Nov 2010 10:55
27 lines
2140 bytes
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
Author: Stachu 'Dozzie' K.
Date: Thu, 18 Nov 2010 11:13
Date: Thu, 18 Nov 2010 11:13
33 lines
2751 bytes
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