Hilfe! Der ram ist voll und ich weiss nicht wieso
Geizhals » Forum » Linux-Support » Hilfe! Der ram ist voll und ich weiss nicht wieso (47 Beiträge, 649 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
..
Re(2): Hilfe! Der ram ist voll und ich weiss nicht wieso
07.09.2004, 15:24:17
top gibt folgendes aus:


3:23pm  up  4:40,  2 users,  load average: 3.92, 3.79, 2.86
127 processes: 118 sleeping, 9 running, 0 zombie, 0 stopped
CPU states: 49.7% user, 16.3% system,  0.0% nice, 33.9% idle
Mem:  1033496K av, 1010584K used,   22912K free,       0K shrd,    5316K buff
Swap: 2064344K av,   22572K used, 2041772K free                  723028K cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
19618 apache    14   0 11016 8680  5516 R     5.1  0.8   0:03 httpd
19278 apache     9   0 11452 9120  5536 S     4.6  0.8   0:05 httpd
17710 apache    15   0 12376 9.8M  5524 S     3.4  0.9   0:09 httpd
17624 apache    13   0 11448 9136  5556 S     3.2  0.8   0:08 httpd
20052 apache    15   0 12180 9904  5584 R     3.2  0.9   0:02 httpd
19705 apache    15   0 12388 9.8M  5448 R     3.0  0.9   0:02 httpd
19844 apache    15   0 11956 9528  5424 R     3.0  0.9   0:02 httpd
18207 apache     9   0 11860 9544  5556 S     2.9  0.9   0:09 httpd
17921 apache    10   0 11928 9672  5608 S     2.2  0.9   0:08 httpd
18177 apache    12   0 11512 9192  5548 S     2.2  0.8   0:09 httpd
19747 apache    15   0 12024 9684  5524 R     2.0  0.9   0:01 httpd
20743 root      16   0  1116 1116   836 R     1.7  0.1   0:00 top
17719 apache     9   0 11572 9316  5608 S     1.5  0.9   0:11 httpd
20644 apache     9   0 11380 8996  5508 S     1.3  0.8   0:00 httpd
17309 apache    10   0 11492 9236  5604 S     1.2  0.8   0:11 httpd
19845 apache     9   0 12044 9708  5520 S     1.0  0.9   0:01 httpd
18732 apache     9   0 11704 9388  5556 S     0.8  0.9   0:06 httpd
20781 mysql     10   0 85040  79M  1236 S     0.8  7.9   0:00 mysqld
20487 apache     9   0 10420 8044  5528 S     0.5  0.7   0:01 httpd
18326 apache     9   0 11708 9532  5524 S     0.3  0.9   0:07 httpd
19486 apache    10   0 11396 9124  5572 S     0.3  0.8   0:02 httpd
19602 apache     9   0 11676 9308  5540 S     0.3  0.9   0:02 httpd
20511 apache     9   0 10148 7760  5524 S     0.3  0.7   0:00 httpd
20586 apache     9   0 10608 8120  5412 S     0.3  0.7   0:00 httpd
20639 apache     9   0 10380 7872  5376 S     0.3  0.7   0:00 httpd
20785 mysql     12   0 85040  79M  1236 S     0.3  7.9   0:00 mysqld
20788 mysql     15   0 85040  79M  1236 R     0.3  7.9   0:00 mysqld
20790 mysql     19   0 85048  79M  1236 R     0.3  7.9   0:00 mysqld
17592 apache     9   0 11844 9688  5460 S     0.1  0.9   0:11 httpd
18039 apache     9   0 11936 9608  5548 S     0.1  0.9   0:09 httpd
18250 apache     9   0 11628 9388  5468 S     0.1  0.9   0:06 httpd
18800 apache     9   0 11860 9600  5604 S     0.1  0.9   0:04 httpd
19484 apache     9   0 11792 9452  5536 S     0.1  0.9   0:03 httpd
19736 apache    10   0 11416 9144  5588 S     0.1  0.8   0:01 httpd
20571 apache     9   0 11384 9008  5540 S     0.1  0.8   0:00 httpd
20585 apache     9   0  7364 4340  4068 S     0.1  0.4   0:00 httpd
20784 mysql     11   0 85040  79M  1236 S     0.1  7.9   0:00 mysqld
20786 mysql     12   0 85040  79M  1236 S     0.1  7.9   0:00 mysqld

(not sigkilled v1.1 (everyday): no images at all had 0 bytes of wasted capacity)

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
..........
Re(10): Hilfe! Der ram ist voll und ich weiss nicht wieso
08.09.2004, 10:21:16
> So ist es kein Problem Systeme zu finden, die mehr als 80% CPU idle haben,
> aber aufgrund eines loads von 6 und größer praktisch tod sind, und auf keine
> Eingabe mehr reagieren.

Genau darum geht es ja.
Die Grundlage für "load average" ist die Anzahl der aller Prozesse mit den states "running" und "uninterruptable"
Im "ps" als "R" und "D" erkennbar.

aus: "kernel/timer.c"

/* Nr of active tasks - counted in fixed-point numbers */
static unsigned long count_active_tasks(void)
{
return (nr_running() + nr_uninterruptible()) * FIXED_1;
}

static inline void calc_load(unsigned long ticks)
{
unsigned long active_tasks; /* fixed-point */
static int count = LOAD_FREQ;

count -= ticks;
if (count < 0) {
count += LOAD_FREQ;
active_tasks = count_active_tasks();
CALC_LOAD(avenrun[0], EXP_1, active_tasks);
CALC_LOAD(avenrun[1], EXP_5, active_tasks);
CALC_LOAD(avenrun[2], EXP_15, active_tasks);
}
}


aus "man ps":

PROCESS STATE CODES
D uninterruptible sleep (usually IO)
R runnable (on run queue)
S sleeping
T traced or stopped
W paging
X dead
Z a defunct ("zombie") process

Wobei es so ist, daß Prozesse die auf IO´s von Character-Devices warten, auf "S" gestellt, und solche die auf IO´s von Block-Devices warten auf "D" gesetzt werden.

Daher sehe ich keinen direkten Zusammenhang, zwischen "CPU%" und "load average" - wie du selber ja auch festgestellt hast - im o.a. Beispiel.
Am Beispiel des OP könnte man also auch sagen, daß die "mysqld" wenig "CPU%" aufweisen, aber ständig zwischen den States "R" und "D" wechseln und damit auch den "load" erhöhen. Ob das nun auch wirklich so ist, kann man mit einem zufälligen Auszug aus "top" natürlich nicht feststellen.
Daher auch meine ursprüngliche Frage "woran erkennst du das?"


Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung