Làm cách nào tôi có thể định cấu hình các nhóm để chia sẻ tài nguyên giữa các người dùng?


11

Đã từng có một tùy chọn cấu hình kernel được gọi là calendar_user hoặc tương tự trong các nhóm. Điều này cho phép (theo hiểu biết của tôi) tất cả người dùng chia sẻ công bằng tài nguyên hệ thống. Trong 2.6,35 nó không có sẵn. Có cách nào để tôi có thể định cấu hình hệ thống của mình để tự động chia sẻ tài nguyên io / cpu / bộ nhớ giữa tất cả người dùng (bao gồm cả root không?). Tôi chưa bao giờ thiết lập một nhóm trước đây, có một hướng dẫn tốt để làm như vậy? Cảm ơn rât nhiều.


Chà, tôi đã lấy một chiến lợi phẩm ở gói cgroups-bin trên Ubuntu và tôi khá chắc chắn rằng nó "làm điều này" theo mặc định nếu tôi chỉ cài đặt nó. Tôi cho rằng nó sẽ yêu cầu thiết lập, tuy nhiên tôi cho rằng nó chỉ cần nếu bạn có nhu cầu đặc biệt. Tôi đã kiểm tra bằng cách chạy căng thẳng với 2 luồng cpu dưới gốc và 2 dưới người dùng của tôi và cả 4 luồng dường như chia sẻ 50% trên cùng, điều này khiến tôi nghĩ rằng nó đang hoạt động. Điều này có thể "giải quyết nó" cho tôi, tuy nhiên nếu có bất cứ điều gì tôi muốn có một cách rõ ràng hơn để xác nhận, hoặc một ý tưởng tốt hơn về cách định cấu hình nó, cảm ơn một lần nữa!
NightwishFan

Câu trả lời:


12

Các tài liệu kernel cung cấp một phạm vi bảo hiểm chung của các nhóm với các ví dụ.

Các cgroups-bingói (mà phụ thuộc vào libcgroup1) đã được phân phối cung cấp nên được tốt.

Cấu hình được thực hiện bằng cách chỉnh sửa hai tệp sau:

/etc/cgconfig.conf

Được sử dụng bởi libcgroup để xác định các nhóm điều khiển, tham số và điểm gắn kết của chúng.

/etc/cgrules.conf

Được sử dụng bởi libcgroup để xác định các nhóm điều khiển mà quá trình thuộc về.

Những tệp cấu hình đó đã có ví dụ trong đó, vì vậy hãy thử điều chỉnh chúng theo yêu cầu của bạn. Các trang người đàn ông bao gồm cấu hình của họ khá tốt.

Sau đó, bắt đầu trình quản lý khối lượng công việc và quy tắc daemon:

service cgconfig restart
service cgred restart

Trình quản lý khối lượng công việc (cgconfig) chịu trách nhiệm phân bổ các nguồn tài nguyên.
Thêm một quy trình mới cho người quản lý:

cgexec [-g <controllers>:<path>] command [args]

Thêm một quy trình đã chạy vào trình quản lý:

cgclassify [-g <controllers>:<path>] <pidlist>

Hoặc tự động qua tệp cgrules.conf và Daemon Rules Group (cgred), buộc mọi quy trình mới được sinh ra vào nhóm được chỉ định.


Ví dụ /etc/cgconfig.conf:

group group1 {
    perm {
            task {
                    uid = alice;
                    gid = alice;
            }
            admin {
                    uid = root;
                    gid = root;
            }
    }

    cpu {
            cpu.shares = 500;
    }

}

group group2 {
    perm {
            task {
                    uid = bob;
                    gid = bob;
            }
            admin {
                    uid = root;
                    gid = root;
            }
    }

    cpu {
            cpu.shares = 500;
    }

}

mount {
    cpu = /dev/cgroups/cpu;
    cpuacct = /dev/cgroups/cpuacct;
}

Ví dụ /etc/cgrules.conf:

alice            cpu             group1/
bob              cpu             group2/

Điều này sẽ chia sẻ các nguồn tài nguyên CPU khoảng 50-50 giữa người dùng 'alice' và 'bob'


Học nhóm, đánh dấu trang này. Cảm ơn.
Jigar
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.