Veröffentlicht 4. Mai 200718 j Hallo zusammen, ich benötige Anregungen für folgendes Szenario: ich habe eine AIX 5.3 ML 4 mit einer LPAR, die 1 CPU und 3,5 GB hat. Dort starte ich einen JAVA-Prozess. Dieser Prozess schreibt ein Log-File in das gleiche Verzeichnis, wo sich mein Skript zum Starten befindet. Wenn ich tail -f auf das Logfile mache, sehe ich 10 Minuten lang, dass kein Output in das Log geschrieben wird. Danach wird innerhalb von 2 Sekunden der erwartete Ouput beim Starten dieses Prozesses geschrieben. Während der 10 Minuten Wartezeit kann ich den Prozess auch nicht ansprechen und ich bekomme mit netstat -an|grep <port> auch keinen Eintrag mit Status LISTEN zurück. Die Frage, die sich mir dabei stellt, ist folgende: Was kann betriebssystemseitig dazu führen, dass ich eine so große Verzögerung habe. Ich muss dem Kunden diesbezüglich die richtigen Fragen zur Konfiguration seines Servers stellen, damit das Problem eingegrenzt werden kann. Mein erster Anhaltspunkt wäre die Auslastung, was meiner Meinung nach aber nicht sein kann, da ein anderer Prozess auf der selben LPAR große Datenmengen in akzeptabler Zeit verarbeitet. Könnt Ihr mir bitte mit weiteren Ideen helfen? Danke und Gruß, Muadibb
6. Mai 200718 j Hmmm... ok, einfach mal so ins Blaue hinein: was sagt denn die tatsächliche Auslastung der Maschine während du den Prozess startest? (---> vmstat / iostat / topas / nmon64) Bekommt Dein JavaProzess beim starten Parameter bezüglich der HeapSize mit? Was macht der Prozess eigentlich genau? Treten evtl. irgendwelche Timeouts auf, weil z.B. bestimmte Namen nicht aufgelöst werden können oder bestimmte Netzwerkverbindungen nicht aufgebaut werden können? Bye SystemError
7. Mai 200718 j Hi, danke erstmal für Deine Antwort. Ja, es werden Java Optionen mitgegeben, u.a. auch "-Xms512m -Xmx512m". Da habe ich auch nochmal nachgefragt, wieviel Speicher belegt ist. Der Prozess ist in erster Linie dafür verantwortlich, Anfragen von weiteren Prozessen zu verwalten und weiterzuleiten. Da ich kein AIX Admin bin, habe ich noch eine Frage. Kann ich verschiedenen LPARs unterschiedliche Prioritäten für die Ausführung von Prozessen mitgeben, also keine Regelung auf Prozessebene (nice) sondern für eine ganze LPAR? Leider war Google und Co bei meinen Suchen nicht sehr ergiebig. Gruß, Muadibb
7. Mai 200718 j Ist das ein Prozess der ständig läuft? Welche Java-Version wird genau verwendet? Es gibt weitaus mehr Startparameter, die man dem Java-Prozess mitgeben kann, evlt. könnte man in diese Richtung nochmal suchen (Stichwort Garbage Collection)?
7. Mai 200718 j Ja, der Prozess läuft ständig, bis er manuell beendet wird. Es wird eine private JRE 1.4.2 benutzt. Also, du meinst er braucht deshalb lange, weil es auf diesem System lange dauert eine JVM zu initialisieren? Warum könnte es mit derselben AIX und private JRE Version auf diesem Server länger dauern als auf einem anderen? Die Optionen sind immer gleich eingestellt.
9. Mai 200718 j Warum könnte es mit derselben AIX und private JRE Version auf diesem Server länger dauern als auf einem anderen? Die Optionen sind immer gleich eingestellt. Das ist ein interessante Info, die die Situation allerdings nicht besser (nicht ganz nachvollziehbar) macht
9. Mai 200718 j also keine Regelung auf Prozessebene (nice) sondern für eine ganze LPAR? Nein, die sind völlig unabhängig. Wenn kann man einem LPAR mer pri als ganzes geben. So ein paar Gedanken von mir: - Wie lange brauchen andere Progs zum starten? < schließt Performance an sich aus (aber bitte kein grep oder so nehmen *G*) - Wie lange dauert ein "java -version"? < schließt Probleme mit Java an sich aus - Wie lange dauert es aus einem Javaprogramm einen Ping zu machen (google sollte da recht schnell einen Beispielcode ausspucken)? < schließt Probleme mit TCP/IP aus - Wie lange dauert es einen listen auf einem Port zu öffnen? < schließt Probleme mit den Ports aus - ... < schließ einfach nach und nach mal die Sachen aus die schief gehen könnten.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.