Bagaimana cara mengatur file cgconfig.conf untuk membatasi cpu untuk semua proses dengan nama pengguna hingga 10% dari CPU?


1

Selama sekitar 5 tahun sekarang saya ingin membatasi cpu pengguna di CentOS (6) - tanpa menggunakan cloudlinux.

Sejauh ini, masih belum bisa mendapatkan jawaban untuk ini. cgroups tampaknya menjadi solusi. Namun, saya tidak tahu cara mengatur file konfigurasi.

Inilah pertanyaan yang mulai menjawabnya, TETAPI TIDAK MENJAWAB PERTANYAAN INI. Saya mencari lagi setiap beberapa bulan tetapi tidak berhasil.
Bagaimana membatasi seluruh pengguna hingga kurang dari 10% dari cpu, bukan hanya memproses?

Saya benar-benar butuh bantuan untuk menyiapkannya karena ini benar-benar diperlukan.


Inilah yang saya dapatkan sejauh ini.

Saya menginstal libcgroup layanan yum install libcgroup.
Saya diperiksa dengan ls /cgroup dan diverifikasi diinstal. Saya mendapatkan hasil ini:
blkio cpu cpuacct cpuset devices freezer memory net_cls

Sekarang, saya pergi ke cgconfig.conf mengajukan. Ini terletak di /etc/cgconfig.conf

Di bawahnya mount { ... } bagian dalam cgconfig.conf file, saya menambahkan yang berikut ini. Saya tidak tahu apakah ini benar (tidak tahu apakah ini 10% dari CPU).

Saya butuh bantuan menyelesaikan ini sehingga saya akhirnya dapat membatasi pengguna untuk persen yang diinginkan dari CPU (dan, idealnya, memori jika mungkin!)

Ini untuk membuat grup bernama limitcpu (walaupun saya sebenarnya ingin menyebutnya kelompok terbatas atau sesuatu karena saya juga ingin membatasi memori juga, tetapi untuk sekarang mari kita sebut saja limitcpu kelompok).

group limitcpu {

    cpu {
            cpu.shares = 200;
            # cpu.cfs_period_us
            # cpu.cfs_quota_us
    }
    memory {

    }
}

Maka saya seharusnya menggunakan templat ini:

template users/%g/%u {
                 cpuacct{
                 }
                 cpu {
                    cpu.shares = "1000";
                 }
      }

%g seharusnya merupakan nama grup.
%u seharusnya menjadi nama pengguna.

Ok jadi katakan pengguna saya yang ingin saya batasi dipanggil resourcehoggeruser. Bagaimana cara menyelesaikan konfigurasi di atas untuk membatasi CPU dan memori yang dialokasikan untuk pengguna ini?

Haruskah terlihat seperti ini?

template users/limitcpu/resourcehoggeruser {
                 cpuacct{
                 }
                 cpu {
                    cpu.shares = "1000";
                 }
      }
  • Apa lagi yang saya perlukan agar ini berfungsi? Apakah kode di atas bahkan akurat?
  • Apakah ini akan melakukan apa yang saya inginkan ketika kode itu benar, yaitu membatasi proses yang pernah dilakukan oleh pengguna untuk persentase yang diinginkan dari total CPU?
  • Apakah ini lokasi yang benar dalam file untuk menempatkan kode ini?

Apa itu "bagian"? Katakanlah saya memiliki 16 CPU dan 24GB RAM.

  • Nomor berapa yang saya masukkan cpu.shares jika saya ingin memiliki 10% dari cpu?
  • Bagaimana dengan 20% dari cpu?

Bagaimana dengan memori?

  • Kode apa yang saya juga gunakan untuk membatasi memori untuk semua proses oleh pengguna?
  • Jika menggunakan sesuatu seperti saya kira, mem.shares, lalu apa yang akan menjadi "saham" untuk 10% dari memori? Bagaimana dengan 20% memori?

Saya sangat menghargai bantuan Anda! Terima kasih banyak. Saya benar-benar perlu ini bekerja. Saya telah mencari panjang dan keras dan masih belum menemukan jawaban yang jelas sehingga saya benar-benar membutuhkan bantuan Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.