Linux là một hệ điều hành rất ổn định với các tính năng bảo mật mạnh mẽ. Trong một số trường hợp, chúng ta có thể cần quan sát hiệu suất của hệ thống, có thể là do một số trục trặc kỹ thuật hoặc như một phần của quá trình kiểm tra sức khỏe định kỳ. Đo lường hiệu suất giúp chúng ta có cái nhìn sâu sắc nhanh chóng về tình trạng hoạt động của hệ thống, ví dụ: nhật ký hiệu suất có thể cho chúng ta biết những quy trình nào đang chạy, lượng bộ nhớ đang sử dụng, lượng CPU đang được sử dụng, v.v. Thông tin này cũng giúp chúng ta đưa ra quyết định liên quan đến việc lập kế hoạch tài nguyên hiệu quả, gỡ lỗi các sự cố hệ thống, v.v. Hầu hết các bản phân phối Linux đều cung cấp các công cụ dòng lệnh và đồ họa để thực hiện nhiệm vụ này. Một số trong số này được cung cấp sẵn với hệ điều hành và một số có thể cần phải cài đặt. Các công cụ này được phân loại thành công cụ giám sát thời gian thực hoặc công cụ dựa trên nhật ký.
Các công cụ giám sát thời gian thực, đúng như tên gọi của nó, cung cấp thông tin về hệ thống ở trạng thái hiện tại. Kết quả được cập nhật liên tục.
Các công cụ dựa trên nhật ký lưu trữ kết quả hiệu suất trong một tệp có thể được truy xuất sau đó để xử lý, phân tích hoặc làm việc với ứng dụng khác.
Chúng ta cũng có thể chọn các cột để hiển thị trong đầu ra 'top' bằng cách nhập 'f' trong khi 'top' đang chạy. Trên màn hình mới, chọn hoặc bỏ chọn bất kỳ cột nào bằng cách nhấn 'phím cách' hoặc 'd' rồi nhấn 'esc' để quay lại. Trong hình bên dưới, chúng tôi đã xóa một số cột và thêm một cột mới (GID):
Để điều chỉnh các thiết lập khác nhau, Htop sử dụng các phím chức năng. Ví dụ: F3 có thể được sử dụng để tìm kiếm đầu ra được hiển thị trên bảng điều khiển. Để liệt kê các tiến trình do một người dùng cụ thể sở hữu, lệnh sử dụng là:
Đối với người dùng root, lệnh sẽ là:
Để khởi động Htop ở chế độ đơn sắc, hãy sử dụng:
Để hiển thị tất cả các tiến trình đang chạy, bao gồm cả những tiến trình do người dùng khác sở hữu (chủ sở hữu), hãy sử dụng lệnh:
Vì chúng ta đã sử dụng tùy chọn ‘u’, tên của người dùng cũng sẽ được hiển thị. Một cách khác để hiển thị danh sách các tiến trình đang chạy trên hệ thống là sử dụng lệnh:
Bạn có thể nhận thấy rằng đầu ra của lệnh 'ps' thường lớn. Để đơn giản hóa công việc phân tích hoặc lọc, chúng ta có thể sử dụng lệnh 'grep'. Ví dụ: để lọc các quy trình '/usr/lib/firefox/firefox', hãy sử dụng:
Tương tự, chúng ta có thể chuyển hướng đầu ra đến một tệp thay vì hiển thị nó trên thiết bị đầu cuối. Sau đây là một ví dụ:
Lệnh trên sẽ chuyển hướng đầu ra đến một tệp 'output.txt'.
Sử dụng tùy chọn ‘-a’ sẽ cung cấp cho bạn bộ nhớ hệ thống đang hoạt động và không hoạt động. Giống như lệnh ‘ps’, đầu ra của ‘vmstat’ thay đổi tùy theo nền tảng. Chúng ta cũng có thể chỉ định số lượng phép đo:
Tham số đầu tiên ‘1’ chỉ định tốc độ lấy mẫu và tham số thứ hai ‘4’ cung cấp số lượng phép đo sẽ được hiển thị trong đầu ra.
Đây là một thảo luận ngắn gọn về bốn công cụ dựa trên dòng lệnh thường được sử dụng và có sẵn trên hầu hết các bản phân phối dựa trên Linux. Vẫn còn nhiều công cụ khác để sử dụng. Mỗi công cụ đều có ưu và nhược điểm riêng và việc lựa chọn một công cụ cụ thể phụ thuộc vào mục đích ứng dụng. Chúng tôi chỉ mới đề cập sơ qua để cung cấp cái nhìn tổng quan về các công cụ này, bạn có thể tìm thêm thông tin và tùy chọn để sử dụng bằng cách tham khảo các trang hướng dẫn.
Các công cụ giám sát thời gian thực, đúng như tên gọi của nó, cung cấp thông tin về hệ thống ở trạng thái hiện tại. Kết quả được cập nhật liên tục.
Các công cụ dựa trên nhật ký lưu trữ kết quả hiệu suất trong một tệp có thể được truy xuất sau đó để xử lý, phân tích hoặc làm việc với ứng dụng khác.
Chúng ta sẽ làm gì ở đây?
Trong hướng dẫn này, chúng tôi sẽ trình bày một số công cụ dựa trên dòng lệnh thường được sử dụng để giám sát hiệu suất hệ thống. Chúng tôi sử dụng hệ điều hành Ubuntu 20.04 cho hướng dẫn này, mặc dù các công cụ chúng tôi sẽ thảo luận đều có sẵn cho hầu hết các bản phân phối dựa trên Linux.Tại sao lại dùng CLI?
Một câu hỏi hiển nhiên có thể nảy sinh trong đầu là tại sao chúng ta lại quan tâm nhiều hơn đến các công cụ dựa trên dòng lệnh. Lý do đầu tiên là bạn không phải lúc nào cũng may mắn khi có được môi trường đồ họa để hoạt động, ví dụ như hệ thống bạn đang làm việc có thể là máy chủ sản xuất từ xa và không có giao diện đồ họa. Nếu trong một khoảnh khắc bạn có một hệ thống cục bộ, bạn có thể không có quyền cài đặt giao diện đồ họa trên đó. Một lý do khác là với giao diện dòng lệnh, chúng ta có cơ hội thực hiện đa nhiệm. Tmux là một ứng dụng như vậy, từ đó chúng ta có thể giám sát nhiều hệ thống cùng một lúc.1. Đầu trang
Lệnh này hiển thị tóm tắt trạng thái hệ thống theo thời gian thực. Đầu ra hiển thị lượng bộ nhớ hệ thống (RAM) được sử dụng cho các mục đích khác nhau, phần trăm CPU được sử dụng, bộ nhớ hoán đổi và thông tin khác. Thống kê quy trình về bộ nhớ và mức sử dụng CPU cũng được hiển thị chỉ bằng cách chạy lệnh top mà không có bất kỳ tùy chọn nào:Chúng ta cũng có thể chọn các cột để hiển thị trong đầu ra 'top' bằng cách nhập 'f' trong khi 'top' đang chạy. Trên màn hình mới, chọn hoặc bỏ chọn bất kỳ cột nào bằng cách nhấn 'phím cách' hoặc 'd' rồi nhấn 'esc' để quay lại. Trong hình bên dưới, chúng tôi đã xóa một số cột và thêm một cột mới (GID):
2. Htop
Lệnh Htop hiển thị dữ liệu theo cách cung cấp nhiều thông tin và tương tác hơn. Tên quy trình mô tả nhiều hơn và tích hợp chuột là một tính năng bổ sung không có trong lệnh 'top'. Chúng ta có thể sử dụng chuột để chọn các cột khác nhau được hiển thị trên đầu ra của thiết bị đầu cuối. Một lợi ích khác là nó cung cấp mã màu để dễ dàng nắm bắt và phân tích đầu ra. ‘Htop’ có thể được cài đặt trên Ubuntu 20.04 bằng lệnh:
Mã:
$ sudo apt install htop
Mã:
$ htop -u User_Name
Mã:
$ htop -u root
Để khởi động Htop ở chế độ đơn sắc, hãy sử dụng:
Mã:
$ htop -C
4. ps
Việc triển khai lệnh ‘ps’ khác nhau đáng kể giữa các hệ thống Unix khác nhau, ví dụ: nó có thể sử dụng một cờ (tùy chọn) trên một hệ thống và một cờ khác cho một hệ thống khác mặc dù đầu ra có thể giống nhau trong cả hai trường hợp. Trong trường hợp lệnh ‘ps’, đầu ra là tĩnh không giống như ‘top’ và ‘htop’, nơi chúng ta nhận được các bản cập nhật theo thời gian thực. Khi không có tùy chọn nào được truyền, lệnh ‘ps’ trả về tên của shell đang hoạt động và các tiến trình cuối cùng.Để hiển thị tất cả các tiến trình đang chạy, bao gồm cả những tiến trình do người dùng khác sở hữu (chủ sở hữu), hãy sử dụng lệnh:
Mã:
$ ps aux
Vì chúng ta đã sử dụng tùy chọn ‘u’, tên của người dùng cũng sẽ được hiển thị. Một cách khác để hiển thị danh sách các tiến trình đang chạy trên hệ thống là sử dụng lệnh:
Mã:
$ ps -A
Mã:
$ ps aux | grep '/usr/lib/firefox/firefox/
Tương tự, chúng ta có thể chuyển hướng đầu ra đến một tệp thay vì hiển thị nó trên thiết bị đầu cuối. Sau đây là một ví dụ:
Mã:
$ ps -aux > output.txt
4. Vmstat
Trình báo cáo bộ nhớ ảo hoặc vmstat thu thập dữ liệu về CPU, bộ nhớ ảo (swapd), khối I/O, đĩa, v.v. Trong trường hợp không sử dụng tùy chọn nào, nó sẽ hiển thị thông tin trung bình về các tham số này. Giá trị trung bình được lấy từ lần khởi động lại hệ thống gần nhất. Chúng ta có thể chỉ định tốc độ lấy mẫu sau đó dữ liệu sẽ được hiển thị trên thiết bị đầu cuối:
Mã:
$ vmstat 2
Mã:
$ vmstat 1 4
Tham số đầu tiên ‘1’ chỉ định tốc độ lấy mẫu và tham số thứ hai ‘4’ cung cấp số lượng phép đo sẽ được hiển thị trong đầu ra.
Kết luận
Đây là một thảo luận ngắn gọn về bốn công cụ dựa trên dòng lệnh thường được sử dụng và có sẵn trên hầu hết các bản phân phối dựa trên Linux. Vẫn còn nhiều công cụ khác để sử dụng. Mỗi công cụ đều có ưu và nhược điểm riêng và việc lựa chọn một công cụ cụ thể phụ thuộc vào mục đích ứng dụng. Chúng tôi chỉ mới đề cập sơ qua để cung cấp cái nhìn tổng quan về các công cụ này, bạn có thể tìm thêm thông tin và tùy chọn để sử dụng bằng cách tham khảo các trang hướng dẫn.