Đặt giá trị đẹp mặc định cho một người dùng nhất định (giới hạn.


12

Ai đó có thể cho tôi biết cách đặt giá trị mặc định nice(như được hiển thị bởi top) của người dùng không? Tôi đã thấy rằng /etc/security/limits.conf là nơi nhưng nếu tôi đặt một trong hai:

username_of_a_guy  -  nice  19
username_of_a_guy  soft  nice  19
username_of_a_guy  hard  nice  19

Nó không hoạt động (trong khi nó nên, phải không?).

Lưu ý rằng tôi đã khởi động lại từ đó.

Cảm ơn bạn rất nhiều trước cho bất kỳ sự giúp đỡ. Tôi đang sử dụng debian không ổn định (nâng cao).

Bối cảnh:

Trong công việc của tôi, chúng tôi có một mạng cục bộ: mọi người đều có máy tính riêng và mọi người đều có thể tạo tài khoản trên máy của người khác nếu ai đó thích. Nguyên tắc đơn giản là nếu bạn làm việc trên máy tính của người khác, vui lòng xử lý các quy trình của bạn ( nice 19).

Tôi muốn đặt giá trị đẹp mặc định cho một người dùng nhất định thành 19 một lần và mãi mãi.


Câu trả lời:


13

Tôi tin định dạng đúng là:

@users      -       priority        10
username    -       priority        19

Đây là một ví dụ về các cài đặt tôi đang sử dụng trong sản xuất (rõ ràng là với người dùng / nhóm thực).

Các nicethiết lập là để xác định giá trị tối thiểu thoải mái (tức là ưu tiên tối đa) ai đó có thể thiết lập quy trình của họ để, không ưu tiên mặc định của họ.


2
Trước hết, cảm ơn câu trả lời của bạn (cũng cảm ơn bạn, @mattdm). Có vẻ như phương pháp này hoạt động. Tuy nhiên, tôi vẫn nhầm lẫn về sự khác biệt giữa "tốt đẹp" và "ưu tiên": cả hai đều được hiển thị bởi "hàng đầu" nhưng giá trị được trích dẫn cho đẹp là giá trị tôi phải đặt ưu tiên. Nó có vẻ hơi lạ đối với tôi. Ngoài ra, một ưu tiên lớn hơn (nói 39 thay vì 20) có nghĩa là một quá trình ít quan trọng hơn như nó là tốt đẹp? Cảm ơn bạn.
Alex

4
Ưu tiên tốt nhất của 'NI' ở trên cùng là những gì sẽ được đặt bằng prioritycài đặt giới hạn . Đây sẽ là mức ưu tiên mặc định của bất kỳ quy trình nào cho người dùng / nhóm đó khi họ đăng nhập. Bạn chỉ có thể đặt giá trị này nằm trong khoảng từ -20 đến 20. Giá trị 'PR' ở trên cùng là mức ưu tiên của trình lập lịch thực tế, được xác định bởi một số các yếu tố của bộ lập lịch của kernel.
jsbillings

1
Ngoài ra, có, mức độ ưu tiên cao hơn có nghĩa là ít có khả năng được lên lịch để nhận chu kỳ CPU.
jsbillings

1
Ok, cảm ơn rất nhiều vì sự định hướng này. BTW, tôi đã không thử các phương pháp khác (liên quan đến andhoặc cgroup) có thể tốt hơn trong các tình huống khác ngoài tôi (cần kiểm tra liên tục hoặc quản lý nhiều người dùng - trong trường hợp của tôi thì hơi quá).
Alex

Hmmmm ... Điều này làm việc cho một người dùng nhưng không phải người dùng khác trên máy Ubuntu của tôi. Tôi sẽ trở lại nếu tôi có thể tìm ra lý do tại sao. ;-)
Ken Sharp

3

Tôi có thể xác nhận rằng nó cũng không hoạt động trên hệ thống của tôi. Các tài liệu nói "kernel 2.6.11 trở lên", và tôi đang sử dụng da thô Fedora với kernel 2.6,38-RC6. Tôi tự hỏi nếu nó phụ thuộc vào lịch trình và không hoạt động với CFQ được giới thiệu trong 2.6,23 ("Bộ lập lịch hoàn toàn công bằng").

Mặc dù vậy, một cái gì đó sẽ hoạt động là cái tên không thể tìm kiếm vì cái tên khủng khiếp của nó and- daemon tự động đẹp. Xem http://and.sourceforge.net/ . Điều này có sẵn từ Fedora yum install and, nhưng tiếc là dường như không có trong EPEL. Và nó cũng có trong Debian : apt-get install and.

Tuy nhiên, nếu bạn đang sử dụng một bản phân phối hiện đại, có một cách thậm chí còn tốt hơn. Bạn có thể sử dụng các công cụ từ libcgroup để thiết lập một nhóm giới hạn mức nhân chia sẻ CPU và để tự động "phân loại" các quy trình của người dùng đó vào nhóm này. Với điều này, bạn cũng có thể ưu tiên I / O và giới hạn việc sử dụng bộ nhớ (bao gồm cả chia sẻ bộ đệm đĩa).


Tôi đồng ý rằng việc sử dụng các nhóm là một cách tuyệt vời để hạn chế người khác ăn cắp tất cả các chu kỳ CPU trên máy tính của bạn. Đáng buồn thay, các hệ thống tôi hỗ trợ (RHEL5) không có hạt nhân hỗ trợ nó, vì vậy tôi phải gắn bó với việc điều chỉnh mức độ ưu tiên. Khi chúng tôi cập nhật lên RHEL6, tôi chắc chắn chúng tôi sẽ có một số cài đặt nhóm khá phức tạp.
jsbillings
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.