eintyp
Goto Top

CPU-Auslastung ist zu niedrig

Hallo Community,

ich habe einen Linux Server auf welchem diverse Dienste laufen. Unter anderem auch eine Java-Anwendung, mit einer durchschnittlichen CPU-Auslastung von 140%.

Das Problem ist nun, dass die CPU-Auslastung der Java-Anwendung jeden Abend ca. 15 min. lange bei ~8% liegt.
Ich wollte fragen woran das liegen könnte.

9fdc6b5faf4864ca5600edc4659936af
e7af634c0c35a72763a8685053a10e77


Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
64 GB RAM
Debian 6.0.6 amd64


Ich hoffe ihr könnt mir dabei helfen.

Grüße,
EinTyp

Content-Key: 192705

Url: https://administrator.de/contentid/192705

Printed on: April 23, 2024 at 22:04 o'clock

Member: MrNetman
MrNetman Oct 12, 2012 at 19:00:49 (UTC)
Goto Top
Hi Typ,
Also wenn 140% normal sind - dann gibt es schon mal ein mathematisches Problem oder meinst du mehrere Kerne?
Und warum sind dan 8% ein Problem?
Vielleicht wird die Java-Engine neu gestartet.

Warum läuft amd64 statt i386 oder ia64 auf dem Intel System

Gruß
Netman
Member: EinTyp
EinTyp Oct 12, 2012 updated at 19:36:19 (UTC)
Goto Top
Ja, der Server hat mehrere Kerne (steht in den Infos).
Und nach einem Neustart verändert sich die CPU-Auslastung der Java-Anwendung nicht.
Member: LordGurke
LordGurke Oct 12, 2012 updated at 20:52:35 (UTC)
Goto Top
Zum eigentlichen Problem:
Java hat einen Garbage-Collector der in regelmäßigen Abständen den Arbeitsspeicher des Programms (Heap) optimiert und bereinigt. Da die Software offenbar alleine 7-8 GB RAM für sich reserviert hat dürfte der Java-Heap ca. 2-3 GB belegen. Den zu optimieren kann durchaus rechenintensiv sein...

Wenn die Software "idlet" - ist sie dann noch benutzbar oder hängt sie?
Ich will damit sagen: Wenn die Software nichts tun muss (z.B. keine Anfragen kommen), dann tut sie natürlich auch nichts auf dem Prozessor - warum auch?

Wird während der Idle-Zeit vielleicht der Datenbankserver gesichert und dieser sperrt alle Tabellen bzw. blockiert alle Verbindungen zum Zwecke der Konsistenten Backups?
Zumindest MySQL verhält sich bei Table-Locks so, dass die Anfragen zwar angenommen werden aber dann bis zur Entsperrung der Tabellen einfach festhängen - ebenso die Software die die Anfrage gestellt hat.


Zitat von @MrNetman:
Hi Typ,
Also wenn 140% normal sind - dann gibt es schon mal ein mathematisches Problem oder meinst du mehrere Kerne?

Linux zählt 100% = 1 Kern vollständig ausgelastet. 200% = 2 Kerne vollständig ausgelastet. Also alles in Ordnung face-wink

Zitat von @MrNetman:
Warum läuft amd64 statt i386 oder ia64 auf dem Intel System
Weil IA64 die Architektur der Intel Itanium-Prozessoren (http://de.wikipedia.org/wiki/Itanium) und nicht kompatibel zu normalen Intel-Prozessoren wie Intel Core oder Xeon ist.
i386 ist der generische Begriff für die klassische x86-Architektur OHNE 64 Bit-Unterstützung - bei 64 GB RAM vielleicht etwas gewagt...
AMD64 hat sich zumindest in der Linux-Welt als Sammelarchitektur für alle Prozessoren durchgesetzt die auf klassischer x86-Architektur basieren, aber 64Bit-Erweiterungen haben (http://de.wikipedia.org/wiki/AMD64).

Er KANN sinnvolerweise keine andere als die AMD64-Version installieren face-wink
Member: EinTyp
EinTyp Oct 12, 2012 at 21:49:40 (UTC)
Goto Top
Zitat von @LordGurke:
Wenn die Software "idlet" - ist sie dann noch benutzbar oder hängt sie?
Ich will damit sagen: Wenn die Software nichts tun muss (z.B. keine Anfragen kommen), dann tut sie natürlich auch nichts auf
dem Prozessor - warum auch?

Sie ist noch benutzbar, aber es hängt natürlich.

Wird während der Idle-Zeit vielleicht der Datenbankserver gesichert und dieser sperrt alle Tabellen bzw. blockiert alle
Verbindungen zum Zwecke der Konsistenten Backups?
Zumindest MySQL verhält sich bei Table-Locks so, dass die Anfragen zwar angenommen werden aber dann bis zur Entsperrung der
Tabellen einfach festhängen - ebenso die Software die die Anfrage gestellt hat.

Ein Datenbank-Backup wird nur früh morgens gemacht.