প্রশ্ন যে কেউ কি সূক্ষ্মভাবে ব্যাখ্যা করতে পারেন?


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

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

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

এবং আইও অপেক্ষার সময় কমানোর উপায় কী?


171
2018-05-27 09:52


উত্স


এবং আরো, উচ্চ iowait কি? - Muhamed Huseinbašić


উত্তর:


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

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

এছাড়াও অধিকার সরঞ্জাম কি   কোন প্রক্রিয়া (এস) ঠিক কি নির্ণয়   আইও জন্য অপেক্ষা করুন।

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

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

এবং আইও কমানোর উপায় কী?   সময় অপেক্ষা?

  • আপনার ফ্রি ফিজিক্যাল মেমরি আছে কিনা তা নিশ্চিত করুন যাতে OS মেমরিতে ডিস্ক ব্লক ক্যাশে করতে পারে
  • অত্যধিক বিভাজন এড়াতে 80% এর নিচে আপনার ফাইল সিস্টেম ডিস্ক ব্যবহার রাখুন
  • আপনার ফাইল সিস্টেম সুর
  • একটি ব্যাটারি ব্যাক অ্যারে নিয়ামক ব্যবহার করুন
  • io অপারেশন সঞ্চালনের সময় ভাল বাফার মাপ নির্বাচন করুন

90
2018-05-27 10:28



ভুলবেন না "আপনার ব্যাকএন্ড স্টোরেজটি আপনার I / O লোডটি ধরে রাখার জন্য যথেষ্ট দ্রুত তা নিশ্চিত করুন।" - jgoldschrafe
@ ডেভ চেনি, এবং যখন আমার প্রক্রিয়া নিষ্ক্রিয় হয় তখন এটি আইও-তে অপেক্ষা করছে। তাই আইওয়েতে ও নিষ্ক্রিয়তার মধ্যে পার্থক্য কী? - ctrl-alt-delor
IOwait যখন, প্রক্রিয়া ডিস্ক উপর তথ্য দূষিত ঝুঁকি এড়ানোর জন্য, এটি হত্যা করা যাবে না মানে "অবিচ্ছিন্ন ঘুম" হয়। একটি স্বাভাবিক নিষ্ক্রিয় প্রক্রিয়া সত্যিই কিছুই করা হয় না, তাই এটি হুমকি কম ঝুঁকি আছে। - mveroone
উপরে কার্যত এটি আপনার আইও খুব ধীর মানে। "সার্ভারটি দ্রুততর করুন" আপনি CPU সীমাবদ্ধ কিনা বা আপনার সিপিআই ক্ষুধার্ত হয় তা ভিন্ন, কারণ কেউ সিদ্ধান্ত নেয় যে ধীর নোটবুক ডিস্ক একটি ডাটাবেস সার্ভার চালানোর জন্য যথেষ্ট এবং আইও লোডটি সিপিইউটি যা করতে পারে তার 2% ব্যবহার করে। আইও শেষ করার জন্য পাগল। - TomTom
ওএমজি আমি বিশ্বাস করতে পারছি না এখানে শীর্ষ 3 টি উত্তর আছে ভুল। Haridsv দ্বারা নীচের উত্তর সঠিক। আইপিও সম্পূর্ণ করার জন্য কোন সিপিইউ "অপেক্ষা করছে"। হ্যাঁ, কিছু io ব্লক করা যেতে পারে - প্রায়শই এর জন্য একটি ভাল কারণ রয়েছে এবং কিছু পরিস্থিতিতেই সমস্ত io ব্লক করা যেতে পারে। কিন্তু আপনি সম্পূর্ণরূপে অ্যাসিঙ্ক্রোনাস ক্রিয়াকলাপগুলির জন্য ঘটমান iowait দেখতে পারেন। - symcbean


পুরানো প্রশ্ন, সম্প্রতি bumped, কিন্তু অনুভূত বিদ্যমান উত্তর অপর্যাপ্ত ছিল।

IOWait সংজ্ঞা & বৈশিষ্ট্য

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

যথোপযুক্ত সৃষ্টিকর্তা, iowait প্রসেসর ticks শতাংশ হিসাবে হার্ডওয়্যার interrupts গ্রহণ এবং পরিচালনা সময় ব্যয় করা হয়। সফ্টওয়্যার interrupts সাধারণত আলাদাভাবে labled হয় %si

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

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

IOWait সনাক্ত করার সরঞ্জাম

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

কিন্তু একটি সহজ top প্রদর্শন করা হবে %wa

IOWait হ্রাস

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


44
2017-12-25 12:45





iowait

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

এই সাধারণত ব্লক ডিভাইস (যেমন শারীরিক ডিস্ক, মেমরি না) মানে খুব ধীর, বা সহজভাবে সম্পৃক্ত।

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

সরঞ্জাম

  • sar (থেকে sysstat প্যাকেজ, সবচেয়ে * nix মেশিনে উপলব্ধ)
  • iostat
  • sarface (একটি সামনে শেষ sar)

34
2018-05-27 10:32



উল্লেখ্য যে কঠোরভাবে বলতে গেলে, I / O অপেক্ষাের সংজ্ঞাটি শুধুমাত্র একক প্রসেসর সিস্টেমে বৈধ। মাল্টি প্রসেসর সিস্টেমের জন্য এটি কিছুটা সুনির্দিষ্ট হওয়া দরকার: veithen.blogspot.be/2013/11/iowait-linux.html - Andreas Veithen
কি পরিমাণ iowait প্রভাবিত Load Average? বলুন, 100 টি থ্রেড নেটওয়ার্ক অপেক্ষা করছে, এল এ 100 হবে? - Ivan Balashov


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

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

এক বাক্যের মধ্যে সংক্ষিপ্তভাবে বর্ণনা করা, 'iowait' সময় শতাংশ   CPU নিষ্ক্রিয় এবং প্রগতিতে কমপক্ষে একটি I / O রয়েছে।

প্রতিটি সিপিও চারটি রাজ্যের মধ্যে হতে পারে: ব্যবহারকারী, সিইএস, নিষ্ক্রিয়, iowait।

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

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

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

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

সম্পূর্ণ লেখা পড়া মূল্য। এখানে একটি এই পৃষ্ঠার আয়না, যদি এটা নিচে যায়।


27
2018-05-27 12:34





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

DTrace শেখার সময় একটি উদাহরণ আমি তুলনা করা হয় cp একটি কমান্ড dd কমান্ড। তুমি ইহা দেখতে পারো dd লেখার জন্য আরো অনেক পড়তে না, যখন cp না, বেশিরভাগ কারণ বাফার আকার dd ডিফল্ট ব্যবহার করে (যদি আমি সঠিকভাবে মনে রাখি)।


1
2018-05-27 10:01





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

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

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

যদি এটি হাউস অ্যাপ্লিকেশনে থাকে তবে এটি হ'ল বড় ব্লকগুলি পড়তে বা আইওওকে সমकालिकভাবে করতে অপ্টিমাইজ করা যেতে পারে কিনা তা দেখুন।


0
2018-01-01 15:50



ঠিক আছে, তাই iowait সময় কাটা হয় রোধক আইও অপারেশন? - Peter Krumins
উদাহরণস্বরূপ, উদাহরণস্বরূপ, যদি আমি একটি নির্বাচন () বা পোল () এবং এটি ব্লক করি, তাহলে একটি বর্ণনাকারী উপলব্ধ হওয়ার আগ পর্যন্ত অপেক্ষা করার সময়টি কি iowait সময় গঠন করবে? - Peter Krumins
আমি একটি প্রোগ্রামিং প্রশ্ন মত দেখায় হিসাবে যে SO তে অন্তর্গত হবে। - Jeremy French
পিটারস - হ্যাঁ, এটি সম্পর্কে চিন্তা করার একটি দুর্দান্ত উপায়। - user2278


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

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

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


0