में अधिकतम सुरक्षित JVM ढेर आकार का आकलन करने के लिए 64-बिट जावा ऐप को प्रोफाइल करने के दौरान कुछ समस्याएं हैं, मुझे पता है कि प्रोफाइलर स्वयं (YourKit) वास्तव में स्मृति की विशाल मात्रा का उपयोग कर रहा है। क्या मैं YourKit लांच लिपि में मिल गया है है:64-बिट जावा
JAVA_HEAP_LIMIT="-Xmx3072m -XX:PermSize=256m -XX:MaxPermSize=768m"
भोलेपन से, कुछ भूमि के ऊपर यह सोचते हैं, यह मेरे नेतृत्व का अनुमान लगाना कि YourKit शायद चार जीबी से अधिक एक सा कुछ की एक अधिकतम उपयोग करने के लिए जा रहा है होगा। हालांकि, क्या मैं वास्तव में पी एस में देखते हैं:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
dmoles 31379 4.4 68.2 14440032 8321396 ? Sl 11:47 10:42 java -Xmx3072m -XX:PermSize=256m -XX:MaxPermSize=768m -XX:+HeapDumpOnOutOfMemoryError -Dyjp.probe.table.length.limit=20000 -Xbootclasspath/a:/home/dmoles/Applications/yjp-9.5.6/bin/../lib/tools.jar -jar /home/dmoles/Applications/yjp-9.5.6/bin/../lib/yjp.jar
लगभग 14 जीबी की एक आभासी आकार और लगभग 8 जीबी का निवासी आकार है कि - लगभग जावा ढेर 3 गुना।
अब, मुझे यह चलाने के लिए मेरे देव बॉक्स पर पर्याप्त स्मृति मिल गई है, लेकिन मूल स्मृति समस्या पर वापस जा रहा हूं, मैं निदान करने की कोशिश कर रहा हूं: मुझे कैसे पता चलेगा कि जावा ढेर के साथ मुझे कितना खेलना है?
स्पष्ट रूप से, यदि ग्राहक कहता है, 16 जीबी भौतिक रैम, तो मुझे -Xmx
से 16 जीबी सेट करने के लिए कहने का एक अच्छा विचार नहीं है।
तो एक उचित संख्या है? 12 जीबी? 8 जीबी?
और मैं इसका अनुमान कैसे लगा सकता हूं?
+1 कह रही है कि यह एक अच्छा विचार अनुमान लगाने के लिए कितना ढेर आवेदन की जरूरत है और वहाँ से जाना है के लिए। "मैं इसका अनुमान कैसे लगा सकता हूं" प्रश्न मुझे एरिक लिपर्ट की पोस्ट [थ्रेड खुशी की त्रासदी] के बारे में याद दिलाता है (http://blogs.msdn.com/b/ericlippert/archive/2004/02/15/the-tragedy- की-धागे की खुशी-disease.aspx)। –
@AdamMihalcin Ouch। :) –
@AdamMihalcin यह अच्छी सलाह है, लेकिन सिक्का के दो पक्ष हैं।प्रमुख (अनुमान लगाते हुए कि एप्लिकेशन की कितनी जरूरत है), "यहां हम कितने उपयोगकर्ता उम्मीद करते हैं; हमें कितना सर्वर खरीदना चाहिए?" पूंछ है, "यहां हमारे पास कितना सर्वर है; स्मृति से बाहर होने से पहले हमें कितने उपयोगकर्ताओं को संभालने में सक्षम होने की उम्मीद करनी चाहिए?" –