Server-Last unter Linux - woher, warum?

MichaelRadke

Mitglied
Hallo Forum,

ich betreibe einen größeren Server, auf dem die verschiedensten Dienste laufen.
- Samba
- AppleTalk
- Exim Mailserver mit Virenschutz, IMAP/Dovecot
- Fax-Gateway

- viele Festplatten, Raid1 und Raid5 ist im Einsatz

Von den Mac-Anwendern kommt immer häufiger die Frage, warum der Server so langsam sei. Der Server ist als langsam zu bezeichnen, wenn die Server-Load über 1.00 geht. Dabei ist anzumerken, dass die einzelnen Prozesse die CPU gerade mal im Prozentbereich beanspruchen, zumindest wenn man der Ausgabe von "top" glauben schenkt :

Code:
server:~ # top
top - 14:37:19 up 28 days, 18:16,  3 users,  load average: 1.41, 0.88, 0.57
Tasks: 242 total,  16 running, 226 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.7% us,  1.0% sy,  0.0% ni, 11.3% id, 85.0% wa,  0.0% hi,  1.0% si
Mem:   1033224k total,   940584k used,    92640k free,   122180k buffers
Swap:  2097640k total,    55896k used,  2041744k free,   430316k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                               
32233 daemon    15   0  2900 1172  844 S  1.3  0.1   0:00.98 exim                                                  
23727 mac       15   0  6132 1684 1104 D  0.7  0.2   0:03.48 afpd                                                  
32282 daemon    15   0  2900 1176  852 S  0.7  0.1   0:00.25 exim

Die Frage ist nun, wo all die CPU-Zeit für draufgeht.

Es hat sich gezeigt, dass das Stoppen und neu Starten des Netatalk-Dienstes, bei Löschen der DBD/CDB-Datenbankdateien, die Server-Last verschwinden läßt. Netatalk läuft momentan mit DBD, ich stelle gerade wieder zurück auf CDB was schneller sein soll.

Wie finde ich nun heraus, welcher Prozess konkret Schuld ist am langsamen Server? Wie optimiere ich - beispielsweise Netatalk, so dass hier 20 User gleichzeitig möglichst ohne Geschwindigkeitsprobleme zugreifen können?

Danke im Voraus für Eure Ideen...

Grüße!
Michael Radke
 
Es scheint mehr der Ram Probleme zu machen. Sortiere mal nach Memoryverbrauch ( 1.033.224k total, 940.584k used )

1GiB ist für einen großen Server nicht gerade viel.
 
Hallo Anime,

das ist grundsätzlich einmal eine gute Idee.

ABER - verhält es sich unter Linux nicht grundsätzlich so, dass sich das System (der Kernel?) sämtlichen Speicher mopst um ihn zu verwalten, beispielsweise Cache + Buffer? Wenn ich mehr Speicher rein täte, würde auch gleich wieder alles als verschwinden...

Code:
server:~ # free -m
             total       used       free     shared    buffers     cached
Mem:          1009        994         14          0        158        410
-/+ buffers/cache:        424        584
Swap:         2048         50       1997

Wo bekommt man eine bessere Aussage über die Speichernutzung?

Danke!!
und
Gruß!
Michael Radke
 
Hi,

MichaelRadke hat gesagt.:
ABER - verhält es sich unter Linux nicht grundsätzlich so, dass sich das System (der Kernel?) sämtlichen Speicher mopst um ihn zu verwalten, beispielsweise Cache + Buffer?

also das Betriebssystem verwaltet den Speicher was jedoch nicht bedeutet das es ihn auch benutzt. Es sorgt nur das jedes Programm genügend Speicher bekommt. Theoretisch kann unter Linux jedes Programm 3 GB Arbeitsspeicher bekommen. Aber bei dir schauts eher so aus als das die Masse an Programmen den Speicher belegt und nicht ein einzelnes :)

MichaelRadke hat gesagt.:
Wenn ich mehr Speicher rein täte, würde auch gleich wieder alles als verschwinden...

Wenn der dann auch noch genutz wird zeigt das doch nur das es bitter nötig ist ;)

Gruß 4men
 
Ich habe mal die KDE-Systemüberwachung mitlaufen lassen. Es liegt nahe, dass Eure Vermutung richtig ist.

Von den Anwendern wurde mir berichtet, dass der Server immer halbstündlich um 10:05, 10:35, 11:05 usw, "lahmt". Dies konnten wir nachvollziehen, der Server lahmte dann für ca. 2-3 Minuten.

Während dieser Zeit sprang in der KDE-Systemüberwachung die Nutzung des "PhysicalMemory->Pufferspeicher" sowie auch die "CPU-Load->Systemlast" merkbar an und die LoadAverage ging hoch bis auf 2.50.

Da dies ganz offensichtlich halbstündlich und regelmäßig erfolgt, frage ich mich *was* da vom System her passiert und ob am System nicht auch noch etwas "getuned" werden kann.

Die Anwender (Atalk-User) greifen auf Ihre Mac-Daten zu, dies ist ein 1TB großes RAID5-Diskarray (Software-Raid) mit 4 S-ATA Platten a 500GB (1 Spare-Disk).

Ganz nebenbei - ich baue gerade an der Datensicherung. Ein "Estimate" (Abschätzung, wie viele Daten gesichert werden) führte ebenfalls dazu, dass "PhysicalMemory->Pufferspeicher" sowie auch die "CPU-Load->Systemlast" anstiegen, die LoadAverage hingegen stieg kaum an.

Könnte es sich auch um einen S-ATA-Treiberproblem handeln?
Oder um ein Problem mit dem SoftwareRaid-Treibern?

Die Idee, mehr Speicher einzubauen, ist auf jeden Fall eine Maßnahme und ich werde nächste Woche mal berichten, wenn ich den Speicher eingebaut habe...

Grüße!
Michael Radke
 
Hi

Also wenn es wirklich in einem halbstündlichen Turnus auftritt, schau dir mal die Datei crontab in /etc an. Damit werden nämlich verschiedene Scripte gestartet und das zu bestimmten Zeiten. So ist es auch möglich dort ein Script alle halbe Stunde auszuführen und zwar vollautomatisch. Möglich wäre es das ein Script für z.B. ein Backup dort eingetragen ist welches diese Spitzen verursacht. Syntax und Konfiguration dafür ist mit Google einfach zu finden.

Gruß 4men
 
Hallo 4men,

die Crontab ist mir bekannt ;-) Hier wird tagsüber nichts ausgeführt, auch die Suse-eigenen "Hourly"-Scripte habe ich abgeschaltet. Sämtliche Wartungsscripte werden in den Nachtstunden ausgeführt.

Einzig das Update-Script der Antivirus-Software (uvscan) wird zu jeder vollen Stunde ausgeführt, es prüft auf eine neue Signaturdatei, lädt diese runter und integriert sie ins System. Die Antivirus-Software dient lediglich exim+exiscan zur Email-Prüfung.

Das AV-Updatescript läuft um **:00, die Serverlast steigt aber regelmäßig um **:05 und **:35 an.

Rätselnd.......,
Michael
 
Zurück