Auto Nice Daemon นั้นเก่าแก่ และการเปลี่ยนลำดับความสำคัญของซอฟต์แวร์ด้วยตนเองนั้นเป็นเรื่องที่น่ารำคาญ มีวิธีที่ทันสมัยในการควบคุมจำนวนทรัพยากรที่แต่ละโปรแกรมควรใช้หรือไม่ พบกับ Ananicy (Auto NICe daemon อีกตัวหนึ่ง) ซึ่งเป็นโซลูชัน auto-nice ที่ทันสมัย ซึ่งคุณสามารถสร้างโปรไฟล์สำหรับซอฟต์แวร์ของคุณเพื่อจัดลำดับความสำคัญของแอปที่คุณสนใจ มาดูกันว่าคุณจะทำอย่างไร
การติดตั้ง
Ananicy ต้องการ systemd เพื่อทำงาน ดังนั้นจึงไม่เข้ากันได้กับทุกการกระจายภายใต้ดวงอาทิตย์ หากต้องการติดตั้งบน Ubuntu, Mint, Debian และดิสทริบิวชันที่เข้ากันได้ ให้ใช้:
git clone https://github.com/Nefelim4ag/Ananicy.git ./Ananicy/package.sh debian sudo dpkg -i ./Ananicy/ananicy-*.deb
หากคุณใช้ Arch, Manjaro หรือรุ่นอื่นที่คล้ายคลึงกัน คุณสามารถติดตั้งโดยใช้:
git clone https://github.com/Nefelim4ag/Ananicy.git /tmp/ananicy cd /tmp/ananicy sudo make install
Ananicy ยังอาศัย schedtool
ดังนั้น หากยังไม่ได้ติดตั้ง อย่าลืมเพิ่มสิ่งนี้ด้วย คุณสามารถทำได้ในการกระจายที่เข้ากันได้กับ Debian และ Arch-compatible ตามลำดับด้วย:
# Debian/Ubuntu sudo apt install schedtool # Arch Linux sudo pacman -S schedtool
เมื่อตั้งค่าทุกอย่างแล้ว ให้เปิดใช้งาน daemon เพื่อให้มีการใช้งานตลอดเวลาและตรวจสอบแอปพลิเคชันของคุณ:
sudo systemctl enable ananicy
ในการเริ่มใช้งานจริง ให้ใช้:
sudo systemctl start ananicy
หากคุณอยู่ในระบบที่ใช้พลังงานต่ำ ซึ่งซอฟต์แวร์ทุกชิ้นกำลังต่อสู้เพื่อทรัพยากร ซอฟต์แวร์อาจเริ่มตอบสนองได้ดีขึ้นในทันที
ตรวจสอบค่าที่ตั้งไว้ล่วงหน้า
Ananicy มาพร้อมกับกฎเกณฑ์มากมายสำหรับแอปพลิเคชันยอดนิยมมากมาย หากต้องการตรวจสอบ ให้เปิดเครื่องเทอร์มินัลที่คุณชื่นชอบและไปที่ไดเร็กทอรีกฎของ Ananicy:
cd /etc/ananicy.d/00-default/
กฎสำหรับแต่ละแอปพลิเคชันจะถูกเก็บไว้ในไฟล์แยกกัน ตัวอย่างเช่น หากต้องการตรวจสอบกฎที่ตั้งไว้ล่วงหน้าสำหรับไคลเอนต์แชร์ไฟล์ qBittorrent ยอดนิยม คุณสามารถใช้:
sudo nano qBittorrent.rules
คุณสามารถใช้สิ่งเหล่านี้เป็นฐานสำหรับกฎของคุณเองได้
เพิ่มกฎของคุณเอง
ในการสร้างกฎสำหรับแอปพลิเคชัน คุณควรทราบชื่อกระบวนการ โชคดีที่บน Linux นั้นมักจะเหมือนกับชื่อแอปพลิเคชัน คุณสามารถใช้ top
คำสั่งตรวจสอบชื่อกระบวนการ
ค้นหากระบวนการที่ใช้คอมพิวเตอร์ของคุณและจดชื่อไว้ ลองใช้แอพ timeshift เป็นตัวอย่างกันเถอะ
สร้างไฟล์ข้อความใหม่ในไดเร็กทอรีกฎของ Ananicy จะดีกว่าถ้าคุณใช้ชื่อแอปพลิเคชันเพื่อการอ้างอิงในอนาคตที่ง่ายขึ้น ตรวจสอบให้แน่ใจว่าไฟล์ของคุณลงท้ายด้วย “.rules” เพื่อให้ Ananicy รับรู้ว่าเป็นไฟล์กฎ
sudo nano timeshift.rules
วิธีที่ง่ายที่สุดในการสร้างกฎสำหรับซอฟต์แวร์คือการระบุชื่อและจำแนกประเภทเท่านั้น Ananicy มาพร้อมกับประเภทที่กำหนดไว้ล่วงหน้าสำหรับเกม แอปมัลติมีเดีย โปรแกรมแก้ไขเอกสาร ฯลฯ หากต้องการตรวจสอบ ให้ใช้คำสั่ง:
ananicy dump types
แต่ละค่านั้นมาพร้อมกับค่า nice, ionice, cgroup และค่าอื่นๆ ที่แตกต่างกัน แต่ขอแนะนำว่าอย่าไปมากไปกว่าการปรับแต่งค่าที่ดีของแอปพลิเคชัน อย่างไรก็ตาม สำหรับแอปพลิเคชันที่อ่านและเขียนข้อมูลจำนวนมากไปยังที่จัดเก็บข้อมูลของคุณ การกำหนดลำดับความสำคัญของอินพุต-เอาต์พุตโดยใช้พารามิเตอร์ ioclass ก็คุ้มค่าเช่นกัน
เมื่อคำนึงถึงสิ่งนี้ เราพร้อมที่จะสร้างกฎที่เรากำหนดเอง:
{ "name": "timeshift", "type": "BG_CPUIO", "nice": 17, "ioclass": "idle" }
กฎข้างต้น:
- ระบุชื่อแอปพลิเคชัน
- กำหนดประเภท
- กำหนดลำดับความสำคัญที่ดีที่แตกต่างออกไปเมื่อเทียบกับค่าที่ตั้งไว้ล่วงหน้า
- ตั้งค่าลำดับความสำคัญของอินพุต/เอาต์พุตเป็นแบบไม่ได้ใช้งาน
ในทางทฤษฎี คุณจะต้องระบุชื่อแอปพลิเคชันเท่านั้น และอย่างอื่นเป็นตัวเลือก ในทางปฏิบัติ หากคุณทำอย่างนั้น Ananicy จะรับรู้เพียงการมีอยู่ของแอปแต่จะไม่พยายามควบคุมมัน เพื่อที่คุณจะต้องกำหนดประเภทของมันอย่างน้อย
ประเภทของมันมาพร้อมกับค่าดีและอินพุต/เอาท์พุตที่กำหนดไว้ล่วงหน้าที่แตกต่างกัน และคุณอาจพบค่าที่ตรงกับวิธีที่คุณต้องการจำกัดซอฟต์แวร์ แม้ว่าในบางครั้ง เช่นในกรณีของเราเกี่ยวกับการเปลี่ยนเวลา คุณอาจต้องการปรับแต่งเพิ่มเติม เมื่อนั้นคุณจะต้องระบุอย่างชัดเจนถึงค่า nice หรือ ioclass ที่คุณต้องการ ถ้ามันแตกต่างจากค่าที่รวมอยู่ในค่าที่ตั้งไว้ล่วงหน้าประเภทของ Ananicy
BG_CPUIO
ค่าที่ตั้งไว้ล่วงหน้าที่เราเลือกนั้นตรงกับประเภทแอปพลิเคชันของเรา เนื่องจากเป็นโซลูชันสำรอง โดยปกติแล้วจะทำงานในพื้นหลัง แต่อาจกินรอบการประมวลผลจำนวนมากในขณะที่ดำเนินการอ่านและเขียนอย่างต่อเนื่อง อย่างไรก็ตาม ค่าที่ตั้งไว้ล่วงหน้าของ BG_CPUIO จะกำหนดค่า nice และ ionice ให้ต่ำที่สุดเท่าที่จะเป็นไปได้ ซึ่งอาจทำให้กระบวนการสำรองข้อมูลใช้เวลานาน ด้วยเหตุนี้ เราจึงเพิ่มค่าที่ดีเป็น 17 และ ioclass อย่างเต็มประสิทธิภาพ เพื่อทำให้กระบวนการเร็วขึ้นบ้าง
ลองมาดูตัวอย่างอื่น Batman:DLC "Joker's Carnival" ของ Arkham City เป็นหนึ่งในเกมที่ฉันโปรดปราน การทำงานของมันขึ้นอยู่กับการเคลื่อนไหวที่ลื่นไหล และฉันก็รู้สึกว่ามันกระตุกใน Linux Mint เมื่อใดก็ตามที่ซอฟต์แวร์อีกชิ้นทำงานอยู่เบื้องหลัง ดังนั้น สำหรับสิ่งนี้ ฉันต้องการทำสิ่งที่ตรงกันข้าม – เพิ่มลำดับความสำคัญเหนือสิ่งอื่นใด
การตรวจสอบระบบของ Linux Mint หลังจากเปิดเกมผ่าน Steam ด้วย Proton เราจะเห็นชื่อกระบวนการเป็น “BatmanAC.exe” เพื่อเพิ่มประสิทธิภาพของ Ananicy ฉันได้สร้างกฎใหม่ที่เรียกว่า “BatmanAC_ody.rules” เหมือนเมื่อก่อน อย่างไรก็ตาม ในกรณีนี้ เนื้อหามีดังนี้:
{ "name": "BatmanAC.exe", "type": "Game"}
นั่นก็เพียงพอแล้วเนื่องจากประเภท "เกม" มีค่า "-5" ที่ดี โดยจัดลำดับความสำคัญของแอปเหนือสิ่งอื่นใด ดังนั้น คุณจึงไม่ต้องระบุคุณค่าที่ดีด้วยตนเองหรือสร้างกฎที่ซับซ้อนกว่านี้
รีสตาร์ทหนึ่งครั้งในภายหลัง เพื่อการวัดผลที่ดี และ Ananicy จะทำงาน พร้อมที่จะเริ่มดำเนินการเพื่อปรับแต่งลำดับความสำคัญของซอฟต์แวร์ของคุณ ค่าที่คุณเห็นสำหรับกระบวนการ BatmanAC.exe ในภาพหน้าจอด้านล่างถูกกำหนดโดยอัตโนมัติ โดยไม่ต้องให้ผู้ใช้ดำเนินการใดๆ
โปรดทราบว่าคุณไม่จำเป็นต้องทำเช่นนี้สำหรับซอฟต์แวร์ทั้งหมดของคุณ แต่การดึงบังเหียนในกระบวนการพื้นหลังที่มีความต้องการมากที่สุดและส่งเสริมการโต้ตอบมากขึ้นสามารถสร้างโลกแห่งความแตกต่างในการใช้งานคอมพิวเตอร์ของคุณ สามารถลดการพูดติดอ่างและให้ประสบการณ์ที่ราบรื่นยิ่งขึ้น
คุณใช้ Ananicy หรือโซลูชันอื่นที่คล้ายคลึงกันซึ่งช่วยให้คุณควบคุมวิธีการกำหนดทรัพยากรของคอมพิวเตอร์ให้กับแอปของคุณได้อย่างไร คุณกำลังปรับปรุงซอฟต์แวร์ของคุณด้วยตนเองหรือไม่? บอกเราในส่วนความคิดเห็นด้านล่าง