কীভাবে জাভা হিপ ডাম্পগুলি নির্ভরযোগ্যভাবে গ্রহণ করবেন?


9

আমার দলটি আউটআফমিউরিওরিয়াস দ্বারা ট্রিগার করা ভাল হিপ ডাম্প নেওয়ার চেষ্টা করার সময় সমস্যার মধ্যে পড়ে। সুনির্দিষ্ট কারণে আমরা বর্তমানে হ্যাপডাম্পঅনআউটআউফ মেমরিরির পতাকা ব্যবহার করার পরিবর্তে ব্যাশ স্ক্রিপ্ট থেকে ডাকা জ্যাম্যাপের সাথে ডাম্পগুলি নিচ্ছি। আমরা একটি around৪-বিট ১.6 জেভিএম ব্যবহার করছি 3 গিগাবাইটের চারপাশে একটি গাদা আকার। আমাদের হিপ ডাম্পগুলি 90% সময় ব্যর্থ হয় (অনুমান)।

ক্লিন হিপ ডাম্প পাওয়ার স্মৃতিচারণ সমস্যা সমাধানের জন্য আমাদের ব্যবহারের প্রতিকূলতাকে আরও উন্নত করতে আমরা কি কিছু করতে পারি? আমি পড়েছি যে জাভা-র জাভা ১.৪-তে বড় সমস্যা ছিল তবে সেই বিষয়গুলি এখন বেশিরভাগই সমাধান করা উচিত।


4
আমি এই প্রশ্নটি "সবচেয়ে অজ্ঞাতসারে জঘন্য-শব্দযুক্ত" জন্য মনোনীত করি।
ফয়েবাস

1
হাহ- আমি ইচ্ছাকৃতভাবে এটিকে জঘন্য-শোনানোর কথা ভেবেছিলাম তবে আমি এখানে নতুন এবং আমি নিশ্চিত নই যে সম্প্রদায় কীভাবে এটি গ্রহণ করবে :)।
karlcyr

উত্তর:


7

আপনার অপারেটিং সিস্টেমটি কোনটি? (আমি মন্তব্য যুক্ত করতে পারি না)।

সোলারিসের জন্য আমরা প্রথমে একটি কোর ডাম্প ( gcore <pid>) চাপিয়ে দেওয়ার পরে আরও ভাল ফলাফল পেতে পারি এবং তারপরে মূল ডাম্প ফাইলে জ্যাম্যাপ সংযুক্ত করছি ( jmap -heap:format=b <path to java bin> <path to core>)

gcoreএকটি চলমান প্রোগ্রামের একটি চিত্র উত্পন্ন করতে একটি * নিক্স ইউটিলিটি। লিঙ্ক দেখুন ।


লিনাক্সে জিডিবি দিয়ে এটি ব্যবহার করে দেখুন এটি দুর্দান্ত কাজ করে।
খ্রিস্টান

কোন জেডিকে "gcore" আছে? খনি, লিনাক্স 1.6.0.20 এর জন্য সান 32 বিট জেডিকে এটি নেই।
জাঙ্গোফান

Gcore স্পষ্টতা সহ সম্পাদিত।
fglez

2

আমাদের কাছে একটি জেএসপি রয়েছে যা ম্যানেজমেন্টফ্যাক্টরি.টেট্রেড এমএক্সবিয়ান () অনুসন্ধান করে এবং একটি প্রতিবেদন তৈরি করে। অ্যাপ্লিকেশনটি ক্র্যাশ হয়ে গেলে দরকারী নাও হতে পারে, তবে আপনি প্রতি মিনিট বা তার পরে যদি পোল করেন তবে কী ঘটছে তার একটি ধারণা পাবেন।

আরও তথ্য এখানে।


2

আপনি বাইরে থেকে জেএমএক্সের মাধ্যমে আপনার অ্যাপ্লিকেশনটি পর্যবেক্ষণ করতে পারেন। যখন আপনি এমন কিছু মেট্রিক জানেন যা আগত আউটআফমিরিটি নির্দেশ করে, আপনি ব্যতিক্রম ছোঁড়ার আগে একটি জ্যাম্যাপ রান চালাতে পারেন।


ধন্যবাদ খৃস্টান- ত্রুটি নিক্ষেপ করার আগে জ্যাম্যাপের কি নির্ভরযোগ্য হওয়ার সম্ভাবনা বেশি?
karlcyr

জিম্যাপে আপনাকে হিপ ডাম্প পেতে এখনও কিছু সময় লাগবে। তবে যতক্ষণ না আপনার জেভিএম / টমক্যাট বেশিরভাগ ক্ষেত্রে দায়বদ্ধ আপনি একটি সম্পূর্ণ হ্যাপডাম্প পাবেন ump
খ্রিস্টান

আমি মনে করি এটির সবচেয়ে পরিষ্কার এবং সহজ সরঞ্জামটি হ'ল "ভিজ্যুয়াল ভিএম"। এটি সুযোগের বাইরে থাকতে পারে তবে ভিজুয়ালভিএমের জন্য একটি কাস্টম প্লাগইন তৈরি করা হয়েছে যা শর্তটি সনাক্ত করে এবং ভিজুয়ালভিএমের মধ্যে থেকে স্বয়ংক্রিয় ডাম্প নেয় দুর্দান্ত আইএমএইচও।
জাঙ্গোফান

2

আপনার পরামর্শের জন্য আপনাকে সকলকে ধন্যবাদ।

আমরা যা করেছিলাম তা হ'ল আবর্জনা সংগ্রহের লগগুলি সক্রিয়ভাবে নিরীক্ষণের জন্য একটি স্ক্রিপ্ট লেখা। আমাদের অভিজ্ঞতায়, ব্যাক-টু-ব্যাক ফুল জিসি প্রায়শই কোনও ওওমের পূর্বে থাকে, সুতরাং আমাদের স্ক্রিপ্টটি এই ইভেন্টটি সনাক্ত করে, করুণার সাথে লোড ব্যালেন্সিং পুল থেকে সার্ভারটি সরিয়ে দেয় এবং হিপ ডাম্পকে জোর করে। এটি আমাদের কার্যকারিতা ব্যাপকভাবে বৃদ্ধি করেছে।


2

এটি মোটামুটি পুরানো প্রশ্ন, তবে আমি এই উত্তর দিয়ে উত্তর দিচ্ছি যে কেউ এটির কাজে লাগবে।

jmap এর একটি -F বিকল্প (বল) রয়েছে। এটি আমার পক্ষে অতীতে ভাল কাজ না করার প্রমাণিত হয়েছে। আপনি যদি -F বিকল্পটি ব্যবহার করতে চান তবে আমি আপনাকে সুপারিশ করব যে আপনি jva.io.tmp ডিরেক্টরিটি jmap কমান্ডের অংশ হিসাবে নির্দিষ্ট করুন। JVM সংস্করণ 1.6.22 নিয়ে একটি সমস্যা ছিল যেখানে অস্থায়ী ডিরেক্টরি সেটিংয়ের কারণে jmap ইউটিলিটি সঠিকভাবে কাজ করে না।

আপনি জিডিবি এর মাধ্যমে একটি কোর ডাম্প নেওয়ার চেষ্টা করতে পারেন। একবার আপনার কাছে কোরটি থাকলে, জ্যাম্যাপটি মূলটিকে হিপ ডাম্পে রূপান্তর করতে পারে।

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