पूर्ण आदेश आप चाहते हैं:
chrt -b 0 nice -n 19 ionice -c 2 -n 7 [command]
chrt
शुरुआत में आदेश बैच शेड्यूलिंग वर्ग है, जो अच्छा मूल्य 0.5 जोड़ने के समकक्ष है चीजों को परिवर्तित कर देगा। आयनिस के लिए -n विकल्प रीयलटाइम ( -c 1
) और सर्वश्रेष्ठ-प्रयास ( -c 2
) विकल्पों के लिए एक सरल प्राथमिकता है , जिसमें कम मूल्य अच्छे मूल्यों की तरह उच्च प्राथमिकता (लेकिन रेंज 0-4 में) हैं। हालाँकि, आयनिस कमांड सख्ती से आवश्यक नहीं है, क्योंकि I / O शेड्यूलिंग क्लास और प्राथमिकता सीपीयू शेड्यूलिंग मापदंडों से व्युत्पन्न हैं, और nice -n 19
इसका तात्पर्य है ionice -c 2 -n 7
।
हालाँकि, आप CPU और I / O शेड्यूलिंग कक्षाओं को निष्क्रिय करने के लिए पूर्ण न्यूनतम संसाधन उपयोग प्राप्त कर सकते हैं। दोनों मामलों में, 'निष्क्रिय' शेड्यूलर वास्तव में निष्क्रिय शेड्यूलर नहीं हैं, और आप अभी भी संसाधनों का उपयोग करने में सक्षम होंगे, यह सिर्फ इतना है कि सब कुछ उच्च प्राथमिकता होगी।
CPU शेड्यूलिंग क्लास के लिए, यह भी chrt
कमांड का उपयोग करता है , बिना आवश्यकता के nice
(प्राथमिकता 0
शेड्यूलिंग क्लास में प्राथमिकता निर्धारित की जानी चाहिए ), और इस तरह दिखता है:
chrt -i 0 {command or PID}
nice
लिनक्स दर्पण SVR4 संस्करण, जिसका अर्थ है कि यह समय निर्धारण वर्ग, केवल अच्छा मूल्य नहीं बदल सकते हैं (जो भी शास्त्रीय यूनिक्स से लिनक्स पर अलग ढंग से व्यवहार करती है, लेकिन यह है कि एक सा OT है) पर आदेश। चूंकि मूल वैकल्पिक शेड्यूलिंग क्लासेस POSIX.1E रियलटाइम थे SCHED_RR
और SCHED_FIFO
, शेड्यूलिंग क्लासेस सेट करने के लिए कमांड को बुलाया जा रहा था chrt
। -i
विकल्प निर्दिष्ट करता है उपयोग करने के लिए SCHED_IDLE
समय-निर्धारण वर्ग
I / O शेड्यूलिंग क्लास के लिए, आप उपयोग करते हैं ionice
। सटीक आदेश इस तरह दिखता है:
ionice -c 3 {command or PID}
-c
विकल्प निर्दिष्ट करता है उपयोग करने के लिए क्या शेड्यूलिंग वर्ग, और 3 निष्क्रिय वर्ग के लिए संख्या है। ध्यान दें कि I / O शेड्यूलर का उपयोग किस ब्लॉक पर निर्भर करता है, यह वास्तव में कुछ भी प्रभावित नहीं कर सकता है। विशेष रूप से, noop
I / O शेड्यूलर प्राथमिकताओं या शेड्यूलिंग कक्षाओं का समर्थन नहीं करता है, और मुझे पूरा यकीन है कि deadline
शेड्यूलर्स (दोनों विरासत एक, और blk-mq एक) भी नहीं करते हैं।
यदि आप इस प्रोग्राम को अपने स्वयं के प्रोग्राम के लिए करना चाहते हैं, या अन्य प्रक्रियाओं के लिए चीजों को समायोजित करना चाहते हैं, तो sched_setscheduler
और ioprio_set
सिस्टम कॉल के लिए मैन पेज देखें (हालाँकि यदि आप अभी और भी पृष्ठभूमि चाहते हैं तो दोनों पढ़ने लायक हैं)।