লিনাক্স ওওএম ঘাতক দ্বারা কোন প্রক্রিয়াটিকে হত্যা করা হয়েছিল তা সন্ধান করে


172

যখন লিনাক্সের স্মৃতিশক্তি চলে না (OOM), OOM হত্যাকারী কিছু হিউরিস্টিকের উপর ভিত্তি করে হত্যা করার প্রক্রিয়া পছন্দ করে (এটি একটি আকর্ষণীয় পাঠ্য: http://lwn.net/Articles/317814/ )।

কীভাবে কোনও প্রোগ্রামক্রমে নির্ধারণ করতে পারে যে কোন প্রক্রিয়াগুলি সম্প্রতি ওওএম ঘাতক দ্বারা নিহত হয়েছে?

উত্তর:


171

এটি ব্যবহার করে দেখুন:

grep -i 'killed process' /var/log/messages

18
এফডাব্লুআইডাব্লু, আমি এই বার্তাগুলি সিসলগ, বা কের্ন.লগ-এ পেয়েছি, তবে / ভার / লগ / বার্তাগুলিতে নেই
jberryman

36
আপনি "egrep -i -r 'হত্যা প্রক্রিয়া' / var / লগ /" এটি অন্য জায়গায় অনুসন্ধান করতেও ব্যবহার করতে পারেন।
মেটাডোস

5
@ জবেরিম্যান: কোনও কারণে সিসলগ /var/log/syslogকিছু ডিস্ট্রোজে এবং /var/log/messagesঅন্যদের হাতে রয়েছে। আমি মনে করি এটি প্রাক্তনের হয়ে ডেবিয়ান এবং দ্বিতীয়টির জন্য রেড হ্যাট বিআইসিবিডাব্লু।
টম অ্যান্ডারসন

5
"dmesg | egrep -i 'হত্যা প্রক্রিয়া'" এবং আপনি যে কোনও জায়গায় লগ সন্ধান করতে পারেন (সংরক্ষণাগারযুক্তগুলি সহ) :)
জন ডি

2
egrepএখানে বোঝা যায় না। সরল পুরানো grep, বা যদি আমরা নির্দিষ্ট হয়ে থাকি, তবে fgrepআরও বেশি অর্থবোধ তৈরি করে। (সেই অনুসারে উত্তর সম্পাদনা করা হচ্ছে))
আনতাক

148

এটি চেষ্টা করুন যাতে আপনার লগগুলি কোথায় রয়েছে সে সম্পর্কে আপনাকে চিন্তা করার দরকার নেই

dmesg | egrep -i 'killed process'

1
এই দরকারী, কিন্তু যখন আমি দুর্ভাগ্যবশত তা ব্যাখ্যা করতে পারবেন না, আমি ফলাফল দেখছি /var/log/messagesযে দেখানো হয় না dmesg/ /var/log/dmesg। এটি কোনও ধরণের ভুল কনফিগারেশন হতে পারে তবে লক্ষণীয় যে উভয় পন্থা ব্যবহার করা ভাল ধারণা হতে পারে।
কুংফু

3
আপনার লগ ফাইল সম্পর্কে নিশ্চিত না, তবে ডেমসগের আউটপুট সীমিত আকারের রিং বাফার থেকে। যদি ওম-কিলার থেকে অন্য জিনিসগুলি বাফারটি পূরণ করে থাকে তবে আপনি ওম-কিলার আউটপুট হারাবেন।
ড্যান প্রিটস

এই একমাত্র উপায় আমি কীভাবে দেখতে পেলাম যে প্রক্রিয়াটি
ওপেনজেড

16
আমি dmesg -Tপাঠযোগ্য টাইমস্ট্যাম্পগুলি পেতে ব্যবহার করার পরামর্শ
দিই

2
/ Var / লগ / বার্তাগুলির তুলনায়, এর মূল সুবিধাগুলি প্রয়োজন না হওয়ার সুবিধাগুলি রয়েছে
কাইনোলিয়ান

52

এখন dstat আপনার চলমান সিস্টেমে অনুসন্ধানের জন্য বৈশিষ্ট্যটি সরবরাহ করে যা কোন প্রক্রিয়াটি ওম প্রক্রিয়া দ্বারা নিহত হওয়ার প্রার্থী

dstat --top-oom
 --out-of-memory---
  kill score
 java           77
 java           77
 java           77

এবং ম্যান পৃষ্ঠা অনুসারে

  --top-oom
          show process that will be killed by OOM the first

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

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