একটি ডেস্কটপ প্রসঙ্গে সিস্টেমযুক্ত সময়সূচী-সম্পর্কিত বিকল্পগুলি ব্যবহার এবং বুঝতে


14

সিস্টেমড সার্ভিস ফাইলগুলিতে, নিম্নলিখিত শিডিউল সম্পর্কিত সম্পর্কিত বিকল্পগুলি সেট করতে পারেন ( systemd.execম্যান পৃষ্ঠা থেকে , আমি ভুল হলে আমাকে সংশোধন করে):

চমৎকার সম্পাদিত প্রক্রিয়াগুলির জন্য ডিফল্ট সুন্দর স্তর (সময় নির্ধারণের অগ্রাধিকার) সেট করে। -20 (সর্বাধিক অগ্রাধিকার) এবং 19 (সর্বনিম্ন অগ্রাধিকার) এর মধ্যে পূর্ণসংখ্যা নিয়ে যায়। দেখুন setpriority (2) বিস্তারিত জানার জন্য।

যা পরিচিত সুন্দর স্তর। সাম্প্রতিক লিনাক্স কার্নেলগুলির 'অটোগ্রুপ' বৈশিষ্ট্যের কারণে এর প্রভাবটি কিছুটা 'বিভক্ত' বলে মনে হচ্ছে seems সুতরাং নীচের বিকল্পগুলি আমার ডেস্কটপের অভিজ্ঞতার জন্য প্রক্রিয়াগুলি সুন্দরভাবে আচরণের জন্য সেট করতে চাইলে তা হতে পারে।

সিপিইএসচুলেডিংপলিসি সম্পাদিত প্রক্রিয়াগুলির জন্য সিপিইউ শিডিয়ুলিং নীতি সেট করে Se অন্য একটিকে ব্যাচ, অলস, ফিফো বা আরআর নেয়। দেখুন sched_setscheduler (2) বিস্তারিত জানার জন্য।

সিপিইএসডুলেডিংপ্রাইরিটি সিপিইউ নির্বাহিত প্রক্রিয়াগুলির জন্য পূর্বনির্ধারিত অগ্রাধিকার সেট করে। উপলব্ধ অগ্রাধিকারের ব্যাপ্তি নির্বাচিত সিপিইউ শিডিয়ুলিং নীতি (উপরে দেখুন) এর উপর নির্ভর করে। রিয়েল-টাইম শিড্যুলিং নীতিগুলির জন্য 1 (সর্বনিম্ন অগ্রাধিকার) এবং 99 (সর্বোচ্চ অগ্রাধিকার) এর মধ্যে একটি পূর্ণসংখ্যা ব্যবহার করা যেতে পারে। দেখুন sched_setscheduler (2) বিস্তারিত জানার জন্য।

সিপি ইউএস শিউডিং রিসেটঅনফর্ক একটি বুলিয়ান আর্গুমেন্ট নেয়। যদি সত্য হয়, এক্সিকিউটেড প্রসেসের কাঁটাচামচ করার সময় এলিভেটেড সিপিইউ শিডিয়ুলিং অগ্রাধিকার এবং নীতিগুলি পুনরায় সেট করা হবে এবং তাই শিশু প্রসেসগুলিতে ফাঁস হতে পারে না। দেখুন sched_setscheduler (2) বিস্তারিত জানার জন্য। মিথ্যা ডিফল্ট।

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

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

সিপিইউ শিডিউলিংয়ের পরে, আইও শিডিউলিং রয়েছে। আমি অনুমান করি এটি এর সাথে মিলে যায় ionice(আমি ভুল হলে আমাকে সংশোধন করুন)।

আইওএসশেডুলিংক্লাস নির্বাহিত প্রক্রিয়াগুলির জন্য I / O সময়সূচী শ্রেণি সেট করে। 0 এবং 3 এর মধ্যে একটি পূর্ণসংখ্যা নিয়ে যায় বা স্ট্রিংগুলির মধ্যে একটিরও রিয়েলটাইম, সেরা প্রচেষ্টা বা নিষ্ক্রিয় নয়। দেখুন ioprio_set (2) বিস্তারিত জানার জন্য।

আইওএসচেডিংপ্রিয়রিটি নির্বাহিত প্রক্রিয়াগুলির জন্য I / O নির্ধারিত অগ্রাধিকার সেট করে। 0 (সর্বোচ্চ অগ্রাধিকার) এবং 7 (সর্বনিম্ন অগ্রাধিকার) এর মধ্যে একটি পূর্ণসংখ্যা নেয়। উপলব্ধ অগ্রাধিকারগুলি নির্বাচিত আই / ও শিডিউলিং ক্লাসের উপর নির্ভর করে (উপরে দেখুন)। বিশদ জানতে ioprio_set (2) দেখুন।

আমরা এখানে সিপিইউ শিডিউলিংয়ের মতো একই কাঠামো দেখতে পাই। আমি একই ধরণের তথ্য অনুসন্ধান করছি।

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


2
কোন বিশেষ পারফরম্যান্স সমস্যাটি আপনি সমাধান করার চেষ্টা করছেন? কিছু ধীরে ধীরে চলছে বা আপনার জন্য খুব বেশি পিছিয়ে আছে? আমি ব্যাকগ্রাউন্ডে ব্যাকআপ ব্যয়ে ডেস্কটপ হিসাবে সিস্টেমড সহ উবুন্টু 16.04 ব্যবহার করি এবং আপেক্ষিক অগ্রাধিকার সম্পর্কিত কোনও পারফরম্যান্স সমস্যা নেই।
মার্ক স্টোসবার্গ

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

প্রতিটি বিট ডকুমেন্টেশন একটি ম্যান পৃষ্ঠা উল্লেখ করে যেখানে আপনি আগ্রহী হলে আপনি আরও ডকুমেন্টেশন সন্ধান করতে পারেন। Ioprio_set (2) এবং সময়সূচী_সেটশুলার (2) এর জন্য রেফারেন্সযুক্ত ম্যান পৃষ্ঠাগুলি কি আপনার প্রশ্নের উত্তর দিতে সহায়তা করে?
মার্ক স্টোসবার্গ 26'17

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

আমি ঠিক ঠিক একই প্রসঙ্গে এই নির্দেশকে হোঁচট খেয়েছি (ব্যাকগ্রাউন্ড ব্যাকআপগুলি পিছিয়ে রয়েছে)। আমি দেখতে পেলাম যে মেন্য শিডিয়ুল (7) এর সাথে অন্য দুটি ম্যান পৃষ্ঠাগুলির আরও ব্যাপক বিবরণ রয়েছে। ( niceমানটি প্রযোজ্য হলে এটিও উল্লেখ করে )।
উইসপারউইন্ড

উত্তর:


5

CPUScheduling {নীতি | অগ্রাধিকার}

লিঙ্কটি আপনাকে জানায় যে CPUSchedulingPriorityকেবল fifoবা rr("রিয়েল-টাইম") কাজের জন্য সেট করা উচিত । আপনি পরিষেবাগুলিতে রিয়েল-টাইম শিড্যুলিং জোর করতে চান না।

CPUSchedulingPolicy=other ডিফল্ট হয়।

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

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

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

কার্নেল দ্বারা 'অটগ্রুপ' বৈশিষ্ট্যটি কি সুন্দর স্তরটি 'বিভক্ত'?

হ্যাঁ।

অটোগ্রুপিং কিছুটা অদ্ভুত is লেখক systemdহিউরিস্টিক পছন্দ করেন না, এমনকি ডেস্কটপগুলির জন্যও। আপনি autogrouping নিষ্ক্রিয় পরীক্ষা চান, আপনি সেট করতে পারেন sysctl kernel.sched_autogroup_enabled করতে 0। আমি মনে করি স্থায়ী কনফিগারেশন এবং রিবুট করার সময় সিস্কিটল সেট করে পরীক্ষা করা ভাল, আপনি সমস্ত অটগ্রুপগুলি থেকে মুক্তি পেয়েছেন কিনা তা নিশ্চিত করতে best

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

উদাহরণস্বরূপ সুন্দর স্তর 10 লিনাক্স সিপিইউ শিডিয়ুলারের প্রতিটি থ্রেডের ওজন প্রায় 10% কমিয়ে দেবে। চমৎকার স্তর 14 5% এর নিচে। (লিঙ্ক: সম্পূর্ণ সূত্র )

পরিশিষ্ট: সিস্টেমড সিগ্রুপ দ্বারা সুন্দর স্তরটি 'বিভক্ত'?

বর্তমান DefaultCPUAccounting= সেটিংটি ডিফল্ট অফ অফ, যদি না এটি প্রতি পরিষেবা ভিত্তিতে সিপিইউ নিয়ন্ত্রণ সক্ষম না করে সক্ষম করা না হয়। সুতরাং এটি ঠিক করা উচিত। আপনি আপনার বর্তমান ডকুমেন্টেশনে এটি পরীক্ষা করতে পারেন:man systemd-system.conf

সচেতন থাকুন যে কোনও পরিষেবা সিপিইউ অ্যাকাউন্টিং / সিপিইউইট / স্টার্টআপসিপিইউইউইট / সিপি ইউএসএয়ারস / স্টার্টআপসিপি ইউএসআরেস সেট করলেও প্রতি-পরিষেবা সিপিইউ নিয়ন্ত্রণ সক্ষম হবে ।

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

একটি দুর্দান্ত ডিফল্ট হিসাবে, সিপিইউ নিয়ন্ত্রণকারী কার্নেলে সক্ষম করা থাকলে, সিস্টেমড প্রতিটি পরিষেবা চালু করার সাথে সাথে একটি সিগ্রুপ তৈরি করবে। আর কোনও কনফিগারেশন ছাড়াই এরই মধ্যে এর একটি দুর্দান্ত প্রভাব রয়েছে: একটি সিস্টেমড সিস্টেমে প্রতিটি সিস্টেম পরিষেবাদি যত পরিমাণ প্রক্রিয়া সম্পন্ন না করেই সমান পরিমাণ সিপিইউ লাভ করবে। বা অন্য কথায়: আপনার ওয়েব সার্ভারে মাইএসকিউএল অ্যাপাচি হিসাবে প্রায় সমপরিমাণ সিপিইউ পাবে, যদিও পরবর্তীকালে 1000 সিজিআই স্ক্রিপ্ট প্রক্রিয়া রয়েছে, তবে কেবলমাত্র কয়েকটি কর্মী কাজ রয়েছে। (এই আচরণটি বন্ধ করা যেতে পারে, ডিফল্ট নিয়ন্ত্রণকারীরা = ইন /etc/systemd/system.conf দেখুন))

এই ডিফল্টর উপরে, সিপিইউয়ারস = সেটিংয়ের সাথে একটি পরিষেবা প্রাপ্ত সিপিইউ ভাগগুলি স্পষ্টভাবে কনফিগার করা সম্ভব। ডিফল্ট মান 1024 হয়, আপনি যদি এই সংখ্যাটি বাড়ান তবে আপনি 1024 এ একটি অপরিবর্তিত ব্যক্তির চেয়ে কোনও পরিষেবাতে আরও সিপিইউ নিযুক্ত করবেন, যদি আপনি এটি কম করেন তবে কম।

http://0pointer.de/blog/projects/resources.html


-3

ক্লাসিক পারফর্মিং টিউনিং পরামর্শটি হ'ল "অপটিমাইজ করবেন না, বেঞ্চমার্ক"।

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

আধুনিক ডেস্কটপগুলি প্রায়শই কোনও টিউনিং ছাড়াই বেশ দ্রুত কাজ করে fast


3
দুঃখিত, তবে এটি প্রশ্নের উত্তর নয়। পুরো বিষয়টি হ'ল যদি কেউ প্রকৃতপক্ষে এর প্রভাবগুলি বুঝতে না পারে তবে জিনিসগুলি চেষ্টা করে দেখার চেষ্টা করা শক্ত। এবং এই প্রশ্নটি একটি আধুনিক ডেস্কটপে পারফরম্যান্স ইস্যু দ্বারা উত্সাহিত করা হয়েছিল (তবে তা নয়!)
সমমানের

1
যে কোনও বিকল্পের চেষ্টা করতে কয়েক মিনিট সময় নেয়। আপনার যদি বেসলাইন বেঞ্চমার্ক এবং একটি পারফরম্যান্স লক্ষ্য থাকে তবে আপনি সহজেই পরীক্ষা করে দেখতে পারেন যে আপনি যে বিকল্পটি চেষ্টা করেছেন সেটি আপনাকে যে দিকে চায় সেদিকে নিয়ে যায় কিনা।
মার্ক স্টসবার্গ

@Equaeghe, এলোমেলোভাবে গাঁটছোঁট শব্দগুলি না জেনেও তারা কীভাবে সমস্যার সমাধান করবে না।
ভনব্র্যান্ড

যথেষ্ট পরামর্শ, কিন্তু কোনও উত্তর নয়। এটি বরং একটি মন্তব্য করা উচিত। কখনও কখনও "এটি ওয়াএ খুব ধীর" এর অন্ত্র অনুভূতি পদক্ষেপের জন্য তাত্পর্যপূর্ণ করার জন্য একটি মানদণ্ডের পক্ষে যথেষ্ট। উদাহরণস্বরূপ ব্যবহার systemd-analyzeকরে blameএবং plotআমি পুরানো আরপিআইতে বুটের সময়টি এক মিনিটেরও বেশি কাটতে সক্ষম হয়েছি। অবশ্যই, যখন এটি সমস্যার বিশ্লেষণের দিকে আসে তখন অকাল "" অপ্টিমাইজেশন "শুরু করার পরিবর্তে এটি পরিমাপ করা প্রয়োজন।
0xC0000022L
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.