Wie stellen Sie WebLogic verwenden alle Prozessoren auf einem multi-Prozessor-Maschine
Bemerkten wir ein eigenartiges Verhalten mit Java - /Web Logic auf einem unserer multi-Prozessor-Server, gestern, wollte so bringen Sie Ihre Gedanken auf ihn.
Aus irgendeinem Grund, Web-Logic/Java nur ein Prozessor zwei Prozessoren. Wenn wir liefen einige schwere Belastung, konnte ich die CPU auf ein erreichen fast 100% und der andere Prozessor ist vollständig im Leerlauf. Spielt es eine Rolle, wenn dieser ist eine virtuelle Maschine (..aber dies ist nicht eine virtuelle Maschine)
Interessante Sache ist, dass andere OS-Aktivitäten zeigen die Aktivität des Prozessors auf beide.
Grüße,
_UB
- Was meinst du mit der schweren Last? Hatten Sie den server mit gleichzeitigen Anfragen?
- ja... ausführen von Lasttests zur Simulation der schweren Last.
- Hast du dieses Verhalten nur auf einem der Server und nicht die anderen?
- Kann nicht sagen, weil ich nur Zugang zu einem dieser Rechner, wo ich das bemerkt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In gängigen Szenarien, WebLogic (und damit Java) sollte in der Lage sein, auf alle verfügbaren Prozessoren in dem server wo es läuft. WebLogic verfügt über einen pool der request-Verarbeitung-threads, und wenn die Anfragen ankommen, gleichzeitig sind Sie gleichzeitig behandelt. Wenn der server hat mehrere Prozessoren, diese sollten dann durch Java-threads.
Wenn das Java-web-Anwendung in WebLogic ist mit SingleThreadModel in seinem servlet(s), keine zwei threads ausführen kann, wird vom servlet-gleichzeitig und damit Sie sehen konnte, nur eine CPU am Werk. Dieses Modell ist nicht zu empfehlen und ich denke, nicht viel verwendet, trotzdem.
Ich habe gehört, einige Leute beschweren sich, dass Sie nicht bekommen kann Ihre Java-app-Server mit mehr als 1 CPU beim ausführen einer virtuellen Maschine OS, wie VMWare, auch wenn Sie sich verschrieben haben, mehr als eine CPU für die VM. Ich habe keine Ahnung, was war der Grund für dieses seltsame Verhalten dann.
Vielleicht solltest du versuchen Sie zu treffen, einige sehr einfache JSP-Seite mit dem gleichzeitigen Anfragen und sehen, ob mehr als 1 CPU verwendet wird. Wenn dies funktioniert, liegt das problem in Ihrer Anwendung.
Den WebLogic-docs beraten auf wie konfiguriert für multi-Prozessor-Maschinen. Sie würde am Ende mit einer Cluster-Umgebung.
Führen Sie das Java-Programm um zu testen, ob Java nutzt alle verfügbaren CPUs (8 in meinem Fall):