Cách tăng tốc độ khởi động Linux đơn giản nhất: Tắt các service không cần thiết

Ngày càng nhiều hệ điều hành trở nên cồng kềnh với rất nhiều service chạy ngầm. Mặc dù chúng có thể không sử dụng nhiều thời gian CPU, nhưng chúng làm tăng thời gian khởi động và mức sử dụng RAM. May mắn thay, các hệ điều hành mã nguồn mở cho phép bạn làm những gì mình muốn. Điều này có nghĩa là bạn có thể vô hiệu hóa hoặc xóa bất cứ thứ gì mình không cần. Bài viết hôm nay sẽ hướng dẫn bạn cách vô hiệu hóa các service không cần thiết để cải thiện thời gian khởi động Linux.

Lưu ý: Bài viết hướng dẫn bạn cách vô hiệu hóa các service chứ không phải xóa chúng. Vô hiệu hóa các service có ít rủi ro gây hỏng hóc vĩnh viễn hơn. Và bạn có thể quay lại trạng thái ban đầu bằng cách chỉ cần kích hoạt lại một service nếu nhận thấy một chức năng hữu ích nào đó ngừng hoạt động.

Phân tích thời gian load của từng service

Hầu hết các hệ điều hành dựa trên Linux đều sử dụng Systemd theo mặc định. Trong số các tiện ích mà nó bao gồm, có một chương trình cho phép bạn phân tích tốc độ khởi động hệ thống của mình. Cụ thể, nó hiển thị cho bạn tổng thời gian cần thiết để khởi động và thời gian load của từng service. Lưu ý rằng một số service được load song song. Vì vậy, nếu một service cần 2 giây để load và service khác cần 3 giây, điều đó không nhất thiết có nghĩa là tổng cộng cần 5 giây. Thời gian có thể ít hơn nhiều.

Mở trình giả lập terminal và nhập lệnh này:

systemd-analyze
Phân tích thời gian khởi động của Ubuntu bằng Systemd
Phân tích thời gian khởi động của Ubuntu bằng Systemd

Lệnh này cho thấy thời gian cần thiết để Linux kernel và các service hệ thống cốt lõi khởi tạo. Nó không tính đến thời gian cần thiết để các hình ảnh động trên màn hình hoặc các ứng dụng người dùng hoàn tất quá trình load.

Tuy nhiên, bạn có thể xem thời gian cần thiết để giao diện đồ họa khởi tạo bằng lệnh này:

systemd-analyze critical-chain graphical.target
Phân tích thời gian đồ họa quan trọng trên Ubuntu bằng Systemd
Phân tích thời gian đồ họa quan trọng trên Ubuntu bằng Systemd

Lệnh này cho thấy chuỗi các service dẫn đến việc đạt được mục tiêu đồ họa. Mặc dù hữu ích, nhưng điều này thể hiện một cột mốc kỹ thuật chứ không phải là thời điểm desktop hoàn toàn ở trạng thái rảnh rỗi, vì một số thành phần nền có thể tiếp tục load sau đó.

Lưu ý: Các chương trình tự động khởi chạy trong môi trường desktop thường được quản lý thông qua cài đặt tự động khởi động dành riêng cho desktop hoặc những service người dùng systemd.

Cuối cùng, có lẽ lệnh hữu ích nhất cho mục đích của hướng dẫn này là:

systemd-analyze blame
Hiển thị danh sách các service được sắp xếp theo thời gian khởi động
Hiển thị danh sách các service được sắp xếp theo thời gian khởi động

Bạn có thể điều hướng danh sách bằng các phím mũi tên hoặc PAGE UPPAGE DOWN. Nhấn q để thoát.

Sử dụng Systemctl để vô hiệu hóa các service không cần thiết

Như bạn có thể thấy trong hình ảnh trước đó, một số service như snapd mất vài giây để load. Trên SSD, điều này là không đáng kể. Nhưng trên ổ cứng truyền thống, những khoảng thời gian này sẽ lên đến vài giây, và cuối cùng chúng sẽ tích lũy lại rất nhiều.

Giả sử bạn không cần service snapd, service cung cấp quyền truy cập vào các ứng dụng snap được đóng gói trong container. Bạn có thể vô hiệu hóa nó bằng lệnh này:

sudo systemctl disable snapd.service

Sau khi khởi động lại, bạn vẫn có thể thấy snapd khởi động trong một số điều kiện nhất định. Điều này xảy ra vì snapd sử dụng kích hoạt socket, cho phép nó khởi động theo yêu cầu ngay cả khi bản thân service đã bị vô hiệu hóa.

Bạn có thể xác định các đơn vị liên quan bằng:

systemd-analyze blame | grep snap
Hiển thị các dependency có thể khởi chạy ngay cả khi bị vô hiệu hóa
Hiển thị các dependency có thể khởi chạy ngay cả khi bị vô hiệu hóa

Điều này giúp bạn xác định các đơn vị liên quan đến Snap nào đang góp phần vào hoạt động khởi động.

Xử lý các service được kích hoạt bằng socket

Một số service, bao gồm snapd, sử dụng kích hoạt socket. Điều này có nghĩa là service vẫn có thể khởi động khi có thứ gì đó cố gắng giao tiếp với nó, ngay cả khi nó bị vô hiệu hóa.

Nếu snapd tiếp tục xuất hiện sau khi khởi động lại, các đơn vị liên quan như snapd.socket hoặc snapd.seeded.service có thể là nguyên nhân. Trong những trường hợp như vậy, việc che giấu service và socket của nó sẽ hiệu quả hơn:

sudo systemctl mask snapd.service
sudo systemctl mask snapd.socket

Việc che giấu sẽ chặn hoàn toàn service để các dependency hoặc socket không thể khởi động nó. Tuy nhiên, hãy sử dụng phương pháp này một cách cẩn thận, đặc biệt là trên các bản phân phối dựa vào những gói Snap để cập nhật hệ thống hoặc ứng dụng.

Ngoài ra, hãy cẩn thận đừng nhầm lẫn giữa "vô hiệu hóa" và "ẩn" trong ngữ cảnh này. Vô hiệu hóa một service sẽ báo cho systemd không tự động khởi động nó. Ẩn còn tiến xa hơn bằng cách ngăn service khởi động hoàn toàn. Trong hầu hết các trường hợp, việc vô hiệu hóa là đủ. Ẩn (masking) hữu ích cho những service cứ khởi động lại liên tục hoặc rõ ràng là không cần thiết trên hệ thống.

Hơn nữa, tùy thuộc vào cấu hình, bạn có thể tìm thấy thêm các service khác mà bạn có thể vô hiệu hóa một cách an toàn, chẳng hạn như:

avahi-daemon.service
ModemManager.service
thermald.service

Tuy nhiên, hãy đảm bảo bạn luôn nghiên cứu kỹ một service trước khi vô hiệu hóa nó. Những gì không cần thiết trên desktop có thể lại rất cần thiết trên máy tính xách tay hoặc máy chủ.

Thứ Sáu, 06/02/2026 07:30
51 👨 2
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
    ❖ Linux