Hệ thống Linux mất bao lâu để khởi động?

Khi bạn khởi động, hệ thống sẽ chuyển qua một chuỗi các sự kiện trước khi hiển thị cho bạn màn hình đăng nhập. Bạn đã bao giờ kiểm tra hệ thống của mình mất bao lâu để khởi động chưa? Nói chung, tất cả xảy ra trong vài giây hoặc vài phút nhưng bạn không biết chính xác thời gian là bao lâu.

Đôi khi do một số lý do, bạn có thể được yêu cầu tìm thời gian chính xác hệ thống cần để khởi động. Bất kể lý do tại sao bạn muốn biết điều đó, có một tiện ích phân tích hệ thống có thể cho bạn biết chính xác thời gian hệ thống Linux cần để khởi động.

Trong bài viết này, bạn sẽ tìm hiểu hệ thống Linux mất bao lâu để khởi động và cách giảm thời gian này nếu nó khởi động chậm.

Systemd-analyzelà gì?

Systemd-analyze là một công cụ có thể được sử dụng để tìm hiểu số liệu thống kê về lần khởi động cuối cùng của hệ thống. Với công cụ systemd-analyze, bạn có thể tìm thấy thông tin về thời gian hệ thống boot cũng như thời gian khởi động của mỗi unit (đơn vị). May mắn thay, bạn không cần cài đặt công cụ này, vì nó là một công cụ hệ thống được tích hợp sẵn. Bạn có thể xác minh nó bằng lệnh sau trong Terminal:

$ which systems-analyze

Đầu ra sẽ hiển thị đường dẫn đầy đủ của lệnh thực thi.

Tìm thời gian hệ thống cần để khởi động

Để tìm thời gian hệ thống cần để khởi động, chỉ cần nhập system-analyze mà không có bất kỳ đối số dòng lệnh nào trong Terminal:

$ systemd-analyze

Khi bạn thực thi lệnh trên, công cụ systemd-analyze sẽ tính toán thời gian hệ thống thực hiện cho đến khi khởi động xong, chia nhỏ thành kernel và userspace.

Công cụ systemd-analyze sẽ tính toán thời gian hệ thống khởi động
Công cụ systemd-analyze sẽ tính toán thời gian hệ thống khởi động

Như bạn có thể thấy trong ảnh chụp màn hình ở trên, tổng thời gian khởi động của hệ thống trong ví dụ là 32,378 giây và được chia nhỏ thành:

  • Kernel: 6,074 giây
  • Userspace: 26,304 giây

Khắc phục sự cố khởi động chậm

Nếu thời gian khởi động cao hơn, bạn cần tìm ra service nào đang làm chậm quá trình boot. Bạn có thể tìm thấy nó bằng cách sử dụng lệnh systemd-analyze. Lệnh này liệt kê tất cả các service đang chạy bắt đầu vào thời điểm khởi động cùng với thời gian chúng sử dụng. Với thông tin này, bạn có thể tối ưu hóa thời gian khởi động của hệ thống.

Đưa ra lệnh sau trong Terminal để tìm ra service nào gây ra quá trình khởi động chậm:

$ sudo systemd-analyze blame
Lệnh liệt kê các service được bắt đầu tại thời điểm khởi động cùng với thời gian khởi tạo mỗi service
Lệnh liệt kê các service được bắt đầu tại thời điểm khởi động cùng với thời gian khởi tạo mỗi service

Lệnh này liệt kê các service được bắt đầu tại thời điểm khởi động cùng với thời gian khởi tạo mỗi service. Danh sách được sắp xếp theo theo thứ tự thời gian giảm dần.

Danh sách có thể khá dài, nhưng thông thường, 10 mục đầu tiên là đủ để tìm thấy các service tiêu tốn nhiều thời gian. Do đó, hãy chuyển đầu ra của lệnh trên sang lệnh head như sau:

$ sudo systemd-analyze blame | head
10 mục đầu tiên có thể cho bạn câu trả lời
10 mục đầu tiên có thể cho bạn câu trả lời

Bạn cũng có thể xuất kết quả đầu ra dưới dạng cây cho chuỗi sự kiện quan trọng liên quan đến thời gian. Đưa ra lệnh sau trong Terminal để thực hiện việc này:

$ systemd-analyze critical-chain

Trong đầu ra, bạn sẽ thấy một chuỗi sự kiện được sắp xếp theo thời gian (khi service bắt đầu hoạt động) theo thứ tự giảm dần. Giá trị sau ký tự “@” trong mỗi sự kiện là thời gian service bắt đầu hoạt động. Trong khi giá trị sau ký tự “+” trong mỗi đơn vị hiển thị thời gian bắt đầu service.

Bạn cũng có thể xuất kết quả đầu ra dưới dạng cây
Bạn cũng có thể xuất kết quả đầu ra dưới dạng cây

Với kết quả nhận được từ các lệnh trên, bạn có thể dễ dàng tìm ra service nào mất nhiều thời gian hơn để khởi động và khiến hệ thống khởi động chậm. Hãy bắt đầu từ trên cùng và tắt các service mất nhiều thời gian khởi động (miễn là chúng không bắt buộc khi boot). Bên cạnh đó, hãy tắt tất cả các service tốn ít thời gian nhưng không cần thiết khi khởi động vì chúng cũng ảnh hưởng đến thời gian khởi động hệ thống.

Để tắt bất kỳ service nào, hãy sử dụng cú pháp sau:

$ sudo systemctl disable service-name

Xem thêm:

Thứ Năm, 24/09/2020 17:09
52 👨 922
0 Bình luận
Sắp xếp theo