के खिलाफ बनाया गया जब बहुत अधिक लोड होता है मेरे पास जावा में एक्लिप्स लुना में विकसित जावा एप्लिकेशन है जो अमेज़ॅन ईसी 2 (सी 3.लार्ज, अमेज़ॅन लिनक्स) में चलता है। यह एप्लिकेशन एक बहुत ही लगातार आने वाली दर पर काम करता है। जब मैं जेडीके 8u31 के खिलाफ आवेदन करता हूं, तो ईसी 2 सीपीयू लोड जेडीके 7u75 के खिलाफ बनाए गए उसी एप्लिकेशन से काफी अधिक है।जावा एप्लिकेशन सीपीयू/जेडीके 8
एप्लिकेशन मूल रूप से ईसी 2 पर डिफ़ॉल्ट जेआरई के साथ भाग गया, और मैंने जावा 8 प्रोसेस प्रतीक्षाफोर (लंबी टाइमआउट, टाइमयूनीट यूनिट) का लाभ उठाने के लिए ओपनजेडीके 1.8.0.31 जोड़ा। इस एप्लिकेशन में मुख्य कार्य में Runtime.exec का उपयोग करके एक एप्लिकेशन का आह्वान करना शामिल है।
$ sudo alternatives --config java
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
* 1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
+ 2 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-2.b13.5.amzn1.x86_64/jre/bin/java
उदाहरण लोड औसत जब आवेदन 1.7 के खिलाफ बनाया गया है:
top - 00:20:28 up 4 days, 10:41, 4 users, load average: 0.37, 0.26, 0.52
उदाहरण लोड औसत जब आवेदन 1.8 के खिलाफ बनाया गया है:
top - 23:45:52 up 4 days, 10:06, 4 users, load average: 2.28, 2.60, 2.01
ऐसा लगता है जैसे कि यह संबंधित हो सकता है ओपन जेडीके 1.8.0.31 तक, लेकिन मुझे नहीं पता कि इसे कैसे डिबग करना है। कोई कोड परिवर्तन नहीं है, मैं केवल अनुपालन स्तर बदल रहा हूं और ग्रहण लुना में 1.7 और 1.8 के बीच बना हूं। कोई विचार क्यों लोड इतना अलग होगा?
अद्यतन:
मैं इसी तरह की उच्च CPU लोड देखने के लिए जब मैं EC2 पर ओरेकल JDK का उपयोग करें।
$ sudo alternatives --config java
There are 3 programs which provide 'java'.
Selection Command
-----------------------------------------------
1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
2 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-2.b13.5.amzn1.x86_64/jre/bin/java
*+ 3 /usr/java/jdk1.8.0_31/bin/java
लोड औसत:
top - 01:45:27 up 4 days, 12:06, 4 users, load average: 2.28, 1.50, 1.04
क्या आप इसे अपनी मशीन पर पुन: पेश कर सकते हैं? – fge
मैंने इसे कई ईसी 2 उदाहरणों (ओपनजेडीके दोनों) पर देखा है। मैं अपनी स्थानीय मशीन पर वर्कलोड उत्पन्न नहीं कर सकता, लेकिन मैं काम को अनुकरण करने के तरीकों को देखूंगा। – DanielB6
कंपाइलर बनाम के प्रभावों का भेदभाव करने के लिए।jre: अगर आप अनुपालन 1.7 पर संकलित करते हैं और 1.8 जून पर चलते हैं तो क्या होता है? –