সিপিইউ এবং আইওর জন্য পৃথক প্রক্রিয়া অগ্রাধিকার পাওয়ার ক্ষেত্রে কেসগুলি ব্যবহার করবেন?


9

লিনাক্স প্রসেসগুলির বিভিন্ন সিপিইউ এবং আইও অগ্রাধিকার থাকতে পারে (সুন্দর এবং আয়নিস)।

কেন আলাদা সিপিইউ এবং আইও অগ্রাধিকারের প্রয়োজন আছে?

তাদের আলাদা করার জন্য কি কোনও বাস্তব বিশ্বের ব্যবহার রয়েছে?

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

উত্তর:


6

'সুন্দর' এর ডিফল্ট আচরণ হ'ল বিশেষত্ব পরিবর্তিত হওয়ার সাথে সাথে অ্যাপ্লিকেশনটির 'io' অগ্রাধিকারটি সামঞ্জস্য করা।

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

অভিনবত্বটি কী করে তা বোঝা এটির পক্ষে গুরুত্বপূর্ণ কারণ যখন প্রতিযোগিতামূলক প্রক্রিয়াগুলি থেকে লোড চলাকালীন অপারেটিং সিস্টেমটি যেভাবে আচরণ করে তা আপনার বাকী কাজের চাপের উপর প্রভাব ফেলতে পারে।

বিভিন্ন অ্যাপ্লিকেশন কীভাবে একই সংস্থান (যেমন সিপিইউ) এর জন্য প্রতিযোগিতা করে তার পরিমাপ Con

হ্যান্ডলিং লোড

পুরোপুরি সুষ্ঠু শিডিয়ুলার চালু হওয়ার পরে, প্রতিটি প্রক্রিয়াটির 'ওজন' ধারাটিতে কেবল নিখরচেত্র। যা প্রোকে দেখা যায়।

$ cat /proc/self/sched
---------------------------------------------------------
...
se.load.weight                     :                 1024
...

অদ্ভুততা পরিবর্তন কেবল ওজনকে পরিবর্তন করে:

$ nice -n 5 cat /proc/self/sched 
---------------------------------------------------------
...
se.load.weight                     :                 335
...

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

যদি আমার কাছে 3 টি অ্যাপ্লিকেশন থাকে যা সমস্ত সিপিইউ সময় ব্যবহার করতে চায়, ডিফল্টরূপে তারা 1024 সাধারণ ওজন হিসাবে গ্রহণ করে। উপরের মতো সুন্দর +5 সহ আমার যদি একটি প্রক্রিয়া থাকে তবে তিনটি ওজন মোট 2383 হবে, নীসড প্রক্রিয়াটি এইভাবে একটি নির্দিষ্ট দ্বিতীয়টিতে প্রায় 15% সিপিইউ সময় গ্রহণ করবে যদি সমস্ত 3 প্রক্রিয়া সেই সেকেন্ডে সিপিইউ জিজ্ঞাসা করে ।

কেন আলাদা সিপিইউ এবং আইও অগ্রাধিকারের প্রয়োজন আছে?

সিস্টেমটি যখন লোডের নিচে থাকে তখন কী করা উচিত তা দিয়ে স্পষ্টতই খোলামেলা খেলা হয় - এটি হ'ল অপারেটিং সিস্টেমটি যে কোনও কারণের দ্বারা প্রয়োজনীয় হিসাবে নির্ধারিত প্রতিযোগিতামূলক প্রক্রিয়াগুলির মধ্যে সময় কাটবে।

এটি আপনাকে কীভাবে প্রভাবিত করে বা আপনার কাছে প্রাসঙ্গিক হয় তা বিভিন্ন অ্যাপ্লিকেশনগুলির একে অপরের সাথে বিতরণ প্রাইরিগুলির কী এবং প্রতিটি অ্যাপ্লিকেশন সরবরাহ করার সময় থাকা উচিত by

আপনার সিস্টেমটি লোডের নিচে থাকাকালীন প্রকৃতি কেবল তখনই কিছু করে (সিপিইউ বা ডিস্ক পরিচালনা করতে পারে তার চেয়ে বেশি জিনিস মনোযোগ চাইছে)। এই পরিস্থিতিতে কীভাবে সংস্থানটি বরাদ্দ করা যায় তা কেবল কার্নেলকে নির্দেশ দেয়।

তাদের আলাদা করার জন্য কি কোনও বাস্তব বিশ্বের ব্যবহার রয়েছে?

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

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

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

আপডেটডিবি (একটি প্রোগ্রাম যা ফাইলগুলিকে সূচক করে তোলে) গভীর রাতে চালিত হয় এবং এটির ডিস্কটি ভারী। এটির আইও শিডিউলিং অগ্রাধিকার হ্রাস করার জন্য এটি কার্যকর হতে পারে যাতে সেই সময়ে অন্যান্য অ্যাপ্লিকেশনগুলি এমন কোনও জিনিসের চেয়ে অগ্রাধিকার পায় যা জিনিসগুলির ক্রম হিসাবে গুরুত্বপূর্ণ নয়।

কোন বিশ্ব ব্যবহারের ক্ষেত্রে আপনি দেখতে পেয়েছেন যে আলাদা সিপিইউ এবং আইও অগ্রাধিকার প্রয়োজন?

খুব সামান্য. কৌতূহল একটি সর্বোত্তম প্রচেষ্টা পদ্ধতির খুব বেশি। একটি চলতি নিয়ম হিসেবে আমি এবং প্রায় কত ভাল অ্যাপ্লিকেশন সঞ্চালন করা কম যত্ন আরো কিভাবে খারাপভাবে তারা পারে সঞ্চালন। এটি প্রথমে পিছনের দিকে শোনায় তবে আমার কাছে পরিষেবা প্রদানের গ্যারান্টি রয়েছে যা আমার কাছে আরও গুরুত্বপূর্ণ meet

"খারাপ দিনে আপনার জিনিসগুলি এক্স টাইম পিরিয়ডে হয়ে যাবে" বলার জন্য আমি আত্মবিশ্বাস চাই। যদি এটি দ্রুত চলে যায় তবে এটি কেবল একটি বোনাস।

আমি সাধারণত সম্মত স্পেসিফিকেশন উত্পন্ন করে শুরু করব:

  • সমস্ত ওয়েব অ্যাপ্লিকেশন 0.3 সেকেন্ডের মধ্যে অনুরোধগুলি শেষ করার গ্যারান্টিযুক্ত।
  • কোনও সিস্টেমে সমস্ত এসকিউএল অনুরোধগুলি 0.1 সেকেন্ডের মধ্যে সম্পন্ন হওয়ার গ্যারান্টিযুক্ত।
  • ওয়েব অ্যাপ্লিকেশনটির 50 আইওপিএসের বেশি হ্যান্ডেল করা উচিত নয় এবং 1 কে ফাইল সরবরাহ করা হবে।
  • ওয়েব অ্যাপ্লিকেশন মেমরির পদচিহ্ন মোট 250Mb এর চেয়ে বেশি নয়।

এবং এর মতো পূরণের জন্য প্রয়োজনীয়তাগুলি আঁকুন:

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

সরবরাহের বৈশিষ্ট্যগুলি সত্য, আমি তখন নিয়ন্ত্রণ গ্রুপগুলির আরও বেশি দক্ষ পদ্ধতির ব্যবহার করে ভার্চুয়ালাইজেশন না করে এই লক্ষ্যগুলি পূরণ করি।

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

আমরা যদি আপনার সিপিইউ এবং আইওর উদাহরণটি নিই। আমি সেই সীমাবদ্ধতা স্থাপন করেছি যা এই প্রয়োজনীয়তাগুলি পূরণ করে:

# cd /sys/fs/cgroup/blkio/apache
# echo "253:0 100" >blkio.throttle.read_iops_device 
# echo "253:0 50" >blkio.throttle.write_iops_device 
# echo "253:0 102400" >blkio.throttle.read_bps_device

তাই 100 আইওপ্স পড়তে 100 ক বাইট।

# cd /sys/fs/cgroup/cpu/apache
# echo 1000000 >cpu.cfs_period_us
# echo 60000 >cpu.cfs_quota_us 

1 দ্বিতীয় সময়-সময়ের মধ্যে, সিপিইউয়ের 0.06 সেকেন্ড দিন।

# cd /sys/fs/cgroup/cpu/sql
# echo 1000000 >cpu.cfs_period_us
# echo 20000 >cpu.cfs_quota_us

1 দ্বিতীয় সময়-সময়ের মধ্যে, সিপিইউ এর 0.02 সেকেন্ড দিন।

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

এই প্রকৃতির নিয়ন্ত্রণ গোষ্ঠীগুলি এখনও সর্বোত্তম প্রচেষ্টা তবে তারা চেষ্টা এবং অভিনবত্বের চেয়ে অনেক বেশি নিয়ন্ত্রণের চেষ্টা করে।


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