Welche Java-Dienstprogramme gibt es zum Benchmarking der CPU-, Speicher-, Festplatten- und Netzwerk-E / A-Leistung einer Maschine?

8

Ich muss erklären, warum meine Anwendung an einem entfernten Standort schlecht funktioniert. Es wird für mich unbequem sein, einen Profiler zu installieren. Ich vermute, dass die Maschine schlecht konfiguriert ist, aber ich brauche eine einfache Methode, um zu zeigen, dass eine Standard-App auf ihrem Rechner leidet, wodurch ich meine Anwendung entbinde und den Fokus auf ihre Systemadministratoren verlagerte.

Idealerweise würde ich vorschlagen, dass sie eine einfache Java-App installieren, die die Leistung der Host-Umgebung testet. Wenn es einige Spezifikationen für CPU, Festplatte, Netzwerk usw. zurückgeben könnte, wären sie perfekt.

Ich habe erwartet, so etwas im Internet zu finden, aber ich war bisher bei meiner Suche nicht erfolgreich.

    
Paul Jackson 13.09.2012, 12:27
quelle

1 Antwort

12

Soweit eine "einfache Java-App", habe ich vorher etwas Ähnliches gemacht. Meine Bemühungen konzentrierten sich auf das Profiling einer Java-VM (virtuelle Maschine - die "JVM"), wobei nicht die Leistung einer bestimmten Java-Anwendung getestet wurde. Der Fokus lag auf dem Testen der Fähigkeiten des Hosting-Betriebssystems - Training:

  • CPU
  • Speicher
  • Betriebssystem
  • Wenn virtualisiert, die Server-VM (nicht JVM) selbst - einschließlich der virtualisierten und physischen Komponenten aller oben genannten.
  • Weitgehende Ignorierung externer Faktoren, z.B. Festplatte und Netzwerk.

Zu den Lösungen, die ich mir angeschaut habe, gehören:

  

SciMark ist ein zusammengesetzter Java-Benchmark, der die Leistung numerischer Codes in wissenschaftlichen und technischen Anwendungen misst.   Es besteht aus fünf Rechenkernen: FFT, Gauß-Seidel   Relaxation, Sparse-Matrix-Multiplikation, Monte-Carlo-Integration und dicht   LU-Faktorisierung.

     

Diese Kernel werden ausgewählt, um einen Hinweis darauf zu geben, wie gut die zugrundeliegenden JVM / JITs bei Anwendungen, die diese Typen verwenden, funktionieren   Algorithmen. Die Problemgrößen werden absichtlich klein gewählt   Um die Auswirkungen der Speicherhierarchie zu isolieren und auf interne konzentrieren   JVM / JIT- und CPU-Probleme. Eine größere Version des Benchmarks (SciMark 2.0   LARGE) adressiert die Leistung des Speichersubsystems mit Cache-Out-of-Cache   Problemgrößen.

     

Er misst mehrere Rechenkerne und meldet eine zusammengesetzte Punktzahl in ungefährer Mflops (Millionen von Fließkommaoperationen pro   2.).

SciMark ist zwar etwas veraltet (2004), scheint aber immer noch recht effektiv zu sein.

Jeder Testlauf dauert etwa 30 Sekunden.

  

SPECjvm2008 (Java Virtual Machine Benchmark) ist eine Benchmark-Suite für   die Leistung einer Java Runtime Environment (JRE) messen,   enthält mehrere reale Anwendungen und Benchmarks mit Schwerpunkt auf   Core-Java-Funktionalität. Die Suite konzentriert sich auf die Leistung der   JRE, das eine einzelne Anwendung ausführt; es spiegelt die Leistung der   Hardware-Prozessor und Speicher-Subsystem, hat aber geringe Abhängigkeit von   Datei-E / A und schließt keine Netzwerk-E / A über Maschinen hinweg ein. Der SPECjvm2008   Workload ahmt eine Vielzahl allgemeiner allgemeiner Anwendungen nach   Berechnungen. Diese Merkmale spiegeln die Absicht wider, dass dies der Fall ist   Benchmark wird für die Messung der grundlegenden Java - Performance auf einem   große Vielfalt von Client- und Serversystemen.

     

SPEC findet auch die Benutzerfreundlichkeit von Java wichtig und die Suite   umfasst daher Startup-Benchmarks und verfügt über eine erforderliche Run-Kategorie   aufgerufene Basis, die ohne Abstimmung der JVM ausgeführt werden muss   verbessern Sie die Out-of-the-Box-Leistung.

     

SPECjvm2008 Benchmark-Highlights

     
  • Nutze reale Anwendungen (wie Derby, Sunflow und Java) und   gebietsbezogene Benchmarks (wie XML, Serialisierung, Krypto und   Scimark).
  •   
  • Misst auch die Leistung des Betriebssystems und   Hardware im Kontext der Ausführung der JRE.
  •   

Im Gegensatz zu SciMark dauert SPECjvm2008 viel länger, um die Suite vollständig auszuführen - dauert etwas mehr als 2 Stunden .

Um das Netzwerk zu testen, verwende ich etwas wie iperf , das sowohl für Linux / Windows / etc.

verfügbar ist

Zum Testen der Festplattenleistung gibt es eine ganze Wissenschaft dahinter, und ohne zu wissen, welches Betriebssystem Sie verwenden, kann ich Ihnen keine spezifische Antwort geben. Wenn Sie jedoch beispielsweise Linux verwenden, würde ich dies überprüfen.

    
ziesemer 13.09.2012, 12:37
quelle