วิธีทำให้ `apt-get upgrade` ใช้ทรัพยากรน้อยลง


26

เมื่อฉันเรียกใช้sudo apt-get upgradeแพคเกจจำนวนมากบนแล็ปท็อปต่ำสุดของฉันฉันได้รับการชะลอตัวของระบบที่สังเกตได้บางครั้งอาจมีการหยุดหน้าจอนานถึง 3 วินาที

มีวิธีการทำเครื่องหมายงานนี้ว่ามีลำดับความสำคัญต่ำมากหรือไม่เช่นใช้ CPU, MEM และ HDD น้อยมาก? ฉันไม่สนใจจริงๆว่าจะใช้apt-get upgradeเวลานานกว่าสองชั่วโมงในการทำให้เสร็จฉันต้องการทำงานต่อไปโดยไม่หยุดชะงักระหว่างการอัพเกรด

คำตอบ:


26

คำสั่งที่niceสามารถใช้ในการจัดการกระบวนการCPU ลำดับความสำคัญของการจัดตารางเวลา คำสั่งกำหนดค่า "niceness" จาก -20 (สำคัญที่สุด) ถึง +19 (สำคัญน้อยที่สุด) ให้กับกระบวนการ รูทสามารถกำหนดค่าใด ๆ ได้ผู้ใช้รายอื่นจะเป็นเพียงค่าบวก (มีความสำคัญเล็กน้อย) ค่าเริ่มต้นคือ 0

nice -n <niceness> <command>

ในการตั้งค่าลำดับความสำคัญของคำสั่ง apt-get ให้มีค่าน้อยที่สุดคุณสามารถใช้คำสั่ง

sudo nice -n 19 apt-get upgrade

หากต้องการตั้งค่าลำดับความสำคัญของกระบวนการที่กำลังทำงานอยู่reniceสามารถใช้คำสั่งได้:

renice -n <niceness> -p <pid>

แก้ไข: ขอบคุณที่ @ David สำหรับการกล่าวขวัญioniceคำสั่งซึ่งช่วยให้คุณจัดการดิสก์ I / O ที่มีความสำคัญ มันสามารถนำกระบวนการไปสู่คลาสที่แตกต่างกันสามคลาส:

  • ไม่ได้ใช้งานจะให้เวลาดิสก์กระบวนการเท่านั้นหากไม่มีกระบวนการอื่นอ้างสิทธิ์ในขณะนั้น
  • สุดยอดความพยายาม (คลาสเริ่มต้น) สิ่งนี้ช่วยให้คุณกำหนดลำดับความสำคัญจาก 0 ถึง 7 โดยที่ 0 สำคัญที่สุดและ 7 อย่างน้อยที่สุด คุณอาจลองกำหนด-n 7เป็นระดับความสำคัญ
  • กระบวนการแบบเรียลไทม์ได้รับการจัดการก่อนทุกอย่างอื่นระงับดิสก์ I / O สำหรับกระบวนการอื่นทันทีที่ต้องการด้วยตนเอง ใช้ด้วยความระมัดระวัง!

IOnice รวมไวยากรณ์ของ nice และ renice:

ionice [-c class] [-n level] command             #To start a new process
ionice [-c class] [-n level] -p pid              #To change a running process

ทั้งสองคำสั่งสามารถรวมกันได้เช่น

sudo ionice -n 7 nice -n 19 apt-get upgrade      #Omitting the -c switch will assign Best-effort
sudo nice -n 19 ionice -n 7 apt-get upgrade
nice -n 19 ionice -n 7 sudo apt-get upgrade
...

6
ฉันประหลาดใจที่นี่มี upvotes มากมาย apt-get upgrade IO ถูกผูกไว้!
Joshua

3
แล้วไงioniceล่ะ
David LeBauer

1
ดังนั้นเพื่อชี้แจงsudoในคำสั่งของคุณไม่ได้สำหรับniceแต่สำหรับapt-getตัวเอง ดูเหมือนว่าnice -n 19 sudo apt-get upgradeยังใช้งานได้สำหรับฉัน มีความแตกต่างที่สำคัญหรือไม่?
wchargin

1
@WChargin sudo nice apt-getทำงานได้ดีเหมือนรูทและจะช่วยให้การตั้งค่าลำดับความสำคัญต่ำกว่า 0 apt-get จะยังคงทำงานเหมือนรูท nice sudo apt-getจะทำงานได้ดีในฐานะผู้ใช้ปัจจุบันและอนุญาตเฉพาะลำดับความสำคัญที่สูงกว่าหรือเท่ากับ 0 apt-get เท่านั้นที่จะเริ่มต้นเป็นรูต
s3lph

1
@ David ฉันเพิ่ม ionice ให้กับคำตอบของฉัน
s3lph
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.