आवंटित कर रहा है मुझे कुछ जावा प्रोग्राम चलाने के लिए एक नया वीपीएस मिला है जो मुझे और कुछ दोस्तों ने बनाया है। मैं इस तरह एक लाइन के साथ प्रक्रिया शुरू:जावा अतिरिक्त 2 जीबी मेमोरी
java -Xmx512M -jar program.jar
हमारे पुराने VPS पर, आप कितना आभासी और निवासी स्मृति का उपयोग किया जा रहा था देखने के लिए 'शीर्ष' आदेश का उपयोग कर सकते हैं। यह 600-700 एमबी वर्चुअल मेमोरी की तरह उपयोग करेगा। अब हमारे नए वीपीएस पर, उसी आदेश के साथ, वर्चुअल मेमोरी हमेशा -Xmx मान पर अतिरिक्त ~ 2 जीबी लगती है। तो वर्चुअल मेमोरी के बजाय 600-700 एमबी के बजाय, यह 2700-3000 एमबी है।
पुराना वीपीएस सेंटोस 5.7 चला रहा है और नया CentOS 6.2 चल रहा है। दोनों जेआरई 1.7u3 64 बिट चल रहे हैं।
यह क्यों है और मैं इसे कैसे ठीक कर सकता हूं?
संपादित करें: शीर्ष
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27645 pyro 20 0 3003m 270m 10m S 5.0 1.7 1:19.18 java -Xmx512M -jar cserver.jar
एक और संपादित करें: मैं पूछताछ नहीं कर रहा हूँ क्यों आभासी स्मृति जावा कमांड लाइन में निर्दिष्ट की तुलना में अधिक स्मृति का उपयोग कर रहा है। मैं सवाल कर रहा हूं कि इसका उपयोग करने से कहीं ज्यादा क्यों उपयोग किया जा रहा है।
जांचें कि आपकी जावा प्रक्रिया निश्चित रूप से 'ps -ef' का उपयोग कर Xmx512m पैरामीटर का उपयोग कर रही है, और फिर यदि यह वास्तव में है, तो शीर्ष के आउटपुट के साथ अपना प्रश्न अपडेट करें। – Rich
यदि निवासी आकार 270 एमबी है और कोई पेजिंग समस्या नहीं है, तो क्या कोई समस्या है? –
यदि पुराने वीपीएस के बाद प्रोग्राम ने कोई भी बदलाव नहीं किया है, और पुराने वीपीएस के साथ, वर्चुअल मेमोरी केवल ~ 600-700 एमबी का उपयोग करेगी, तो हाँ कुछ सही नहीं लगता है। पुराने और नए वीपीएस दोनों एक ही ओएस और एक ही जावा संस्करण चलाते हैं। –