জেবাসের জন্য হিপ ডাম্পের জন্য হিপডাম্পঅনআউটআউটমোমরিরিরর পরামিতি ব্যবহার করা


182

আমাকে জানানো হয়েছিল যে আমি -XX:+HeapDumpOnOutOfMemoryErrorযখন আমাদের অ্যাপ্লিকেশনটিতে মেমরির ত্রুটি থেকে বেরিয়ে আসি তখন আমি একটি হিপ ডাম্প পেতে আমার জেবিএস স্টার্ট আপ স্ক্রিপ্টে আমার জেভিএম স্টার্ট আপ বিকল্পগুলিতে প্যারামিটার যুক্ত করতে পারি। আমি ভাবছিলাম এই ডেটা কোথায় ফেলেছে? এটি কি কেবল কনসোল, বা কোনও লগ ফাইলের জন্য? যদি এটি কেবল কনসোলের কাছে থাকে তবে আমি যদি কনসোলের মাধ্যমে ইউনিক্স সার্ভারে লগিন না করি তবে কী হবে?


1
এটি বর্তমান ফোল্ডার, আমার ধারণা।
ভ্যালেনটিন তিহোমিরভ

উত্তর:


246

এখানে ওরাকল এর ডকুমেন্টেশন বলতে যা বলে:

ডিফল্টরূপে হিপ ডাম্প ভিএম এর ওয়ার্কিং ডিরেক্টরিতে java_ pid .hprof নামে একটি ফাইল তৈরি করা হয়েছে, যেমন উপরের উদাহরণ হিসাবে। বিকল্পের সাথে বিকল্প ফাইলের নাম বা ডিরেক্টরি উল্লেখ করতে পারেন -XX:HeapDumpPath=। উদাহরণস্বরূপ -XX:HeapDumpPath=/disk2/dumps হিপ ডাম্প /disk2/dumps ডিরেক্টরিতে উত্পন্ন হতে পারে ।


16
এটি সমস্ত ভিএম কর্মক্ষমতা সম্পর্কিত বিকল্পগুলিও তালিকাভুক্ত করে: java.sun.com/javase/technologies/hotspot/…
রবি গুপ্ত

4
গুরুত্বপূর্ণ! হিপডাম্প পতাকাগুলি কেবল জাভা 1.5.0.07 থেকে পাওয়া যায়।
rustyx

14
এছাড়াও এটি সনাক্ত করা জরুরী যে JVM কোনও বিদ্যমান হ্যাপ ডাম্পের ওভাররাইট করবে না HeapDumpPath, আপনি "Unable to create /tmp/java_pidpid.hprof: File exists"নিজের স্ট্যান্ডার্ডের মতো কিছু দেখতে পাবেন । ভবিষ্যতের যে কোনও ডাম্প ফাইলের পথ সাফ করার জন্য আপনার ডাম্প ফাইলটিকে ডাম্প পথের বাইরে সরিয়ে নিতে ভুলবেন না; এবং <pid>ফাইলের নামের সাথে এন্ট্রপি বাড়ানোর জন্য ফাইলধারায় স্থানধারকটি ব্যবহার করুন।
বেন

1
এটি অত্যন্ত দরকারী ছিল। এক্লিপস মেমোরি অ্যানালাইজারের সাথে ফুটোটি পেতে কেবল কয়েক মিনিট সময় লেগেছে।
অ্যারন লরিনক্জ

সিস্টেমে বিদ্যমান নেই এমন ফোল্ডারের পথ যদি আমরা দেব তবে কী হবে? এটি ফোল্ডারটি তৈরি করবে এবং সেই ফোল্ডারের মধ্যে হ্যাম্প ডাম্পটিকে চাপ দেবে?
Vinit89

47

আপনি ইউনিক্স কনসোল থেকে এই ডাম্পটি দেখতে পারেন।

আপনি উল্লিখিত ভেরিয়েবলটি রাখার পরে হিপ ডাম্পের পথটি একটি চলক হিসাবে সরবরাহ করা হবে।

উদাহরণ:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${DOMAIN_HOME}/logs/mps"

আপনি উল্লিখিত পথে কনসোল থেকে ডাম্পটি দেখতে পারেন।


4

"ভিএম এর কার্যনির্বাহী ডিরেক্টরি" বলতে কী বোঝায় তা বোঝা আমার পক্ষে কঠিন মনে হয়েছে। আমার উদাহরণস্বরূপ, আমি একটি জার চালানোর জন্য জাভা সার্ভিস র‍্যাপার প্রোগ্রামটি ব্যবহার করছিলাম - ডাম্প ফাইলগুলি সেই ডিরেক্টরিতে তৈরি করা হয়েছিল যেখানে আমি মোড়কের প্রোগ্রামটি রেখেছিলাম, যেমন সি: \ মাইয়াপ \ বিন। আমি এটি আবিষ্কার করার কারণ হ'ল ফাইলগুলি বেশ বড় হতে পারে এবং আমি তাদের অবস্থান আবিষ্কার করার আগে তারা হার্ড ড্রাইভ পূরণ করে।


আপনার ওয়ার্কিং ডিরেক্টরি pwdx <PID> কমান্ডের মাধ্যমে পাওয়া যাবে। প্রথমে পিএস-শেফ করুন | গ্রেপ জাভা, আপনার জাভা অ্যাপ্লিকেশনের জন্য আপনার পিআইডি সন্ধান করুন, তারপরে পিডব্লিউডেক্স <পিআইডি> চালান। এটি আপনাকে কার্যকরী ডিরেক্টরিটি বলবে।
আরসিজি

2

আপনি যদি "-XX: HeapDumpPath" বিকল্পটি ব্যবহার না করে থাকেন তবে JBoss EAP এর ক্ষেত্রে / ডিফল্ট হিসাবে হিপ ডাম্প ফাইলটি "JBOSS_HOME / bin" ডিরেক্টরিতে উত্পন্ন হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.