Tôi có một công việc cron rsync đang đẩy tải máy chủ và kích hoạt cảnh báo màn hình. Nếu tôi đặt công việc được chạy ở mức cao đẹp, điều đó có làm giảm hiệu quả tác động của nó đối với các giá trị tải hệ thống không?
Tôi có một công việc cron rsync đang đẩy tải máy chủ và kích hoạt cảnh báo màn hình. Nếu tôi đặt công việc được chạy ở mức cao đẹp, điều đó có làm giảm hiệu quả tác động của nó đối với các giá trị tải hệ thống không?
Câu trả lời:
Thay đổi giá trị đẹp sẽ không trực tiếp giảm tải hệ thống. Tuy nhiên, nó có thể được sử dụng để để lại nhiều tài nguyên hơn cho các quy trình còn lại, điều mà tôi nghi ngờ là điều bạn thực sự muốn.
Từ http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/
Kernel quyết định cần bao nhiêu thời gian xử lý cho một tiến trình dựa trên giá trị đẹp. Phạm vi giá trị tốt có thể có là: -20 đến 20. Một quy trình có giá trị đẹp là -20 được ưu tiên rất cao. Quá trình có giá trị tốt là 20 được ưu tiên rất thấp.
Vì vậy, có, bạn muốn chạy công việc định kỳ ở mức cao hơn các quy trình khác nếu bạn muốn đảm bảo rằng các quy trình khác được ưu tiên.
Để làm điều này, bạn muốn tập lệnh cron của bạn được thực thi như thế này:
/bin/nice -n 10 /path/to/cron-script
Điều này sẽ chạy tập lệnh cron ở mức tốt hơn tăng 10. Bạn có thể muốn kiểm tra một chút để tìm sự cân bằng (không có ý định chơi chữ) giữa các quy trình còn lại và thời gian thực hiện của tập lệnh.
Xem thêm Làm thế nào là tốt đẹp làm việc? và http://www.cyberciti.biz/faq/change-the-nice-value-of-a- Process / để biết thêm chi tiết.
Thay đổi mức độ tốt đẹp của một quy trình không có khả năng ảnh hưởng đến giá trị tải hệ thống. Giá trị tải hệ thống là độ dài trung bình của hàng đợi chạy , về cơ bản là số lượng quá trình muốn sử dụng CPU.
Nếu bạn đang chạy một quy trình giới hạn CPU (rsync không, nhưng chỉ là ví dụ), thì nó sẽ luôn muốn sử dụng thời gian của CPU bất cứ khi nào có sẵn. Vì nó luôn muốn chạy, nó sẽ đóng góp giá trị tải là 1.0 cho giá trị tải hệ thống. Không quan trọng mức độ tốt của quy trình là gì, bởi vì độ dài trung bình của hàng đợi chạy không bị ảnh hưởng bởi thứ tự của các quy trình trong hàng đợi chạy.
Bạn có thể xem xét 3 cách để giảm tác động của mình đối với thời gian tải hệ thống / CPU:
nice
lệnh để tự hạ thấp mức ưu tiên của tác vụ.cpulimit
lệnh để liên tục tạm dừng quá trình để nó không vượt quá một giới hạn nhất định.built-in control groups
, một cơ chế báo cho bộ lập lịch để giới hạn số lượng tài nguyên có sẵn cho quy trình.Tài nguyên