ওম-কিলার দ্বারা নিহত একটি প্রক্রিয়াটির / ডিবাগিংয়ের মূল ডাম্প পান


10

কোর-ডাম্প পাওয়ার কোনও উপায় আছে, বা ওম-কিলার দ্বারা নিহত একটি প্রক্রিয়া ডিবাগ করতে সক্ষম হবে কি?

অথবা পরিবর্তে এবিআরটি ব্যবহার করে কোনও প্রক্রিয়া মারার চেষ্টা করার জন্য ওম-কিলার সেট করেছেন?

উত্তর:


5

আরেকটি পদ্ধতি হ'ল মেমরির অতিরিক্ত সংকেত অক্ষম করা।

আপনার স্মৃতি ম্যানেজমেন্টে কিছুটা উদ্বিগ্নতা ফিরিয়ে আনতে:

  1. ওম কিলারটি অক্ষম করুন ( vm.oom-kill = 0/etc/sysctl.conf- এ রাখুন )
  2. মেমরি overcommit অক্ষম (রাখুন vm.overcommit_memory = 2মধ্যে /etc/sysctl.conf)

এই সেটিংসটি লিনাক্সকে প্রচলিত পদ্ধতিতে আচরণ করতে সক্ষম করবে (যদি কোনও প্রক্রিয়া উপলব্ধের চেয়ে বেশি মেমরির অনুরোধ করে তবে malloc()ব্যর্থ হয়ে যায় এবং মেমরির অনুরোধ করা প্রক্রিয়াটি সেই ব্যর্থতার সাথে লড়াই করতে পারে বলে আশা করা হয়)।

নোট করুন যে এটি একটি ত্রৈমাসিক মান:
  • 0 = "আমাদের কাছে পর্যাপ্ত র্যাম রয়েছে কিনা অনুমান করুন"
  • 1 = "সর্বদা হ্যাঁ বলুন"
  • 2 = "আমাদের স্মৃতি না থাকলে না বলুন"

এটি অ্যাপ্লিকেশনটিকে মেমরির বাইরে চলে যাওয়ার জন্য পরিচালনা করতে বাধ্য করবে এবং সম্ভবত এর লগস / কর্ড্প / ইত্যাদি আপনাকে দরকারী কিছু দিতে পারে।

আপডেট # 1

দ্রষ্টব্য: যখন আপনার সিস্টেমের স্মৃতিশক্তি শেষ হয়ে যায়, আপনি নতুন প্রক্রিয়াগুলি পোড়াতে সক্ষম হবেন না! আপনি সিস্টেম থেকে লক আউট হতে পারে।


এটি একটি ভয়ানক ধারণা। আপনার সিস্টেমে চলমান বেশিরভাগ সফ্টওয়্যার সম্ভবত মেমরি বরাদ্দ ব্যর্থতা থেকে রিটার্ন মানটি সঠিকভাবে পরিচালনা করে না। এটি করার ফলে এমন কোড-পাথ তৈরি হবে যা ব্যবহারিকভাবে চালানোর জন্য কারও দ্বারা কখনও কার্যকর করা হয় না এবং সবচেয়ে খারাপ ক্ষেত্রে এমনকি আপনার সিস্টেমে সুরক্ষিত দুর্বলতাগুলি এই অনির্ধারিত এবং অপ্রত্যাশিত কোড পাথগুলি চালনা থেকে প্রবর্তন করতে পারে।
কেজে তাসানাকটসিডিস

4
echo 1 > /proc/sys/vm/oom_dump_tasks

যা সর্বাধিক মনে হয় যে আপনি মেমরির বাইরে থাকা ত্রুটিগুলি প্রদর্শন করতে কার্নেলটি পেতে পারেন।

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

সিস্টেম-ওয়াইড টাস্ক ডাম্প (কার্নেল থ্রেডগুলি বাদ দিয়ে) উত্পাদনের জন্য সক্ষম করে যখন কার্নেল একটি ওওএম-কিলিং সম্পাদন করে এবং পিড, ইউআইডি, টিজিড, ভিএম আকার, আরএসএস, এনআর_পেটস, সোয়েন্টস, ওম_স্কোর_এডজে স্কোর এবং নাম অন্তর্ভুক্ত করে। এটি OOM হত্যাকারীকে কেন ডাকা হয়েছিল তা নির্ধারণ করতে, এটি যে দুর্বৃত্ত কাজটি ঘটেছে তা সনাক্ত করতে এবং OOM হত্যাকারী যে কাজটি হত্যা করেছিল তা কেন নির্ধারণ করেছিল তা নির্ধারণ করতে এটি সহায়ক।

যদি এটি শূন্যতে সেট করা থাকে তবে এই তথ্যটি চাপা দেওয়া হবে। হাজার হাজার টাস্ক সহ খুব বড় সিস্টেমে এটি প্রতিটিের জন্য মেমরি স্টেটের তথ্য ডাম্প করা সম্ভব হয় না। যখন তথ্য পছন্দসই না হতে পারে তখন এ জাতীয় সিস্টেমগুলিকে ওওএম শর্তে একটি পারফরম্যান্স জরিমানা কাটাতে বাধ্য করা উচিত নয়।

যদি এটি অ-শূন্যতে সেট করা থাকে, যখনই ওওএম কিলার প্রকৃতপক্ষে কোনও মেমরি-হগিংয়ের কাজটি হত্যা করে তখন এই তথ্য প্রদর্শিত হয়।

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