কীভাবে ডিস্ক আইও অগ্রাধিকারটি স্বয়ংক্রিয়ভাবে সেট করতে পারেন?


8

আমি যদি কিছু IO নিবিড় অ্যাপ্লিকেশন ব্যবহার করি (যেমন ভার্চুয়ালবক্স, স্টিম ডেটা যাচাইকরণ বা এমনকি dd) আমার সিস্টেমটি প্রায় প্রতিক্রিয়াহীন হয়ে যায়। সবগুলিই সাধারণ অগ্রাধিকার দিয়ে শুরু করা সত্ত্বেও, তারা ডেস্কটপটিকে খুব আলস্য করে তোলে এবং অন্যান্য অ্যাপ্লিকেশনগুলির প্রারম্ভিক প্রচুর ক্ষেত্রে বিলম্ব করে।

আমি জানি আমি ioniceউদাহরণস্বরূপ অলসকে অগ্রাধিকার পরিবর্তন করার মতো কিছু ব্যবহার করতে পারি , তবে ভার্চুয়ালবক্সের ক্ষেত্রে যা অনেকগুলি প্রক্রিয়া তৈরি করে তা কঠিন হয়ে পড়ে।

আমি কি সিস্টেমে কিছু ধরণের ইঙ্গিত দিতে পারি, তাই কিছু নির্দিষ্ট অ্যাপ্লিকেশন চালু করার সময় সেগুলি নূন্যতম আইও অগ্রাধিকার দিয়ে শুরু করা হয়?


তুমি কি আমার সমাধান চেষ্টা করেছ? এটা কি কাজ করে?
sm4rk0

উত্তর:


7

দ্রষ্টব্য: এই সমাধানটি কেবল সিএফকিউ শিডিউলারের সাথে কাজ করে, যেমনটি এখানে ব্যাখ্যা করা হয়েছে । জারি করে কোনটি ব্যবহৃত হয় তা আপনার পরীক্ষা করা উচিত

cat /sys/block/sda/queue/scheduler

এবং প্রয়োজনে এটি পরিবর্তন করুন

যদি আমি সঠিকভাবে বুঝতে পারি তবে ioniceআপনি কমান্ড শুরু করার সময় আপনি কিছু সেটিংস প্রয়োগ করতে চান । আপনি এটি এইভাবে করতে পারেন:

echo 'ionice -c 3 /usr/bin/VirtualBox "$@"' > VirtualBox
chmod a+x VirtualBox
sudo mv VirtualBox /usr/local/bin/

প্রথম কমান্ডটি VirtualBoxতার বিষয়বস্তু হিসাবে একক-উদ্ধৃত পাঠ্য সহ একটি ফাইল তৈরি করে । এটির প্রোগ্রামটির পুরো পথ থাকা উচিত, কারণ যদি কেবলমাত্র একটি নির্দিষ্ট করে তবে VirtualBoxএটি এটি কেবলমাত্র তৈরি করা ফাইল হিসাবে ব্যাখ্যা করতে পারে এবং একটি "লুপ" তৈরি করতে পারে।

দ্বিতীয় কমান্ড এটিকে সম্পাদনযোগ্য করে তোলে এবং তৃতীয়টি এই নতুন ফাইলটিকে "সিস্টেম" বিন ফোল্ডারের সামনে একটি ফোল্ডারে সরায় /usr/bin, সুতরাং আমাদের নতুন ফাইলটি মূলটির পরিবর্তে কার্যকর করা হবে। "$ @" অংশে কমান্ডটি আবেদিত সমস্ত আর্গুমেন্ট রয়েছে যাতে তারা আসল ভার্চুয়ালবক্স কমান্ডে এগিয়ে যায়।

এই সুপার ব্যবহারকারীর প্রশ্নের উত্তর ("হ্যাঁ") অনুসারে বাচ্চারা কি তাদের পিতামাতার কাছ থেকে আয়নিক অগ্রাধিকার লাভ করে? চলমান প্রক্রিয়াটির IO অগ্রাধিকারটি কীভাবে পরীক্ষা করবেন? , এটি ioniceপিতামাতার প্রক্রিয়াতে যথেষ্ট হওয়া উচিত :

ionice -c 3 VirtualBox

ionice ম্যান পৃষ্ঠা থেকে , নিম্নলিখিত I / O নির্ধারিত শ্রেণীর মানগুলি উপলব্ধ:

  • 0 কারও জন্য নয়
  • রিয়েলটাইমের জন্য 1
  • সেরা প্রচেষ্টা জন্য 2
  • অলস জন্য 3 (উপরে উদাহরণস্বরূপ ব্যবহৃত)

একটি নম্বর বা শ্রেণীর নাম ব্যবহার করা যেতে পারে।

এছাড়াও, -n levelবৈধ ডেটা (অগ্রাধিকার স্তর) হিসাবে 0-7 সহ রিয়েলটাইম এবং সেরা-প্রচেষ্টা শ্রেণীর জন্য বিকল্পটি প্রযোজ্য।


1
যদিও এটি তাত্ত্বিকভাবে প্রশ্নের উত্তর দিতে পারে , এখানে উত্তরের প্রয়োজনীয় অংশগুলি অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্ক সরবরাহ করা ভাল।
লুসিও

@ লুসিও, একটি ইঙ্গিতের জন্য ধন্যবাদ, তবে ionice"আবশ্যক অংশের পক্ষে এটি যথেষ্ট হওয়া উচিত "?
sm4rk0

1
হ্যাঁ তুমি সঠিক. তবে, আপনি যদি পারেন তবে একটি সময় নিন এবং তারপরে আরও ভাল উত্তর তৈরি করে এই পদ্ধতি সম্পর্কে আপনার নিজের অভিজ্ঞতা থেকে আরও তথ্য যুক্ত করুন :)
লুসিও

@ লুসিও, আমি আশা করি এটি এখন যথেষ্ট ভাল। জোর দেওয়ার জন্য ধন্যবাদ (:
sm4rk0

1
এফওয়াইআই: কেবল শিডিয়ুলারের ioniceসাথে কাজ করতে পারে cfq! আরও তথ্যের জন্য: unix.stackexchange.com/questions/136226/…
andras.tim

-1

প্রক্রিয়াগুলিকে অগ্রাধিকার দেওয়ার জন্য আপনি 'রেনিস' কমান্ডটি ব্যবহার করতে পারেন:

renice -<priority> <application's pid>

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


টিপটির জন্য ধন্যবাদ, তবে আমি এটি স্বয়ংক্রিয়ভাবে এবং সিস্টেমকে প্রশস্ত করতে একটি উপায় খুঁজছিলাম। উদাহরণস্বরূপ: ভার্চুয়ালবক্স চালু করার সময়, এটি সর্বনিম্ন আইও অগ্রাধিকার দিয়ে চালান ...
সালেম

নিয়মিত সুন্দর এবং রাইনিস আলাদাভাবে আইওকে অগ্রাধিকার দেবে না।
জে _সিলি_এভারলাস্ট_উইন

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