cpu ido korlatozasa egy user osszes folyamatara max x%-ra

Fórumok

cpu ido korlatozasa egy user osszes folyamatara max x%-ra

Hozzászólások

Szoval, a kerdesem az lenne, hogy lehet e olyat linuxal, hogy egy adott felhasznalo ne hasznalhasson csak mondjuk maximum 80% processzort az osszes altala futatott processzre vetitve.?

[quote:a6fc370c92="hygy"]Szoval, a kerdesem az lenne, hogy lehet e olyat linuxal, hogy egy adott felhasznalo ne hasznalhasson csak mondjuk maximum 80% processzort az osszes altala futatott processzre vetitve.?

A limits.conf-ot nezd meg.

[quote:65f495537b="Sea-you"][quote:65f495537b="hygy"]Szoval, a kerdesem az lenne, hogy lehet e olyat linuxal, hogy egy adott felhasznalo ne hasznalhasson csak mondjuk maximum 80% processzort az osszes altala futatott processzre vetitve.?

A limits.conf-ot nezd meg.

Az nem nyert, ott csak azt tudod megadn, hogy mennyi ideig hasznalhatja a processzort egy adott processz ami ugye egy server proginal nem jo.

# - cpu - max CPU time (MIN)

Nem is tudom... Solaris-ban ezt ugy hivjak, hogy Resource Management, es a "projects" facility-n keresztul hat, 9-es ota standard resze az os-nek. Egy projektre mondhatsz CPU es memoria limiteket, es 1 projekt lehet egy felhasznalo nehany processze, osszes processze, vagy egy csoport osszes processze, stb (a projektek kiosztasat tarolhatod ldap-ban vagy neadjisten nis-ben es akkor egy halozat osszes gepen force-olni lehet a dolgot).

Linuxra a google a kovetkezot dobta ki:

http://ckrm.sourceforge.net/
Ez egy viszonylag friss dolognak tunik, nem lattam meg disztroban, de igy elso blikkre hasonlonak tunik a fentielkhez.

Bocs, most latom, hogy Suse 9 Enterprise Serverben van CKRM...

es egyeb unixlike rendszerekben?

pl. bsdk?

[quote:c7bfb39ce8="drastik"]es egyeb unixlike rendszerekben?

pl. bsdk?

bsd-ken ugyan ez van. A freebsd csatin szoba kerult a trustedbsd de nem tudta senki hogy tudja e. Eddig egyeduli biztos a solaris ami helybol tudja.

FreeBSD 5-től elvileg van MAC, de a manual alapján semmi hasonlót sem tud. Ami azon kívül van, az a standard unixos dolog.
Van egyébként még UNIX, ami ilyet tud, HP-UX-nek hívják, és a PRM (Process Resource Management) facility része. Hasonlít a _Joel által elmondott solarisos megoldásra.

FreeBSD-n elso megkozelitesben:

man login.conf

En kiprobaltam userekre, de csak processzek darabszamanak korlatozasaval, es az mukodott. Gondolom CPU-ra is all dolog.

[quote:327557cef9="jolle"]FreeBSD-n elso megkozelitesben:

man login.conf

En kiprobaltam userekre, de csak processzek darabszamanak korlatozasaval, es az mukodott. Gondolom CPU-ra is all dolog.

Mondom a CPUtime azt jelenti, hogy egy user altal futtatott processz hany percig hasznalhatja a procit. Ha ez az ido lejart, kilovi a kernel.

HyGy

[quote:9eb17ad907="hygy"]Mondom a CPUtime azt jelenti, hogy egy user altal futtatott processz hany percig hasznalhatja a procit. Ha ez az ido lejart, kilovi a kernel.

Iiiii, tenyleg. Megneztem a fajlt, bocs :( :)

Sziasztok!

Linux alatt ezt meg lehet oldani?

Udv Zsirmo

Nem nagyon tudok olyan ütemezőről, ami ezt tudná pingvin alatt. Solaris alatt az FSS -el szépen meg lehet csinálni, de pingvin alá is ha létezik megoldás arra én is kíváncsi lennék.

___________________________________________________________________
Lógnak a pálmafán a kókuszok .... :)
http://laszlo.co.hu/

Az új CFS elméletileg pont ezért completely fair, mert a nice értéknek megfelelő CPU idő százalékot biztosítja a proceszeknek minden körülménytől függetlenül. Volt a HUP-on belinkelve LKML thread, ahol ki volt számolva a nice - százalék táblázat.

Innentől kezdve csak azt kell elérnie a rendszergazdának, hogy a user csak a neki szánt CPU időt biztosító nice értékkel indíthasson processzeket. Persze ha üres a CPU, akkor a user továbbra is megkapja az egészet, ami értelmesnek tűnik. Vagy ha a kérdező arra gondolt, hogy 20% üresjárat legyen, hát annak semmi értelmét nem bírom felfedezni.

Ha valaki szerint ez fontos, elméletileg(??) lehetne valami frontendet is csinálni hozzá. Kellene egy algoritmus, ami, ha változik a userek száma (és a futó processzek száma), akkor újra számolja a nekik járo nice-t.

Egyébként én az egész kérdésfelvetést nem egészen értem. Az, hogy egy user 80% CPU időt lenyúlhasson a többiek elől, az nem korlátozás, hanem privilegizálás. Ahhoz 0-nál kisebb nice-al kellene indítania a processzeit, ami alapértelmezésben tilos Linuxban.

Szerintem ezt csak interaktívan lehet szabályozni Linuxon (meg gondolom máshol is), folyamatosan figyelni a CPU load-ot userenként és ha valamelyik user túllépi a limitet, akkor csökkenteni a loadot okozó processzei prioritását a többiekéhez képest. Így ha másnak nem kell e CPU, akkor megkapja az egészet, természetesen. (És ha feltételezzük, hogy rosszindulatú is lehet a user, akkor az indítható processzek számát is limitálni kell.) Kérdés, hogy tényleg szükség van-e ilyen pontos limit betartására, vagy csak úgy nagyjából. Szerintem a Linux fejlesztőkben fel se merült, hogy ez fontos lenne.

Persze ha valaki tudja, hogy működik ez Solarison, talán megírja.

hali,

semmi újabb eredmény?
nekem is pl. olyasmi kéne, hogy egy adott processz semmiképpen ne vihessen el pl. 65%-nál több órajelet, ha megszakad sem.

Példa: qemuval futtatok vmilyen guest oprendszert (tipikusan xp) és a qemu sok esetben 100%-ra tolja a terhelést (kqemuval is) látszólag totál indokolatlanul. Na most ez egyrészt zavaró, másrészt semmi szükség rá, az adott guestet pl. azért futtatom, mert behívásra használom és gyakorlatilag csak egy putty fut benne.

cpulimit:
cpulimit is a simple program that attempts to limit the cpu usage of a process (expressed in percentage, not in cpu time). This is useful to
control batch jobs, when you don't want them to eat too much cpu. It does not act on the nice value or other priority stuff, but on the real
cpu usage. Besides it is able to adapt itself to the overall system load, dynamically and quickly.