PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : apache2 über 90% Auslastung- Minderung möglich?



timmbo
08.01.14, 23:00
Hi,

auf meinen Webserver läuft Apache2 von openSuse12.3 mit mysql und php.
Wenn ich die moodle Lernplattform aufrufe, die auf diesem Server läuft, dann sehe ich unter top dass der httpd2-prefork über 90% cpu auslastung aufweist. Der Server läuft unter den Standardeinsstellungen, hat jemand von Euch einen Tip wie ich die CPU-Last herunterbekomme?

Der Server ist ein Atom 1.6Ghz DualCore mit 4GB Ram.

Thx
Timm

marce
08.01.14, 23:40
naja, erst mal anaylisieren, woher die Last denn nun kommt...

"wenn ich" heißt in dem Fall: Du bist der einzige Nutzer auf dem System?

timmbo
08.01.14, 23:53
Hi,

die Last kommt vom moodle-Aufruf.
Mit Ich meine ich, wenn ich selbst, dann bin ich der Einzigste der in dieser Sekunde/Minute moodle aufrufe.
Im top steht dann eben der httpd2 an erster Stelle mit unterschiedlicher Prozessorlast je nachdem wie umfangreich gerade die Seite ist.
Mir wurde gesagt, dass wenn 10-15 Teilnehmer gleichzeitig eine Seite aufrufen, der Seitenaufbau mehrere Minuten dauert.

Grüße
Timm

marce
09.01.14, 08:09
naja - und woher kommt es? Ist die DB zu langsam, hat der Prozess zu wenig Hauptspeicher und swapt daher, ...

timmbo
09.01.14, 09:09
Hi marce,

hm, top zeigt mir genügend freien Speicher an von 4GB werden 2.5verwendet.
Was genau meinst Du mit "ist die DB zu langsam"?
Es ist mysql, wie kann ich das Prüfen?

Kann es denn sein, dass der CPU hier zu schwach ist, oder sollte die für viel mehr User gleichzeitig gehen?

Ich habe mich jetzt am moddle angemeldet und direkt einen Kurs geöffnet, der aber nicht soo groß ist und habe das hier in top gesehen.


top - 09:12:03 up 6 days, 21:27, 1 user, load average: 0,13, 0,06, 0,05
Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie
%Cpu(s): 76,5 us, 6,6 sy, 0,0 ni, 16,2 id, 0,3 wa, 0,0 hi, 0,3 si, 0,0 st
KiB Mem: 4057184 total, 1496020 used, 2561164 free, 188604 buffers
KiB Swap: 1051644 total, 24192 used, 1027452 free, 687260 cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
26276 wwwrun 20 0 280m 45m 5188 S 76,6 1,1 0:03.43 httpd2-prefork
1796 mysql 20 0 856m 97m 6972 S 4,0 2,5 25:33.14 mysqld
26290 root 20 0 11180 1484 1016 (skype:2001118014841016?call) R 0,7 0,0 0:00.05 top
9 root -2 0 0 0 0 S 0,3 0,0 1:09.65 rcuc/0
11 root 20 0 0 0 0 S 0,3 0,0 1:17.86 rcu_preempt
127 root 0 -20 0 0 0 S 0,3 0,0 1:11.26 kworker/0:1H
180 root 20 0 0 0 0 S 0,3 0,0 1:48.81 jbd2/sda3-8
25839 wwwrun 20 0 279m 42m 3608 S 0,3 1,1 0:00.98 httpd2-prefork
26212 root 20 0 86756 3792 2956 (skype:2008675637922956?call) S 0,3 0,1 0:00.17 sshd
1 root 20 0 45680 3752 1776 (skype:2004568037521776?call) S 0,0 0,1 0:07.46 systemd

Thx
Timm

muell200
09.01.14, 09:58
%Cpu(s): 76,5 us, 6,6 sy, 0,0 ni, 16,2 id, 0,3 wa, 0,0 hi, 0,3 si, 0,0 st

das koennte der flaschenhals sein...

timmbo
09.01.14, 12:12
Hi,

was genau meinst du damit?
16,2 id, das sagt mir nichts.

Grüße
Timm

muell200
09.01.14, 14:58
was genau meinst du damit?


siehe: https://duckduckgo.com/ (https://duckduckgo.com/?q=linux+top+werte+systemauslastung)

oder man top

timmbo
09.01.14, 15:49
Hi,

leider finde ich für id nichts.
man top hat das für die Felder ausgespuckt.


2b. TASK and CPU States
This portion consists of a minimum of two lines. In an SMP environment, additional lines can reflect individual CPU state percentages.

Line 1 shows total tasks or threads, depending on the state of the Threads-mode toggle. That total is further classified as:
running; sleeping; stopped; zombie

Line 2 shows CPU state percentages based on the interval since the last refresh. Where two labels are shown below, those for more recent kernel versions are shown
first.
us, user : time running un-niced user processes
sy, system : time running kernel processes
ni, nice : time running niced user processes
wa, IO-wait : time waiting for I/O completion
hi : time spent servicing hardware interrupts
si : time spent servicing software interrupts
st : time stolen from this vm by the hypervisorZwischen ni und wa steht id, aber hier steht leider nichts darüber.

OK in Deinem Link bin ich fündig geworden

%id = CPU im Leerlauf (IDLE)

Hatte ich das doch so in Erinnerung dass das die Prozentzahl die der CPU noch zur Verfügung steht, ist.
Aber "76,5 us" sagt doch schon aus dass die CPU belastet wird?


Update:

Kann es daran liegen, dass moodle 2.6 empfiehlt OPcache zu verwenden?
Leider hat php5.3, welches ich verwende, dieses noch nicht implementiert, erst ab 5.5.


Thx
Timm

Spinne1000
25.01.14, 13:32
Hallo,

id steht für idle.
us sind User-Prozesse.

Ich bezweifle dass die CPU das Problem sein wird. Der Hauptspeicher sollte für 150 ähh... 15 User auch locker reichen (keine Angst wenn er ziemlich viel braucht, je mehr Speicher Linux verwendet umso besser. Ungenutzter RAM bringt ja nichts. Erst wenn er anfangen muss viel auszulagern, hast du ein RAM Problem.). Sollte die Performance wirklich bei vielen Usern massiv in den Kellern gehen, ist meist die Transferleistung von der Festplatte das Problem. D. h. die Daten können nicht schnell genug gelesen werden. Ne SSD z. B. wäre hier dann ne recht günstige Lösung, die ich in dem Fall als erstes in Angriff nehmen würde.

Die MySQL kann man auf Performance testen und so evtl Probleme herausfinden.

lg
Holger

stxShadow
29.01.14, 09:39
Moin Moin,

ich empfehle hier das Tool "nmon".

Dort dann "c" für CPU und "d" für Disk drücken.

Dann kann man die CPU Last im Verhältnis zur IOLast prima beobachten. Sollte hier z.b. die Platte dauerhaft auf 100% laufen ist es ein IO Problem. Falls nicht, kann man die Platte schonmal ausschliessen (kurze Spikes sind ok).

ggf kannst Du ja mal Dein Ergebnis hiervon posten.

Viele Grüße

Jens