সিপিইউ বা ডিস্ক উভয়ই অতিরিক্ত ব্যবহার করা হয়নি সত্ত্বেও কেন লোড বেশি


20

আমি নিম্নলিখিত ফলাফল আছি top:

Cpu(s): 43.8%us, 32.5%sy,  4.8%ni,  2.0%id, 15.6%wa,  0.2%hi,  1.2%si,  0.0%st
Mem:  16331504k total, 15759412k used,   572092k free,  4575980k buffers
Swap:  4194296k total,   260644k used,  3933652k free,  1588044k cached

থেকে আউটপুট iostat -xk 6নিম্নলিখিত দেখায়:

Device: rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda       0.00   360.20   86.20  153.40  1133.60  2054.40    26.61     1.51    6.27   0.77  18.38
sdb       0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd      22.60   198.80   17.40   31.60   265.60   921.60    48.46     0.18    3.70   1.67   8.20
sdc      16.80   218.20   22.20   23.40   261.60   966.40    53.86     0.21    4.56   1.49   6.78

উপরের উপর ভিত্তি করে দেখে মনে হচ্ছে কিছু অবশ্যই অতিরিক্ত বোঝা হয়ে গেছে। কিন্তু কি?

প্রশ্নাবলি

  1. এটি যদি হার্ডডিস্ক বা সিপিইউ না হয় তবে কী?
  2. দেখে মনে হচ্ছে সিপিইউর 15.6% সময় অপেক্ষায় কাটে। এটি ঠিক কী জন্য অপেক্ষা করতে পারে?

2
সিপিইউ নির্দিষ্টকরণ কি এবং বোঝা কত?
sepehr

লোড 100 এরও বেশি
ইউজার 4951

লোড সিপিইউ এবং সিপিইউ কোর সংখ্যার সাথে সম্পর্কিত, আপনার সিস্টেমের সিপিইউ স্পেসিফিকেশন কী?
sepehr

উত্তর:


49

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

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


কোন প্রক্রিয়াগুলি একটি সমস্যা তা নির্ধারণ করার জন্য:

চালান top -H( -Hথ্রেড দেখানো সক্ষম করে)

কীবোর্ড শর্টকাটগুলি সংস্করণ অনুসারে পরিবর্তিত হয়।

আরও শীর্ষে (3.3 এবং পরে):

fক্ষেত্রের বিকল্পগুলি আনতে টিপুন ।
যেতে S = Process Statusএবং টিপতে তীর কীগুলি ব্যবহার করুন s। মূল পৃষ্ঠায় ফিরে যেতে
টিপুন q। বাছাই বিপরীত করতে +
টিপুন ।ShiftR

পুরানো শীর্ষের সাথে (3.3 এর আগে):

সাজানোর বিকল্পগুলি আনতে Shift+ টিপুন o
তারপরে wপ্রক্রিয়া স্থিতি অনুসারে বাছাই করা।
তারপরে Enterমূল পৃষ্ঠায় ফিরে যেতে।
তারপর Shift+ Rবাছাই বিপরীত।

তারপরে Sকলামে, এমন প্রক্রিয়াগুলি সন্ধান করুন যা রয়েছে Dবা R(তাদের এখন শীর্ষে থাকা উচিত)। এটি সিস্টেম লোডে অবদান রাখার প্রক্রিয়াগুলি হবে।

প্রক্রিয়াটি যদি একটি দেখায় তবে এর Dঅর্থ "নিরবচ্ছিন্ন ঘুম"। সাধারণত যখন প্রক্রিয়াটি I / O (ডিস্ক, নেটওয়ার্ক, ইত্যাদি) এ অপেক্ষা করে তখনই এটি ঘটে।
প্রক্রিয়াটি যদি একটি দেখায় Rতবে এর অর্থ এটি কেবল সাধারণ গণনা করছে।


এই প্রক্রিয়াগুলি কী করছে সে সম্পর্কে আরও জানতে:

আরও শীর্ষে (3.3 এবং পরে):

fক্ষেত্রের বিকল্পগুলি আনতে টিপুন ।
এড়াতে তীর কীগুলি ব্যবহার করুন WCHAN = Sleeping in Functionএবং dএটি সক্ষম করতে টিপুন ।
তারপরে qমূল পৃষ্ঠায় ফিরে যেতে।

পুরানো শীর্ষের সাথে (3.3 এর আগে):

প্রেস fতারপর yসক্রিয় করতে WCHANক্ষেত্র।

যদি আপনার সিস্টেমে প্রয়োজনীয় কার্নেল বিকল্প রয়েছে এবং আপনার সিস্টেমে ওয়াচান ফাইল উপস্থিত রয়েছে (আমি এটি ভুলে গেছি এটি কোথায় এবং এটি কী বলা হয়) , WCHANক্ষেত্রটি আপনাকে বর্তমানে কী কার্নেল ফাংশনটি প্রক্রিয়া চলছে তা দেখানো উচিত (যদি ক্ষেত্রটি কেবল একটি দেখায় তবে -বা ?সবকিছুর উপর, আপনার সমর্থন নেই)।
এখানে কিছুটা গুগল এবং আপনার পথে আসা উচিত।

আপনার যদি ওয়াচান সমর্থন না থাকে তবে straceতারা কী করছেন তা জানতে আপনি সর্বদা প্রক্রিয়াগুলি চেষ্টা করে দেখতে পারেন , তবে এটিই সহজ উপায়।


আমি সাধারণত বাছাই করা পরিবর্তন করতে বাম তীর টিপুন।
নিমো

2

সংক্ষিপ্ত জীবনকালীন প্রক্রিয়াগুলির মতো প্রক্রিয়াগুলি যেমন চাকরী সংকলন করা বা কোনও লুপে ব্যর্থ হওয়া প্রক্রিয়াগুলি যেমন topআইওস্ট্যাট এবং এর মতো পর্যবেক্ষণ সরঞ্জামগুলিতে প্রায়শই দৃশ্যমান হয় না ।

এই ক্ষেত্রে লিনাক্স অডিট ফ্রেমওয়ার্ক সাহায্য করবে

অপরাধী, উদাহরণস্বরূপ একটি ব্যর্থতা লুপ

while :; do gcc /dev/zero ; done >/dev/null 2>&1

নিরীক্ষণ / নিরীক্ষণ ব্যবহার করতে:

apt-get install auditd
auditctl -a task,always
ausearch -i -sc execve

সমস্ত প্রক্রিয়া প্রবর্তন লগ থেকে চুরি


যদি তারা উপস্থিত না দেখায় topতবে তারা সম্ভবত লোড গড়তে অবদান রাখছে না। এটির গড় লোডে অবদান রাখার জন্য, এটি দীর্ঘ সময়ের জন্য একটি ওয়েট স্টেটে থাকতে হবে। পরিসংখ্যানগতভাবে এর অর্থ এটি প্রদর্শিত হতে চলেছে top। যদি এটি না হয়, তবে এটি কোনও উল্লেখযোগ্য অবদানকারী নয়।
প্যাট্রিক

0

আমার এমন পরিস্থিতি হয়েছিল যখন এনএফএস মাউন্টগুলি সংযোগ বিচ্ছিন্ন হয়ে গিয়েছিল এবং দুর্ভাগ্যক্রমে আমি একটি ভুল করেছি এবং নরম মাউন্ট বিকল্পটি ব্যবহার করি নি, এভাবে আমার লিনাক্স সার্ভারে মনিটরিং, এলএসফ, এবং এমনকি ব্যাশ সেশন সহ প্রচুর প্রক্রিয়াগুলি স্টিল করা হয়েছে ....

ভাঙা মাউন্টগুলি আনমাউন্ট করার পরে, সিস্টেমটি ওভারলোড হওয়া দেখেছিল:

top - 00:03:48 up 15 days, 14:56,  3 users,  load average: 29, 21, 20

এটি দেখতে ভয়ঙ্কর লাগছিল, তবে সিপিইউর ব্যবহার 15% এর নীচে এবং সেখানে কোনও ডিস্ক I / O নেই। পিএস দিয়ে যাওয়ার জন্য আমি কিছু পরামর্শ পেয়েছি, তবে এটি দেখে মনে হয়নি যে প্রক্রিয়াগুলি বেশিরভাগভাবে ঘুমাচ্ছে।

তারপরে man psঘুমের জন্য আমার রাত বাঁচিয়েছিল, এবং তদন্তের পরে আমি দেখতে গুরুত্বপূর্ণ স্ট্যাটাস ফ্ল্যাগগুলি পেয়েছি, কারণ পরে সনাক্ত করা হয়েছে যে তারা আটকে রয়েছে প্রক্রিয়াগুলি।

এক্সিকিউট:

ps -e v

ও প্রক্রিয়া আছে, যার জন্য চেহারা Dবা SLSTAT কলামে। এগুলি জম্বি প্রক্রিয়াগুলির মতো ছিল তবে জেড-জম্বি হিসাবে চিহ্নিত হয়নি।

ডি - মানে বেশিরভাগই ডিস্ক (ইনপুট / আউটপুট) কার্যকলাপ, কিন্তু যদি আপনি চালাতে ps -e vকয়েক বার এবং iostat 3কর এবং দেখ কোন কার্যকলাপ, এই ইঙ্গিত দেয় যে এই হল আটকে I / O

এসএল - এর অর্থ এই প্রক্রিয়াটির স্মৃতিতে লকড পেজ রয়েছে, সুতরাং আপনি যদি সনাক্ত করতে পারেন যে এই প্রক্রিয়াটি এরকম আচরণ করা উচিত নয়, এটি পরবর্তী সম্ভাব্য প্রার্থী যদি এটি পরিবর্তন ছাড়াই দীর্ঘ সময়ের জন্য আটকে থাকে।

তদন্তের পরে আমি একে একে একে হত্যা করেছি এবং আমার সিস্টেমের লোড গড় স্বাভাবিক হয়ে গেছে।

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