আইওওয়াইট কী তা কি কেউ বিশদভাবে ব্যাখ্যা করতে পারেন?


194

আইওয়েট সম্পর্কে আমি যতটুকু পড়েছি, তা এখনও আমার কাছে রহস্য।

আমি জানি যে সিপিইউ দ্বারা আইও অপারেশনগুলি সম্পন্ন হওয়ার অপেক্ষায় সময় কাটিয়েছে, তবে ঠিক কী ধরণের আইও অপারেশন রয়েছে? আমি যা নিশ্চিত নই, কেন এটি এত গুরুত্বপূর্ণ? আইও অপারেশন সমাপ্ত হওয়ার সময় সিপিইউ কি আর কিছু করতে পারে না এবং তারপরে ডেটা প্রসেসিংয়ে ফিরে যেতে পারে?

এছাড়াও কোন প্রক্রিয়া (এস) আইও-র জন্য সঠিকভাবে অপেক্ষা করেছিল তা নির্ণয়ের সঠিক সরঞ্জামগুলি কী কী?

এবং IO অপেক্ষার সময়কে হ্রাস করার উপায়গুলি কী কী?


এবং এছাড়াও, উচ্চ আইওয়েট কি?
মুহাম্মদ হুসেনবাবি

উত্তর:


99

আমি জানি যে সিপিইউ দ্বারা আইও অপারেশনগুলি সম্পন্ন হওয়ার অপেক্ষায় সময় কাটিয়েছে, তবে ঠিক কী ধরণের আইও অপারেশন রয়েছে? আমি যা নিশ্চিত নই, কেন এটি এত গুরুত্বপূর্ণ? আইও অপারেশন সমাপ্ত হওয়ার সময় সিপিইউ কি আর কিছু করতে পারে না এবং তারপরে ডেটা প্রসেসিংয়ে ফিরে যেতে পারে?

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

এছাড়াও কোন প্রক্রিয়া (এস) আইও-র জন্য সঠিকভাবে অপেক্ষা করেছিল তা নির্ণয়ের সঠিক সরঞ্জামগুলি কী কী?

কিছু সরঞ্জাম যা আপনাকে দরকারী মনে করতে পারে

  • iostat, আপনার ডিস্কের পরিষেবা সময়গুলি পর্যবেক্ষণ করতে
  • iotop (যদি আপনার কার্নেল এটি সমর্থন করে), প্রতিটি প্রক্রিয়াতে IO অনুরোধগুলির ভাঙ্গন পর্যবেক্ষণ করতে
  • strace, একটি প্রক্রিয়া দ্বারা জারি প্রকৃত অপারেশন তাকান

এবং IO অপেক্ষার সময়কে হ্রাস করার উপায়গুলি কী কী?

  • আপনার নিখরচায় শারীরিক মেমরি রয়েছে তা নিশ্চিত করুন যাতে ওএস মেমরিতে ডিস্ক ব্লকগুলি ক্যাশে করতে পারে
  • অতিরিক্ত ভাঙন এড়াতে আপনার ফাইল সিস্টেম ডিস্কের ব্যবহার 80% এর নীচে রাখুন
  • আপনার ফাইল সিস্টেম টিউন করুন
  • ব্যাটারি ব্যাকড অ্যারে কন্ট্রোলার ব্যবহার করুন
  • আইও অপারেশন করার সময় ভাল বাফার মাপ চয়ন করুন choose

6
"আপনার I / O বোঝাটি ধরে রাখার জন্য আপনার ব্যাকএন্ড স্টোরেজ পর্যাপ্ত পর্যায়ে রয়েছে তা নিশ্চিত করুন" "
jgoldschrafe

1
@ ডেভ চেনি, এবং যখন আমার প্রক্রিয়াটি অলস হয় কারণ এটি আইওয়ের জন্য অপেক্ষা করে। আইওওয়েট এবং অলস মধ্যে পার্থক্য কি?
ctrl-alt-delor

4
আইওয়েতে থাকাকালীন ডিস্কগুলিতে ডেটা দূষিত হওয়ার ঝুঁকি এড়াতে প্রক্রিয়াটি "নিরবচ্ছিন্ন ঘুম" এর অর্থ এটি হত্যা করা যায় না। একটি সাধারণ অলস প্রক্রিয়া সত্যিই কিছুই করে না, তাই এটি হত্যার ঝুঁকি কম থাকে।
মুভিওরুন

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

ওএমজি আমি এখানে শীর্ষ 3 টি উত্তর বিশ্বাস করতে পারি না তাই ভুল । হরিদ্বের দ্বারা নীচের উত্তরটি সঠিক। কোনও সিপিইও আইও সম্পূর্ণ হওয়ার জন্য "অপেক্ষা" করছে না। হ্যাঁ, কিছু আইও ব্লক হতে পারে - প্রায়শই এটির জন্য একটি ভাল কারণ আছে এবং কিছু পরিস্থিতিতে সমস্ত আইও ব্লক করা যেতে পারে। তবে আপনি সম্পূর্ণ অ্যাসিনক্রোনাস অপারেশনের জন্য আইওয়েট সংঘটিত হতেও দেখতে পারেন।
সিমকিবিয়ান

47

পুরানো প্রশ্ন, সাম্প্রতিকভাবে ধাক্কা খেয়েছে, তবে বিদ্যমান উত্তরগুলি অপর্যাপ্ত বলে মনে হয়েছে।

আইওওয়েট সংজ্ঞা এবং বৈশিষ্ট্য

আইওওয়েট (সাধারণত %waশীর্ষে লেবেলযুক্ত ) নিষ্ক্রিয়তার একটি উপ-বিভাগ ( %idleসাধারণত সংজ্ঞায়িত উপশ্রেণীগুলি বাদে সমস্ত অলস হিসাবে প্রকাশ করা হয়), যার অর্থ সিপিইউ কিছুই করছে না। সুতরাং, যতক্ষণ না সিপিইউ প্রক্রিয়াজাত হতে পারে এমন আরও একটি প্রক্রিয়া রয়েছে, ততক্ষণ তা করবে। অতিরিক্তভাবে, নিষ্ক্রিয়, ব্যবহারকারী, সিস্টেম, আইওয়েট ইত্যাদি সিপিইউ সম্পর্কিত একটি পরিমাপ measure অন্য কথায়, আপনি আইওউইটকে আইওয়ের জন্য অপেক্ষা করার কারণে অলস হিসাবে ভাবতে পারেন।

স্পষ্টতই, আইওয়েট হ'ল প্রসেসরের টিকের শতকরা হিসাবে হার্ডওয়্যার বিঘ্নিত হওয়া এবং পরিচালনা করতে সময় ব্যয় করে। সফ্টওয়্যার বিঘ্ন সাধারণত হিসাবে পৃথকভাবে লেবেল করা হয় %si

গুরুত্ব এবং সম্ভাব্য ভুল ধারণা

আইওউইট গুরুত্বপূর্ণ কারণ আপনি প্রায়শই আইও-র সাথে যোগাযোগ করছেন কিনা তা জানার জন্য এটি প্রায়শই একটি মূল মেট্রিক। তবে আইওয়েটের অনুপস্থিতির অর্থ এই নয় যে আপনার আবেদনটি আইও-তে কোনও বাধা নেই। একটি সিস্টেমে চলমান দুটি অ্যাপ্লিকেশন বিবেচনা করুন। প্রোগ্রাম 1 যদি ভারীভাবে Io বাধা দেয় এবং প্রোগ্রাম 2 একটি ভারী সিপিইউ ব্যবহারকারী হয়, তবে %user + %systemসিপিইউ এর কিছু এখনও 100% ডলার হতে পারে এবং একইভাবে, আইওয়েট 0 প্রদর্শন করবে তবে এটি কেবল কারণ প্রোগ্রাম 2 নিবিড় এবং তুলনামূলকভাবে কিছুই বলেছে বলে মনে হচ্ছে না প্রোগ্রাম 1 কারণ এই সমস্ত সিপিইউর দৃষ্টিকোণ থেকে।

আইওওয়াইট সনাক্ত করার সরঞ্জামগুলি

ডেভ চেনি এবং জেরক্সেসের পোস্টগুলি দেখুন

তবে একটি সাধারণ topদেখায় %wa

IOWait হ্রাস করা হচ্ছে

এছাড়াও, আমরা এখন প্রায় 2013 এ প্রবেশ করছি, অন্যেরা যা বলেছে তা ছাড়াও, কেবলমাত্র দুর্দান্ত আইও স্টোরেজ ডিভাইসের বিকল্পটি সাশ্রয়ী মূল্যের, এসএসডি। এসএসডি গুলো দুর্দান্ত!


35

iowait

iowaitপ্রসেসর / প্রসেসরগুলি অপেক্ষা করার সময় (যেমন একটি নিষ্ক্রিয় অবস্থায় রয়েছে এবং কিছুই করেনি ), সেই সময়টিতে সেখানে ডিস্ক I / O অনুরোধগুলি ছিল অসামান্য।

এর অর্থ হ'ল ব্লক ডিভাইসগুলি (অর্থাত্ শারীরিক ডিস্কগুলি, মেমরি নয়) খুব ধীর, বা কেবল স্যাচুরেটেড।

সুতরাং আপনার মনে রাখা উচিত যে আপনি যদি আপনার সিস্টেমে একটি উচ্চ লোড গড় দেখতে পান এবং পরিদর্শনটি লক্ষ্য করে যে এর বেশিরভাগটি আসলে I / O অপেক্ষা করার কারণে ঘটে থাকে তবে এর অর্থ এই নয় যে আপনার সিস্টেমটি সমস্যায় পড়েছে - এবং এটি ঘটে যখন আপনার আই / ও-বাউন্ড প্রক্রিয়া ব্যতীত মেশিনের কিছুই করার থাকে না (যেমন প্রক্রিয়াগুলি যে কোনও কিছুর চেয়ে বেশি I / O করে (নন-আই / ও-বাউন্ড সিস্টেম কল))। এটি সিস্টেমে আপনার করা যে কোনও কিছুই এখনও খুব প্রতিক্রিয়াশীল এই বিষয়টি থেকেও স্পষ্ট হওয়া উচিত।

সরঞ্জাম

  • sar( sysstatপ্যাকেজ থেকে , বেশিরভাগ * নিক্স মেশিনে উপলব্ধ)
  • iostat
  • sarface(সামনে একটি প্রান্ত sar)

7
মনে রাখবেন যে কঠোরভাবে বলতে গেলে, I / O অপেক্ষার সময়ের সেই সংজ্ঞাটি কেবলমাত্র একক প্রসেসর সিস্টেমে বৈধ। এটি মাল্টি-প্রসেসর সিস্টেমগুলির জন্য কিছুটা পরিমার্জন করা দরকার: veithen.blogspot.be/2013/11/iowait-linux.html
Andreas Veithen

কোন পরিমাণে iowaitপ্রভাবিত করে Load Average? বলুন, 100 থ্রেড নেটওয়ার্কের জন্য অপেক্ষা করছে, এলএ 100 হবে?
ইভান বালাসভ

32

আমি এই লিঙ্কটি থেকে ব্যাখ্যা এবং উদাহরণগুলি খুব দরকারী খুঁজে পেয়েছি: "আইওয়েট" আসলে কী? । বিটিডাব্লু, সম্পূর্ণতার স্বার্থে, I / O এখানে ডিস্ক I / O বোঝায়, তবে এই অন্যান্য পোস্টে বর্ণিত একটি নেটওয়ার্ক মাউন্টড ডিস্কে (যেমন এনএফএস) আই / ও অন্তর্ভুক্ত করতে পারে ।

আমি কয়েকটি গুরুত্বপূর্ণ বিভাগ উদ্ধৃত করব (লিঙ্কটি মারা যাওয়ার ক্ষেত্রে) এর মধ্যে কয়েকটি হ'ল অন্যরা যা বলেছে তার পুনরাবৃত্তি হবে, তবে আমার কাছে কমপক্ষে এগুলি স্পষ্ট ছিল:

এটি একটি বাক্যে সংক্ষেপে বলতে গেলে, 'আইওয়েট' হ'ল সিপিইউ নিষ্ক্রিয় থাকায় এবং কমপক্ষে একটি আই / ও চলছে of

প্রতিটি সিপিইউ চারটি রাষ্ট্রের মধ্যে একটিতে থাকতে পারে: ব্যবহারকারী, সিস, অলস, আইওয়েট।

আমি ভাবছিলাম যখন সিস্টেমের অন্যান্য প্রক্রিয়াগুলি চালানোর জন্য প্রস্তুত থাকে তখন একটি প্রক্রিয়া I / O এর জন্য অপেক্ষা করে থাকে তখন কী হয়। নীচে এটি ব্যাখ্যা করে:

যদি সিপিইউ নিষ্ক্রিয় থাকে তবে কার্নেলটি নির্ধারণ করে যে বর্তমানে স্থানীয় ডিস্ক বা রিমোটলি মাউন্টড ডিস্ক (এনএফএস) -এর জন্য কমপক্ষে একটি I / O আছে কিনা যা সেই সিপিইউ থেকে শুরু হয়েছিল। যদি সেখানে থাকে তবে 'আইওয়েট' কাউন্টারটি একে একে বাড়ানো হয়েছে। যদি সেই সিপিইউ থেকে শুরু করা অগ্রণীতে যদি কোনও আই / ও থাকে না, তবে 'নিষ্ক্রিয়' কাউন্টারটি একে একে বাড়ানো হয়।

এবং এখানে একটি উদাহরণ:

ধরা যাক যে একটি সিপিইউতে দুটি প্রোগ্রাম চলছে। একটি হ'ল 'ডিডি' প্রোগ্রামটি ডিস্ক থেকে পড়া। অন্যটি এমন একটি প্রোগ্রাম যা I / O না করে তবে তার 100% সময় গণনার কাজ করে ব্যয় করে। এখন ধরে নিন যে I / O সাবসিস্টেমের সাথে একটি সমস্যা আছে এবং শারীরিক I / Os সম্পূর্ণ হতে এক সেকেন্ড সময় নিচ্ছে। যখনই 'ডিডি' প্রোগ্রামটি আই / ওস শেষ হওয়ার অপেক্ষায় ঘুমন্ত, অন্য প্রোগ্রামটি সেই সিপিইউতে চালাতে সক্ষম হয়। যখন ঘড়ির ব্যাঘাত ঘটে তখন সর্বদা ব্যবহারকারী মোড বা সিস্টেম মোডে চলমান একটি প্রোগ্রাম থাকবে। সুতরাং,% নিষ্ক্রিয় এবং% আইওয়েট মান 0 হবে। যদিও আইওয়েট এখন 0, তবুও এর অর্থ এই নয় যে কোনও আই / ও সমস্যা নেই কারণ শারীরিক আই / ওস একটি সেকেন্ড পুরোপুরি গ্রহণ করার ক্ষেত্রে অবশ্যই আছে।

পুরো লেখাটি পড়ার মতো। নীচে যাওয়ার ক্ষেত্রে এই পৃষ্ঠার একটি আয়না এখানে দেওয়া আছে।


1

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

ডিট্রেস শেখার সময় আমি যে উদাহরণটি ব্যবহার করেছি তা হ'ল একটি cpকমান্ডের সাথে একটি ddকমান্ডের তুলনা করা । আপনি দেখতে পাচ্ছেন যে ddলেখার জন্য আরও অনেকগুলি পাঠ্য রয়েছে, যদিও cpসাধারণত বাফার আকারটি ddডিফল্টরূপে ব্যবহার করে না (যদি আমি সঠিকভাবে মনে রাখছি)।


0

কোন ধরণের আইও অপারেশনগুলি আপনার অ্যাপ্লিকেশন এবং সেটআপের উপর নির্ভর করবে।

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

আইও সময়টি কমাতে, আরও এবং দ্রুত মেমরি কিনুন, দ্রুত ডিস্কগুলি পান, আপনার থাকা ডিস্কগুলিকে ডিফ্র্যাগ করুন।

এটি যদি বাড়ির অ্যাপ্লিকেশন হয় তবে এটি বড় বাধা পড়তে বা অযৌক্তিকভাবে IO করতে অনুকূলিত হতে পারে কিনা তা দেখুন see


ঠিক আছে, তাই আইওয়েট কি ব্লকিং আইও অপারেশনে সময় কাটায় ?
পিটার ক্রুমিনস

সুতরাং উদাহরণস্বরূপ, আমি যদি একটি নির্বাচন () বা পোল () করি এবং এটি ব্লক করে দেয়, তবে কোনও বিবরণকারী উপলব্ধ হওয়ার আগ পর্যন্ত অপেক্ষা করা সময় কি আইওয়েটের সময় হতে পারে?
পিটার ক্রুমিনস

আমি মনে করি যে এটি কোনও প্রোগ্রামিং প্রশ্নের মতো দেখায় এটি এসও এর অন্তর্ভুক্ত।
জেরেমি ফরাসী

পিটারিস - হ্যাঁ, এটি সম্পর্কে চিন্তা করার ভাল উপায়।
ব্যবহারকারী 2278

0

পিএস অক্স ব্যবহার করে প্রসেস স্ট্যাট প্রিন্ট করতে পারে স্ট্যাটটি
ডি বা ডিএস হলে প্রক্রিয়াটি নিরবচ্ছিন্ন ঘুমে (সাধারণত আইও) হয়
যখন একটি প্রক্রিয়া নিরবচ্ছিন্ন ঘুমে প্রবেশ করে, রানক্রয়ের nr_iowait যোগ করা হয়, এবং যদি nr_iowait> 0 হয়, সিপিইউয়ের নিষ্ক্রিয় সময় গণনা করা হয় iowait

vmstat এছাড়াও দেখায় যে কতগুলি প্রক্রিয়া ব্লক করে
r: রান সময়ের জন্য অপেক্ষা করা প্রক্রিয়াগুলির সংখ্যা।
বি: নিরবচ্ছিন্ন ঘুমে প্রক্রিয়াগুলির সংখ্যা।

http://bencane.com/2012/08/06/troubleshooting-high-io-wait-in-linux/

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