Saya ingin memahami cgroup dengan lebih baik dan ingin memahami kasus penggunaan untuk menerapkan cgroup.
Apakah cgroup cara yang baik untuk memprioritaskan aplikasi yang berbeda (yaitu, memberikan prioritas lebih tinggi untuk jenis aplikasi tertentu seperti server web)?
linux
scheduling
cgroups
priority
Johnnie
sumber
sumber
Jawaban:
Ada beberapa kegunaan untuk cgroup . Dari administrasi sistem mungkin yang paling penting adalah membatasi sumber daya - contoh klasik di sini adalah akses cpu. Jika Anda membuat grup untuk mis
sshd
dan memberikannya pembagian waktu CPU yang tidak dapat diabaikan (dibandingkan dengan grup lain atau standar yang menjadi dasar dari semua proses yang tidak disortir), Anda dijamin dapat login bahkan di saat-saat ketika mesin akan berjalan sebuah tugas intensif CPU.Lebih menarik lagi, jika Anda memberikan "akses jarak jauh" ini proses berbagi CPU jauh lebih tinggi daripada yang lain, Anda akan dapat masuk hampir secara instan (karena daemon ssh akan diprioritaskan selama sisa proses yang berjalan) sementara Anda tidak akan terluka kekuatan komputasi keseluruhan alat berat, karena sumber daya dialokasikan hanya berdasarkan kebutuhan. Anda biasanya ingin melakukan ini bersama dengan prioritas I / O (termasuk jaringan). Namun, seperti yang ditunjukkan oleh John dengan tepat dalam komentar di bawah ini, orang tidak ingin melakukan hal-hal ini dengan sembrono (karena mungkin akan muncul kembali dengan cara yang tidak terduga). Hal penting yang perlu diingat adalah bahwa grup diwarisi secara default - yaitu seseorang tidak ingin memulai memori / CPU babi dari sesi ssh tersebut. Namun untuk ini ada mekanisme yang dapat menetapkan proses untuk cgroup saat mereka mulai.
Penggunaan lain adalah mengisolasi proses dari satu sama lain - dalam kombinasi dengan fitur-fitur lain (isolasi namespace) di kernel Linux baru-baru ini mereka digunakan untuk membuat virtualisasi tingkat-OS seperti LXC (Linux Containers) .
Selain itu Anda dapat melakukan berbagai hal akuntansi dan kontrol (membekukan beberapa kelompok proses, menugaskan mereka ke inti CPU tertentu, dll.).
Dua tautan di sini, harus menjadi tempat awal yang masuk akal jika Anda mencari informasi lebih lanjut. Anda mungkin juga ingin memeriksa
Documentation/cgroups
direktori di pohon sumber kernel Linux.sumber
systemd
, yang (ab) menggunakan cgroup untuk keperluannya sendiri - file unit systemd untuk layanan mungkin memberikan beberapa petunjuk tentang apa yang mungkin masuk akal. Tetapi pada akhirnya selalu tergantung pada administrator sistem untuk belajar dengan cara yang sulit, yang sebenarnya bukan "Good Idea (TM)".cgroup
pseudofiles yang mungkin perlu Anda mount terlebih dahulu. Dalam kebanyakan kasus saat ini, sistem init melakukan itu untuk Anda dan sering menggunakan cgroup dengan cara tertentu. Satu-satunya jawaban pasti adalah membaca dokumentasi: kernel docs , OpenRC @ Gentoo , systemd @ freedesktop .