Trong khi thử nghiệm một số mã tự động hóa gia đình trên Raspberry Pi của tôi, tôi nhận thấy rằng nó khá tốn CPU. Đã đến lúc tăng cường ép xung để đạt được hiệu suất cao hơn từ bộ xử lý Broadcom Arm7. Tôi muốn theo dõi nhiệt độ cũng như độ ổn định khi đầy tải nên tôi cần mô phỏng mức sử dụng CPU
Tập lệnh Python nhỏ này sẽ thực hiện công việc. Nó sử dụng thư viện đa xử lý mà bạn có thể đọc thêm tại đây
Trong bài viết này, chúng tôi đã phát triển tập lệnh Python để nhận Mức sử dụng CPU và RAM trên hệ thống bằng thư viện psutil. Chúng tôi mở rộng nó để nhận mức sử dụng CPU và RAM cho từng quy trình và cho từng lõi
Mục lụcSau đây là danh sách những gì chúng ta sẽ đạt được trong bài viết này
- Giới thiệu về thư viện
4 trong python,mkdir ./system-resource-viewer && cd ./system-resource-viewer
- In mức sử dụng CPU tổng thể bằng cách sử dụng
4,mkdir ./system-resource-viewer && cd ./system-resource-viewer
- In mức sử dụng RAM tổng thể bằng cách sử dụng
4,mkdir ./system-resource-viewer && cd ./system-resource-viewer
- Nhận mức sử dụng tài nguyên cho từng quy trình riêng lẻ,
- Nhận mức sử dụng CPU cho từng cá nhân
7mkdir ./system-resource-viewer && cd ./system-resource-viewer
mkdir ./system-resource-viewer && cd ./system-resource-viewer
4mkdir ./system-resource-viewer && cd ./system-resource-viewer
4 là một thư viện trong python cho phép nhà phát triển xem việc sử dụng tài nguyên cho hệ thống máy tính. Nó cung cấp một số chức năng và lớp khác nhau để thực hiện nhiệm vụ phân tích việc sử dụng tài nguyên của hệ thống dễ dàng hơnCài đặt
Để cài đặt thư viện
mkdir ./system-resource-viewer && cd ./system-resource-viewer
4, đầu tiên chúng ta cần New-Item -Type Directory -Path .\system-resource-viewer
Set-Location .\system-resource-viewer
1 cùng với New-Item -Type Directory -Path .\system-resource-viewer
Set-Location .\system-resource-viewer
2 để cài đặt và sử dụng các gói pythoncác cửa sổ
Cài đặt python khá dễ dàng trên
New-Item -Type Directory -Path .\system-resource-viewer
Set-Location .\system-resource-viewer
3. Bản cài đặt New-Item -Type Directory -Path .\system-resource-viewer
Set-Location .\system-resource-viewer
4 có sẵn từ Microsoft Store. Nếu bạn muốn cài đặt tùy chỉnh, bạn có thể theo liên kết nàyLinux
Trên
New-Item -Type Directory -Path .\system-resource-viewer
Set-Location .\system-resource-viewer
5, bạn có thể sử dụng một trong các trình quản lý gói để cài đặt riêng cả python và python-pipTrên Debian/Ubuntu chạy
mkdir ./system-resource-viewer && cd ./system-resource-viewer
2Trên Arch và các công cụ phái sinh chạy
mkdir ./system-resource-viewer && cd ./system-resource-viewer
3Bạn có thể tham khảo tài liệu của Hệ điều hành tương ứng để biết thêm chi tiết
Khi cả
New-Item -Type Directory -Path .\system-resource-viewer
Set-Location .\system-resource-viewer
1 và New-Item -Type Directory -Path .\system-resource-viewer
Set-Location .\system-resource-viewer
2 đã được cài đặt, bây giờ chúng ta có thể bắt đầu làm việc với tập lệnh của mình. Đầu tiên chúng ta sẽ tạo một môi trường ảo mới. Điều này là để đảm bảo rằng các phần phụ thuộc mà chúng tôi cài đặt cho tập lệnh của mình không xung đột với các phần phụ thuộc được cài đặt trên toàn cầuĐầu tiên chúng ta sẽ tạo một thư mục dự án mới cho dự án của chúng ta
- Trên các hệ thống dựa trên
5New-Item -Type Directory -Path .\system-resource-viewer Set-Location .\system-resource-viewer
mkdir ./system-resource-viewer && cd ./system-resource-viewer
- Trên Windows
9New-Item -Type Directory -Path .\system-resource-viewer Set-Location .\system-resource-viewer
New-Item -Type Directory -Path .\system-resource-viewer
Set-Location .\system-resource-viewer
Bây giờ chúng ta sẽ tạo môi trường ảo mới
mkdir ./system-resource-viewer && cd ./system-resource-viewer
0Để kích hoạt môi trường ảo mới của bạn, hãy sử dụng một trong các lệnh sau, tùy thuộc vào shell của bạn,
PowerShell.
00mkdir ./system-resource-viewer && cd ./system-resource-viewer
Bash.
01mkdir ./system-resource-viewer && cd ./system-resource-viewer
Cá.
02mkdir ./system-resource-viewer && cd ./system-resource-viewer
Khi môi trường ảo đã được kích hoạt, lời nhắc của bạn sẽ có hậu tố là tên của môi trường ảo, trong trường hợp của chúng tôi, đó là
mkdir ./system-resource-viewer && cd ./system-resource-viewer
03. Lời nhắc của bạn phải có hậu tố như vậyĐể hủy kích hoạt môi trường ảo, bây giờ chúng ta chỉ cần chạy lệnh
mkdir ./system-resource-viewer && cd ./system-resource-viewer
04 và bạn sẽ thấy rằng hậu tố mkdir ./system-resource-viewer && cd ./system-resource-viewer
05 đã bị xóa. Bây giờ chúng ta hãy quay lại môi trường ảo mới được tạoCách cài đặt
mkdir ./system-resource-viewer && cd ./system-resource-viewer
4 chúng tôi sẽ sử dụng ________ 207. mkdir ./system-resource-viewer && cd ./system-resource-viewer
07 là trình quản lý gói python giúp việc cài đặt các gói và thư viện python dễ dàng hơn. Để cài đặt mkdir ./system-resource-viewer && cd ./system-resource-viewer
4 chạy lệnh saumkdir ./system-resource-viewer && cd ./system-resource-viewer
1Đây phải là đầu ra dự kiến,
Khi
mkdir ./system-resource-viewer && cd ./system-resource-viewer
4 đã được cài đặt, chúng tôi sẽ tạo một tệp mới, sử dụng trình soạn thảo văn bản yêu thích của bạn. Tôi sẽ sử dụng mkdir ./system-resource-viewer && cd ./system-resource-viewer
11, một bản dựng mã nguồn mở của mkdir ./system-resource-viewer && cd ./system-resource-viewer
12 mà không cần đo từ xaTrước tiên, chúng tôi sẽ bắt đầu bằng cách nhập mô-đun
mkdir ./system-resource-viewer && cd ./system-resource-viewer
4 mới được cài đặt, như vậymkdir ./system-resource-viewer && cd ./system-resource-viewer
6Để liệt kê tổng mức sử dụng bộ xử lý tại thời điểm này, chúng tôi sẽ sử dụng chức năng
mkdir ./system-resource-viewer && cd ./system-resource-viewer
14 như vậymkdir ./system-resource-viewer && cd ./system-resource-viewer
8Những gì chúng tôi đã làm ở đây là chúng tôi đã gọi hàm
mkdir ./system-resource-viewer && cd ./system-resource-viewer
14 từ mô-đun mkdir ./system-resource-viewer && cd ./system-resource-viewer
4, với một đối số tùy chọn mkdir ./system-resource-viewer && cd ./system-resource-viewer
17 yêu cầu hàm "chặn" trong 1 giây. Điều này cho phép một kết quả chính xác hơn. Nếu bạn chạy hàm mà không có đối số tùy chọn này, nó vẫn sẽ trả về giá trị [nhanh hơn so với mkdir ./system-resource-viewer && cd ./system-resource-viewer
18] nhưng sẽ không chính xác hơnĐể có được mức sử dụng lõi riêng lẻ, chúng ta có thể sử dụng cùng chức năng sau với đối số tùy chọn
mkdir ./system-resource-viewer && cd ./system-resource-viewer
19 được đặt thành mkdir ./system-resource-viewer && cd ./system-resource-viewer
60, như vậymkdir ./system-resource-viewer && cd ./system-resource-viewer
5Đây là đầu ra khi chạy trên hệ thống của tôi,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
6Ghi chú. Số lượng lõi có thể khác nhau đối với hệ thống của bạn tùy thuộc vào bộ xử lý bạn có thể đã cài đặt trên hệ thống của mình
Để có được mức sử dụng RAM tổng thể, chúng ta sẽ sử dụng một hàm khác có tên là
mkdir ./system-resource-viewer && cd ./system-resource-viewer
61, Nó trả về một mkdir ./system-resource-viewer && cd ./system-resource-viewer
62, chúng ta có thể gọi hàm như vậymkdir ./system-resource-viewer && cd ./system-resource-viewer
30Để có được thông tin chi tiết đầy đủ về bộ nhớ hệ thống của bạn, bạn có thể chạy đoạn mã sau,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
31Điều này sẽ tạo ra đầu ra sau đây,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
32Bây giờ chúng ta đã học cách sử dụng
mkdir ./system-resource-viewer && cd ./system-resource-viewer
4 để hiển thị mức sử dụng hệ thống tổng thể. nhưng những gì về mỗi quá trình cá nhân? . Hãy để chúng tôi thử nó ra,Đầu tiên, chúng tôi sẽ lấy
mkdir ./system-resource-viewer && cd ./system-resource-viewer
66 của phiên bản python, tiếp theo, chúng tôi sẽ thử liệt kê các thuộc tính cho phiên bản này. Để có được mkdir ./system-resource-viewer && cd ./system-resource-viewer
66 của phiên bản python đang chạy của chúng tôi, chúng tôi cần sử dụng một thư viện khác có tên là mkdir ./system-resource-viewer && cd ./system-resource-viewer
68. May mắn thay, cái này được cài đặt sẵn với python. Vì vậy, chúng ta có thể bắt tay ngay vào công việc. Hãy để chúng tôi bắt đầu bằng cách nhập chức năng cần thiết từ thư viện,mkdir ./system-resource-viewer && cd ./system-resource-viewer
33Hàm
mkdir ./system-resource-viewer && cd ./system-resource-viewer
69 sẽ trả về cho chúng tôi mkdir ./system-resource-viewer && cd ./system-resource-viewer
66 của phiên bản python hiện tại của chúng tôi. Chúng tôi có thể sử dụng mkdir ./system-resource-viewer && cd ./system-resource-viewer
66 này để lấy các thuộc tính của quy trình của chúng tôimkdir ./system-resource-viewer && cd ./system-resource-viewer
34Điều này sẽ tạo ra một đầu ra tương tự như cái này,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
35Đầu ra có thể thay đổi mỗi khi chúng tôi chạy chương trình vì không có quy trình nào trên hệ thống của chúng tôi sử dụng một lượng tài nguyên hệ thống cố định
Chúng tôi đã học được rằng chúng tôi có thể nhận được mức sử dụng hệ thống của từng quy trình riêng lẻ, nhưng làm thế nào để chúng tôi có được các thuộc tính quy trình của tất cả các quy trình hiện đang chạy trong hệ thống của chúng tôi?
Để trả lời điều này, chúng tôi sẽ sử dụng phương pháp
mkdir ./system-resource-viewer && cd ./system-resource-viewer
82. Như tên gợi ý, hàm này trả về cho chúng tôi một danh sách mkdir ./system-resource-viewer && cd ./system-resource-viewer
83 các quy trình hiện đang hoạt độngVí dụ: tập lệnh sau sẽ trả về cho chúng tôi tên của các quy trình hiện đang chạy trên hệ thống của chúng tôi,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
36Vì đầu ra của mã này sẽ khá lớn nên tôi chỉ có thể hiển thị một đoạn mã để trình diễn,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
37Hãy để chúng tôi thử lấy các thuộc tính của các quy trình của chúng tôi, vì điều đó chúng tôi sẽ sử dụng tập lệnh sau,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
38Chúng tôi sẽ nhận được một đầu ra tương tự như cái này,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
39Nhưng rồi bất ngờ, chúng tôi gặp phải lỗi này,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
0Điều này xảy ra do một trong những quy trình được tạo trong danh sách trên
mkdir ./system-resource-viewer && cd ./system-resource-viewer
84 đã bị chấm dứt trước khi chúng tôi xem xét nó. Để ngăn chặn điều này, trước tiên chúng tôi cần xác minh rằng quy trình mkdir ./system-resource-viewer && cd ./system-resource-viewer
66 hợp lệ khi chúng tôi đang cố gắng tra cứu các thuộc tính của quy trình. Chúng tôi có thể sử dụng chức năng sau mkdir ./system-resource-viewer && cd ./system-resource-viewer
86, điều này sẽ cho phép chúng tôi nhận các quy trình hợp lệ trong danh sách đã tạo ở trên và sau đó hy vọng không gặp phải sự cố này. Ngoài ra, chúng tôi có thể in bộ nhớ quy trình được quy trình sử dụng trước khi chúng tôi in mức sử dụng CPU của nó, để khoảng thời gian chặn của nó có thể không ảnh hưởng đến kết quả của chúng tôi. Kịch bản mới của chúng tôi sẽ xuất hiện như thế nàymkdir ./system-resource-viewer && cd ./system-resource-viewer
1Bây giờ chúng tôi có thể kiểm tra nó và thấy rằng nó sẽ không gây ra bất kỳ lỗi nào trong hầu hết thời gian
Chúng tôi luôn cần đảm bảo rằng quy trình chúng tôi đang kiểm tra có tồn tại, Ngay cả sau khi kiểm tra xem quy trình có tồn tại hay không, rất có thể quy trình đó có thể kết thúc trước khi chúng tôi đạt được bất kỳ câu lệnh in nào ở trên, điều đó .
Tập lệnh mới của chúng tôi hiện có thể ở dạng này,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
2Và đầu ra của chúng ta sẽ tương tự như thế này,
mkdir ./system-resource-viewer && cd ./system-resource-viewer
3Bây giờ chúng ta sẽ biết quy trình nào đã bị chấm dứt và tạo một tập lệnh linh hoạt in các thuộc tính của tất cả các quy trình
ghi chú kết thúcmkdir ./system-resource-viewer && cd ./system-resource-viewer
4 cung cấp cho nhà phát triển tính linh hoạt cực cao và khả năng xem và giám sát tài nguyên hệ thống cũng như các quy trình. Nó cho phép nhiều chức năng hơn, chẳng hạn như tắt một quy trình, gửi tín hiệu đến các quy trình, những điều không được thảo luận trong bài viết này tại OpenGenus