user_beancounter und Prozesse

magicg

New Member
Hallo,

Ich habe eine Frage zu den user_beancounter.

Wenn ich auf meinem V-Server den user_beancounter ansehe bekomme ich:
Code:
       uid  resource                     held              maxheld              barrier                limit              failcnt
            numproc                        66                   69                   96                   96                  427

Wie man sieht ist der aktuelle "held" Wert auf 66.
Auf meinem System laufen aber nur 46 Prozesse.
Code:
# ps aux |wc -l
46

Wenn ich den zb. Apache stoppe und damit -4 Prozesse habe, dann fällt der held count sofort auf 62 und aktuelle Prozesse auf 42.
Tatsache ist das der held Wert immer um 20 Prozesse höher ist wodurch ich bei Skripten oder meheren Mails immer an die limits stosse.
Mein Hoster kann mir hierfür keine Erklärung geben, aber gut die kennen sich auch scheinbar nicht mit Unix und ps Befehlen aus....

Hat jemand eine Erklärung hierfür?

danke
 
Das werden vermutlich die Child-Prozesse des Indianers sein:
Code:
ps fauxw | grep apache
sollte dir da mehr zu den Apache-Prozessen sagen.
 
Code:
ps fauxw | wc -l
44

Nein tun sie nicht. Außerdem besteht die Differenz von 20 Prozessen auch, wenn der Apache gar nicht läuft.

-w -f bringen auch nur mehr INformationen was den output bringt. Zeigen also nichts zusätzlich an.
 
Mit numproc wird auch die Anzahl Threads gemessen und begrenzt. Liegt vielleicht auch daran, dass bei Linux die Grenze zwischen Thread und Prozeß historisch bedingt nicht so scharf war.

Starte mal top und schau in der zweiten Zeile nach dem Wert für Tasks. Das sollte zur Anzahl der Prozesse passen, die du mit ps ermittelt hast. Nun drücke H (Großschrift!) und top schaltet in den Thread-Modus um. Da sollte die Zahl eher zur Ausgabe von numproc passen und in der Liste kannst du vermutlich auch die Programme ausmachen, die Multithreading nutzen. Das könnte ein Apache mit MPM-Worker sein (bei dir offenbar nicht), MySQL oder rsyslogd oder Slapd oder...
 
TOP Output:
Tasks: 42 total, 1 running, 41 sleeping, 0 stopped, 0 zombie

Mit "H":
Tasks: 64 total, 1 running, 63 sleeping, 0 stopped, 0 zombie


Danke mal für die Info!
Sehe das es der named und mysql sind.

Hier das Beispiel:
Code:
#:/etc/init.d# grep numproc /proc/user_beancounters
            numproc                        53                   53                   96                   96                  427
#:/etc/init.d# ./bind9 start
Starting domain name service...: bind9.
#:/etc/init.d# grep numproc /proc/user_beancounters
            numproc                        64                   64                   96                   96                  427

Vielen Dank für die Info, das war genau das wonach ich gesucht habe. Kann ich den Bind und Mysql dazu bringen weniger threading zu betreiben oder multithreading zu deaktivieren?

thx
 
Last edited by a moderator:
So von der man-page des BIND her würde ich sagen, dass das einfach möglich ist (cat /proc/cpuinfo liefert Dir bei Deinem System wahrscheinlich die Anzahl der CPUs des Hostsystems):
man named said:
-n #cpus
Create #cpus worker threads to take advantage of multiple CPUs. If
not specified, named will try to determine the number of CPUs
present and create one thread per CPU. If it is unable to determine
the number of CPUs, a single worker thread will be created.
Für den mysqld kannst Du Dir ja selber mal die man-page durchlesen und nach "thread" suchen (Tipp: die '/' benutzen).
 
Back
Top