क्या मैक ओएस एक्स में एक प्रक्रिया की प्राथमिकता निर्धारित करने का कोई तरीका है?


48

मेरे पास मैक ओएस एक्स पर 100% सीपीयू में एक पृष्ठभूमि प्रक्रिया चल रही है। अन्य सभी एप्लिकेशन इसकी वजह से बहुत धीमी हैं।

मैं इस प्रक्रिया को 50% से अधिक नहीं लेना चाहता / चाहती ताकि मेरे आवेदन बेहतर तरीके से चल सकें। मैं यह कैसे कर सकता हूँ?

जवाबों:


48

कमांड लाइन से ( Terminal.appया जो भी) उपयोग करें niceऔर renice, अन्य यूनिक्स की तरह।

niceप्रक्रिया शुरू करते समय उपयोग करें :

nice -n <priority> <command> <arguments to command>

डिफ़ॉल्ट प्राथमिकता शून्य है, सकारात्मक मूल्य "अच्छे" (कि कम प्राथमिकता है) और नकारात्मक मूल्य "कम अच्छा" (उच्च प्राथमिकता) हैं। ऐसा लगता है कि मैक ओएस +10 से -10 तक चलता है।

reniceपहले से चल रही प्रक्रिया ( renice10.5 पर मैन पेज से) की प्राथमिकता बदलने के लिए उपयोग करें :

renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]  
renice -n increment [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

जिस हिस्से में आप रुचि रखते हैं वह pidबिट है। यह नौकरी के लिए प्रक्रिया आईडी है और आप इसे ps -u <your username>प्रक्रिया नाम का उपयोग करके देख सकते हैं , लेकिन मैं top -oइस मामले में पसंद करता हूं , क्योंकि आप जिस प्रक्रिया में रुचि रखते हैं वह शीर्ष के पास होगी।

नोट: सुपरसुसर विशेषाधिकारों के बिना आप किसी प्रक्रिया की प्राथमिकता कभी नहीं बढ़ा सकते। सामान्य उपयोगकर्ताओं के लिए, niceऔर reniceएक तरह से सड़कें हैं। और प्राथमिकता में छोटे बदलावों से चल रहे समय पर बड़े प्रभाव पड़ सकते हैं। इसलिए इस पर आसानी से चलें जब तक आप इसे समझ न लें।


और मैं पहले से ही चल रही प्रक्रिया के साथ कैसे कर सकता हूं? यह 2 घंटे के लिए चल रहा है और मैं इसे फिर से शुरू नहीं करना चाहता और अपनी 2 घंटे की प्रोसेसिंग ढीली कर रहा हूं
डैनियल कुकियर

15

आप कमांड का उपयोग कर सकते हैं:

renice -n # PID

कहाँ पे:

  • # एक संख्या है जो 0 से बड़ी होनी चाहिए (अन्यथा आप अपनी प्रक्रिया को उच्च प्राथमिकता पर ले जाएंगे)
  • PID वह प्रक्रिया आईडी है जिसे आप topटर्मिनल ऐप पर टाइप करके देख सकते हैं (उपयोगिताओं / Terminal.app)

यदि यह एक सिस्टम प्रक्रिया या कोई अन्य उपयोगकर्ता प्रक्रिया है, तो आपको टाइप करना चाहिए:

sudo renice -n 10 PID

यह आपसे आपका पासवर्ड मांगेगा (यदि आप sudoer हैं)। संख्या के लिए मैं 10 या 19 (यहां तक ​​कि कम प्राथमिकता) की सिफारिश करूंगा।

ध्यान दें कि यह प्राथमिकता बदल देगा CPU उपयोग नहीं। यदि आप ऐसी अन्य प्रक्रियाएँ नहीं चला रहे हैं जिनमें CPU की आवश्यकता है या आपके Mac (Core 2 Quad Core) पर एक से अधिक CPU हैं तो प्रक्रिया अभी भी CPU का 100% उपयोग कर सकती है।


6
renice 20 $(pgrep ImageOptim)

या ImageOptim के बजाय अपने प्रोग्राम के नाम का उपयोग करें


1
इसके अतिरिक्त, उपयोग renice -20एक प्रक्रिया को सर्वोच्च संभव प्राथमिकता देता है, उदाहरण के लिए जब ऑक्टेव जैसे बड़े कार्यक्रम को संकलित करता है। renice 20एक प्रक्रिया को सबसे कम प्राथमिकता देता है।
nyxee

5

मुफ्त बीएनसर और प्रोसेस विजार्ड (मेरे पिछले पसंदीदा), और फ्रीज़र के $ 1.99 संस्करण की तरह जीयूआई उपयोगिताएं भी हैं , जो मेरा नया पसंदीदा है। ये सभी रनिंग एप्लिकेशन पर काम करते हैं।


3
BeNicer और प्रोसेस विजार्ड दोनों पॉवरपीसी ऐप्स हैं और OSX के हालिया संस्करणों पर नहीं चलेंगे
arolson101

क्या फ्रीज़र अभी भी नए OS रिलीज़ पर काम कर रहा है?
जपना

कृपया दूसरे विकल्प के लिए मेरे उत्तर की जाँच करें, AppPolice
जैकोकेन सेप

2
  • यदि आपकी प्रक्रिया एक प्रणाली प्रक्रिया के बजाय एक ऐप या ऐप सहायक है, और आप नहीं करना चाहते हैं niceया reniceहर सिस्टम बूट पर आप इसे AppPolice को एक शॉट दे सकते हैं । यह खुला स्रोत और मुफ्त है। आप इसे यहाँ डाउनलोड कर सकते हैं

  • एक अन्य विकल्प एक बहुत अच्छा कमांड लाइन कार्य प्रबंधक जीयूआई कहा जाएगा htop। आप सभी प्रक्रियाओं को देख सकते हैं और उनके niceमूल्यों F7और और F8शॉर्टकटों को ट्यून कर सकते हैं । (कृपया ध्यान दें कि niceसकारात्मक मूल्यों के लिए नकारात्मक मूल्य अधिक प्राथमिकता और विपरीत हैं)

इसे स्थापित करने के लिए:

  • यदि आपके पास अभी तक यह नहीं है तो होमब्रे को स्थापित करें ।
  • इस कमांड brew install htopको टर्मिनल में चलाएं
  • अब आप htopटर्मिनल में प्रक्रियाओं को देखने या प्रबंधित sudo htopकरने या सभी सिस्टम को कवर करने के लिए कर सकते हैं।

0

आप एप्लिकेशन के लिए PLIST फ़ाइल में चर का उपयोग करके स्थायी रूप से डेमन के लिए अच्छा मूल्य (प्राथमिकता) निर्धारित कर सकते हैं। यह जानने के लिए कि टर्मिनल विंडो में MAN प्लिस्ट कैसे टाइप करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.