Re: prozessids sehr hoch

From: Oliver Fromme <olli(at)secnetix.de>
Date: Fri, 12 Jul 2002 14:37:22 +0200 (CEST)

joerch <helix(at)mayn.de> wrote:
> > > werden dabei soviele prozesse gestartet ?
> >
> > Die typischen configure Scripte machen zig minicompile Tests.
> > Da kommen schon mal schnell recht viele Prozesse zusammen.
>
> sowas hatte ich vermutet, nur war ich mir nicht sicher.
> dieses ganze kleinzeug, gehe ich recht in der annahme, dass
> diese prozesse entweder so kurzlebig sind, dass sie nicht
> in einem laufenden top erscheinen, oder dass sie ueberhaupt
> nicht erscheinen ?

Top erneuert die Anzeige ja nur alle paar Sekunden. Für
den Prozessor sind das praktisch Ewigkeiten. Zwischen zwei
Refreshes von top werden Milliarden von Kommandos ausge-
führt; da passen völlig problemlos tausende von kurzlebi-
gen Prozessen rein. Top (genau wie ps) zeigt ja immer nur
einen »Snapshot« der aktuellen Prozeßtabelle (und dieser
muß nicht einmal unbedingt konsistent sein).

Auf einem ausreichend schnellen Rechner wirst Du daher die
allermeisten Prozesse, die z.B. ein configure-Skript an-
wirft, nicht sehen, weil sie viel zu kurzlebig sind. In
vielen Fällen siehst Du nicht einmal etwas von den diversen
Stages des Compilers; meistens steht dann eher das »make«
ganz oben im top (weil es ja naturgemäß langlebiger ist).

> > Das auch.
> > Wenn du es wirklich wissen willst, dann musst du Prozessacouting
> > aktivieren.
> > Das geht mit accton.
>
> danke werd ich gleich mal anschauen.

Wenn Du nur wissen möchtest, wieviele Prozesse so auf Dei-
nem System angeworfen werden, wenn Du ein bestimmtes Kom-
mando benutzt, helfen auch schon ktrace/kdump (Vorsicht,
das Tracefile kann recht groß werden). Beispiel:

# cd /usr/ports/devel/strace
# ktrace -tc -i make
[...]
# kdump | grep -i 'call.*fork' | wc -l
    1517

Das hat also 1517 einzelne Prozesse erzeugt, und zwar (auf
dieser Hardware) innerhalb von 12 Sekunden; das wären also
ca. 125 Prozesse pro Sekunde. Ein top hätte in der Zeit
vielleicht drei oder vier Refreshes gemacht und nur einen
winzigen Bruchteil der Prozesse angezeigt, die zum jeweili-
gen Augenblick gerade liefen, wenn überhaupt.

Der obige strace-Port, den ich als Test genommen habe, ist
vergleichsweise winzig und hatte keinerlei Dependencies zu
bauen. Wenn der schon > 1500 Prozesse erzeugt, dann wun-
dert es mich überhaupt nicht, daß bei umfangreicheren Din-
gen schnell die 90.000 und ein »Wrap-around« erreicht wird.

Gruß
   Olli

PS: Bin im übrigen dafür, endlich den ganzen 32bit-Raum
für PIDs zuzulassen.

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"All that we see or seem is just a dream within a dream" (E. A. Poe)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 12 Jul 2002 - 14:37:24 CEST

search this site