ระบบปฏิบัติการจำนวนมากขึ้นเรื่อยๆ เต็มไปด้วยบริการมากมายที่ทำงานอยู่เบื้องหลัง แม้ว่าอาจใช้เวลา CPU ไม่มาก แต่ก็เพิ่มเวลาบูตและการใช้งาน RAM โชคดีที่ระบบปฏิบัติการโอเพ่นซอร์สให้อำนาจและอิสระแก่คุณในการทำตามที่เห็นสมควร ซึ่งหมายความว่าคุณสามารถปิดการใช้งานหรือลบสิ่งที่คุณไม่ต้องการได้ ที่นี่เราจะแสดงวิธีปิดการใช้งานบริการที่ไม่จำเป็นเพื่อปรับปรุงเวลาบูต Linux ของคุณ
หมายเหตุ :เราจะแสดงวิธีปิดการใช้งานบริการแทนที่จะลบออก การปิดใช้งานบริการมีความเสี่ยงน้อยกว่าที่จะทำลายสิ่งต่าง ๆ อย่างถาวร และคุณสามารถกลับไปเป็นเหมือนเดิมได้เพียงเปิดใช้บริการอีกครั้ง หากคุณสังเกตเห็นว่าบางสิ่งที่มีประโยชน์หยุดทำงาน
สารบัญ
วิเคราะห์เวลาที่ใช้ในการโหลดแต่ละบริการ
ระบบปฏิบัติการบน Linux ส่วนใหญ่ใช้ Systemd เป็นค่าเริ่มต้น ในบรรดาชุดยูทิลิตี้ที่มีให้ มีโปรแกรมที่ให้คุณวิเคราะห์ความเร็วของการบูทระบบของคุณ โดยเฉพาะจะแสดงเวลาทั้งหมดที่ต้องใช้ในการบูตและเวลาที่ใช้ในการโหลดแต่ละบริการ โปรดทราบว่าบริการบางอย่างโหลดพร้อมกัน ดังนั้น หากอันหนึ่งต้องใช้เวลาสองวินาทีในการโหลดและอีกสามวินาทีที่เหลือ ก็ไม่ได้หมายความว่าต้องใช้เวลาทั้งหมดห้าวินาทีเสมอไป อาจจะน้อยกว่านั้นมาก
เปิดโปรแกรมจำลองเทอร์มินัลแล้วป้อนคำสั่งนี้:
systemd-analyze
ข้อมูลนี้แสดงระยะเวลาที่ใช้ในการเริ่มต้นบริการเคอร์เนล Linux และบริการระบบหลัก ไม่ได้คำนึงถึงเวลาที่ต้องใช้สำหรับภาพเคลื่อนไหวบนเดสก์ท็อปหรือแอปพลิเคชันของผู้ใช้ในการโหลดให้เสร็จสิ้น
อย่างไรก็ตาม คุณสามารถดูเวลาที่อินเทอร์เฟซแบบกราฟิกต้องการเพื่อเริ่มต้นด้วยคำสั่งนี้:
systemd-analyze critical-chain graphical.target
นี่แสดงห่วงโซ่การบริการที่นำไปสู่เป้าหมายแบบกราฟิกที่กำลังเข้าถึง แม้ว่าสิ่งนี้จะมีประโยชน์ แต่สิ่งนี้แสดงถึงเหตุการณ์สำคัญทางเทคนิคมากกว่าช่วงเวลาที่เดสก์ท็อปไม่ได้ใช้งานโดยสมบูรณ์ เนื่องจากส่วนประกอบพื้นหลังบางส่วนอาจโหลดต่อในภายหลัง
หมายเหตุ :โดยทั่วไปโปรแกรมที่เริ่มทำงานโดยอัตโนมัติภายในสภาพแวดล้อมเดสก์ท็อปจะได้รับการจัดการผ่านการตั้งค่าการเริ่มอัตโนมัติเฉพาะเดสก์ท็อปหรือบริการผู้ใช้ของระบบ
สุดท้ายนี้ คำสั่งที่มีประโยชน์ที่สุดสำหรับจุดประสงค์ของบทช่วยสอนนี้คือ:
systemd-analyze blame
คุณสามารถนำทางรายการด้วยปุ่มลูกศรหรือ PAGE UP และ PAGE DOWN กด q เพื่อออก
ใช้ Systemctl เพื่อปิดใช้งานบริการที่ไม่จำเป็น
ดังที่คุณเห็นในภาพก่อนหน้า บริการบางอย่างเช่น 05 ใช้เวลาโหลดหลายวินาที บน SSD นี่เป็นเรื่องเล็กน้อย แต่สำหรับฮาร์ดดิสก์แบบเดิม เวลาประเภทนี้จะอยู่ในลำดับหลายวินาที และจะรวมกันเป็นจำนวนมากในตอนท้าย
สมมติว่าคุณไม่จำเป็นต้องใช้บริการ snapd ซึ่งให้การเข้าถึง snaps ของแอปพลิเคชันที่มีคอนเทนเนอร์ คุณสามารถปิดการใช้งานได้ด้วยคำสั่งนี้:
sudo systemctl disable snapd.service หลังจากรีบูตเครื่อง คุณอาจยังคงเห็นการสตาร์ทแบบ snapd ภายใต้เงื่อนไขบางประการ สิ่งนี้เกิดขึ้นเนื่องจาก snapd ใช้การเปิดใช้งานซ็อกเก็ต ทำให้สามารถเริ่มต้นได้ตามความต้องการแม้ว่าจะปิดการใช้งานบริการก็ตาม
คุณสามารถระบุหน่วยที่เกี่ยวข้องได้ด้วย:
systemd-analyze blame | grep snap
สิ่งนี้ช่วยให้คุณระบุได้ว่าหน่วยที่เกี่ยวข้องกับ Snap ใดที่มีส่วนร่วมในกิจกรรมเริ่มต้น
การจัดการกับบริการที่เปิดใช้งานซ็อกเก็ต
บริการบางอย่าง รวมถึง snapd ใช้การเปิดใช้งานซ็อกเก็ต ซึ่งหมายความว่าบริการยังคงสามารถเริ่มต้นได้เมื่อมีบางสิ่งพยายามสื่อสารกับบริการ แม้ว่าจะถูกปิดใช้งานก็ตาม
หาก snapd ยังคงปรากฏหลังจากการรีบูต หน่วยที่เกี่ยวข้อง เช่น 14 หรือ 22รหัส> อาจจะต้องรับผิดชอบ ในกรณีเช่นนี้ การมาสก์บริการและซ็อกเก็ตจะมีประสิทธิภาพมากกว่า:
sudo systemctl mask snapd.service
sudo systemctl mask snapd.socket การปิดบังจะบล็อกบริการทั้งหมด ดังนั้นการขึ้นต่อกันหรือซ็อกเก็ตจึงไม่สามารถเริ่มทำงานได้ อย่างไรก็ตาม ใช้แนวทางนี้อย่างระมัดระวัง โดยเฉพาะอย่างยิ่งในการแจกจ่ายที่ต้องอาศัยแพ็คเกจ Snap สำหรับการอัปเดตระบบหรือแอปพลิเคชัน
นอกจากนี้ โปรดระวังอย่าสับสนระหว่าง "ปิดใช้งาน" กับ "การมาสก์" ในบริบทนี้ การปิดใช้งานบริการจะบอก systemd ว่าอย่าเริ่มบริการโดยอัตโนมัติ การมาสก์ดำเนินต่อไปอีกขั้นด้วยการป้องกันไม่ให้บริการเริ่มต้นเลย ในสถานการณ์ส่วนใหญ่ การปิดใช้งานก็เพียงพอแล้ว การมาสก์มีประโยชน์สำหรับบริการที่รีสตาร์ทอย่างดื้อรั้นหรือไม่จำเป็นอย่างชัดเจนในระบบของคุณ
นอกจากนี้ คุณอาจพบบริการเพิ่มเติมที่คุณสามารถปิดใช้งานได้อย่างปลอดภัย ขึ้นอยู่กับการตั้งค่าของคุณ เช่น:
avahi-daemon.service
ModemManager.service
thermald.service อย่างไรก็ตาม ตรวจสอบให้แน่ใจว่าคุณได้ศึกษาบริการก่อนปิดใช้งานเสมอ สิ่งที่ไม่จำเป็นบนระบบเดสก์ท็อปอาจจำเป็นบนแล็ปท็อปหรือเซิร์ฟเวอร์
ความคิดสุดท้าย
การปิดใช้งานบริการที่ไม่จำเป็นสามารถลดเวลาบูตและเพิ่มทรัพยากรระบบได้ โดยเฉพาะบนระบบที่ใช้ฮาร์ดไดรฟ์แบบเดิม แม้แต่ในระบบที่ใช้ SSD สมัยใหม่ การตัดบริการที่ไม่ได้ใช้ออกไปก็ช่วยให้ระบบของคุณสะอาดและมีประสิทธิภาพ
นอกจากนี้ ยังมีเครื่องมือกราฟิก เช่น Stacer สำหรับจัดการบริการ แต่มักมีการควบคุมที่จำกัดหรือฟังก์ชันการทำงานที่ล้าสมัย เพื่อการจัดการที่สม่ำเสมอและแม่นยำในการกระจายต่างๆ เครื่องมือบรรทัดคำสั่ง systemctl ยังคงเป็นตัวเลือกที่น่าเชื่อถือที่สุด