খুব কম অগ্রাধিকারে লিনাক্স প্রক্রিয়া চালাবেন?


12

আমার নিয়মিত প্রক্রিয়া রয়েছে যা এত গুরুত্বপূর্ণ নয় তবে এত বেশি সিপিইউ শক্তি গ্রহণ করবে এবং আমার আরও একটি প্রক্রিয়া রয়েছে যা সত্যিই গুরুত্বপূর্ণ তবে এটি বেশিরভাগ সময় অলস সময় ব্যয় করে তবে যখন এটি একটি চাকরি পেয়েছে তখন এটি সত্যই উচ্চ কম্পিউটিং পাওয়ার প্রয়োজন need

আমি চেষ্টা চালিয়েছি nice -20 ./low_priority_processএবং nice --20 ./high_priority_processতবুও উচ্চতর অগ্রাধিকার প্রক্রিয়াটি যখন প্রয়োজন হয় তখনও কম অগ্রাধিকার সিপিইউতে উল্লেখযোগ্য পরিমাণে গ্রাস করে, আমি কীভাবে এমন একটি প্রক্রিয়া চালাতে পারি যা সত্যিকার অর্থে উত্পন্ন হবে এমনকি সিপিইউ শক্তি ব্যবহার করার সময় অন্য স্বয়ংক্রিয়-স্থগিতকরণ কীভাবে করতে পারি?


আপনি কীভাবে নির্ধারণ করছেন যে উচ্চ অগ্রাধিকার প্রক্রিয়াটি আসলে প্রয়োজন?
মুরু

এটি প্রচুর থ্রেড
ছড়িয়ে দেবে

ব্যবহার করুন RRউচ্চ অগ্রাধিকার প্রক্রিয়ার জন্য সময় নির্ধারণ।
রমেশ

@ রমেশ এই সম্ভাব্য পার্থক্যটি কীভাবে তৈরি করবে?
কেন শার্প

উত্তর:


10

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

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


1
প্রক্রিয়ার সিগ্রুপকে সংশোধন করার মতো cpulimitবা আদেশ আছে niceকি? কারণ আমি যদি সিগ্রুপ একটি এপিআই কল হয় তবে আমি
সিগ্রুপ

না, আপনি কেবল কোথাও সিগ্রুপ শ্রেণিবদ্ধতা মাউন্ট করেছেন, প্রতি-গ্রুপ ডিরেক্টরি তৈরি এবং কিছু ফাইলে প্রসেসের পিআইডি লিখবেন। এগুলি সবই রুট হিসাবে করতে হবে (বা, আরও উপযুক্তভাবে উপযুক্ত সুবিধাগুলি সহ)। কিছু init সিস্টেম (যথা: systemdকিছু ক্ষেত্রে কমপক্ষে) সিগ্রুপ ইন্টারফেসটি "চুরি" করে তাদের ব্যবহারকারীদের কাছ থেকে যেগুলি init সিস্টেম ইন্টারফেস ব্যবহার করতে হয় (সাধারণত একটি বিশেষ কমান্ড)। লিঙ্কিত উত্তর এবং উইকিপিডিয়া নিবন্ধ পড়ুন। সত্যিই। :)
পিটারফ

ওহ, এবং এছাড়াও libcgroupপ্যাকেজ রয়েছে, যা ডিমন ( cgrulesengd) সহ সিগ্রুপের সাথে কাজ করার জন্য ইউটিলিটিগুলির সাথে আসে যা কিছু শর্তের উপর নির্ভর করে প্রক্রিয়াগুলিকে গ্রুপে ভাগ করতে পারে।
পিটার্ফ

7

যদি প্রক্রিয়াটির অগ্রাধিকার (সুন্দর মান) কম হয় তবে এটি উচ্চতর অগ্রাধিকার প্রক্রিয়াটিতে বাধা সৃষ্টি করবে না। কারণ উচ্চ অগ্রাধিকার প্রক্রিয়া নয় কারণ আপনি কম অগ্রাধিকার প্রক্রিয়া দেখছি এখনো CPU- র একটি উল্লেখযোগ্য পরিমাণ গ্রাসকারী যখন উচ্চ অগ্রাধিকার প্রক্রিয়া চলমান হয় যে ব্যস্ত। সম্ভবত আইওয়ের জন্য অপেক্ষা করছি। (আমরা এখানে লিনাক্সের বিষয়ে কথা বলছি) ধরে নেওয়ার chrt -p -i 0 $PIDচেয়ে আরও কম অগ্রাধিকারে প্রক্রিয়াটি চালানোর জন্য ব্যবহার করুন nice 19 -p $PID

chrt -p -i 0 $PID প্রক্রিয়াটিকে "সত্য" অলস শিডিয়ুলারের মধ্যে রাখে।

http://linux.die.net/man/1/chrt


2
chrt -p -i 0 $ পিআইডি
রবার্ট ফস

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

0

নিম্ন প্রক্রিয়া হিসাবে একটি প্রক্রিয়া চালানোর জন্য এই উদাহরণ চেষ্টা করুন।

আপনি যদি কাজ করেন তবে ভাল xvf asets.zip

ব্যবহার

দুর্দান্ত টার এক্সভিএফ অ্যাসেটস.জিপ

তার পরে, ইস্যু

উপরের সাথে প্রক্রিয়াটি আনজিপ নিরীক্ষণ

পিএস অক্স | গ্রেপ "তার"

সঙ্গে কিছু নির্দিষ্ট করার চেষ্টা করুন cpulimit

wget -O cpulimit.zip https://github.com/opsengine/cpulimit/archive/master.zip
unzip cpulimit.zip
cd cpulimit-master
make
sudo cp src/cpulimit /usr/bin

সিপুলিমিট-এল 50 অজগর 0 9999999999> / দেব / নাল এবং


হ্যাঁ -20"নিম্ন অগ্রাধিকার" এবং কমান্ডের --20জন্য ডাবল ড্যাশকে "উচ্চ অগ্রাধিকার" দেখায় nice। এবং হ্যাঁ আমি ভাল মান সম্পর্কে পুরোপুরি বুঝতে পেরেছি, তবে আমার প্রশ্নটি হল, সুন্দর মান ব্যবহার করা ছাড়া শিডিয়ুলারকে বলার উপায় আছে কি
ইউরে

2
@ ব্যবহারকারী 77710 আপনি কি নিশ্চিত? আমরাও উবুন্টু র manpage কিংবা POSIX র manpage এই সিনট্যাক্স উল্লেখ করুন। উভয় ব্যবহার -n -20, -n 20ইত্যাদি
muru

হ্যাঁ যাই হোক না কেন, সিনট্যাক্সটি গুরুত্বপূর্ণ নয়, আমার বক্তব্যটি খুব কম এবং খুব উচ্চ মানের উভয় প্রক্রিয়ার জন্য খুব ভাল মান স্থির করে যা আমি চেয়েছিলাম ফলাফল দেয় না
ইউরে

2
@ ব্যবহারকারী 77710 কি? "সিনট্যাক্স গুরুত্বপূর্ণ নয়"? আপনি কীভাবে নিশ্চিত হতে পারেন যে আপনি তখন কমনীয়তার মান নির্ধারণ করছেন?
মুরু

কারন আমি উপর প্রক্রিয়া চমৎকার মান দেখতে পারেন htopবা topবা psবা যাই হোক না কেন
uray

-1

ভবিষ্যতের আগতদের জন্য, এখানে চাপnice সহ একটি সম্পূর্ণ উদাহরণ ।

  1. পরীক্ষার মেশিনটিতে 2 টি সিপিইউ রয়েছে
$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2 
On-line CPU(s) list: 0,1
Thread(s) per core:  2
...
  1. ইনস্টল করুন stress:apt-get install stress
  2. স্ট্রেসে নিম্ন-অগ্রাধিকারের কল দিয়ে 2 সিপিইউগুলিকে ব্যস্ত করুন: nice -20 stress --cpu 2
  3. এর সাথে সিপিইউ ব্যবহার পরীক্ষা করুন top:
                                                 v
                                                 v
                                                 v
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                   
15894 ubuntu    39  19    8240     96      0 R  99.7  0.0   0:06.43 stress                                                                                    
15895 ubuntu    39  19    8240     96      0 R  99.7  0.0   0:06.42 stress                                                                                    

এটি দেখায় যে উভয় সিপিইউ পুরোপুরি দখল করে আছে।

  1. উচ্চ অগ্রাধিকার সহ একক সিপিইউ স্ট্রেস প্রক্রিয়া চালু করুন: nice --20 stress --cpu 1
  2. এর সাথে আবার সিপিইউ ব্যবহার পরীক্ষা করুন top
                                                 v
                                                 v
                                                 v
                                                 v
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                   
15928 ubuntu    20   0    8240    100      0 R  99.7  0.0   0:24.02 stress                                                                                    
15894 ubuntu    39  19    8240     96      0 R  51.2  0.0   1:12.46 stress                                                                                    
15895 ubuntu    39  19    8240     96      0 R  48.8  0.0   1:12.35 stress                                                                                    

এটি দেখায় যে একক-কোর স্ট্রেস প্রক্রিয়াটি তার সম্পূর্ণ সিপিইউ পায়, যখন নিম্ন-অগ্রাধিকার প্রক্রিয়া উভয়ই বাকি 1 সিপিইউ ভাগ করে

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