[MEGOLDVA] CGI altal inditott program magasabb prioritassal es mas affinitassal

Adott egy viszonylag primitiv script ami jatek szervereket vezerel (start, stop). Ezek tobbsege bash es perl script.
Es adott egy olyan webszerver ami idonkent eleg nagy terhelest okoz a gepen. Annyira, hogy meg a jatek szerverek is elkezdenek laggolni. Ezen a webszerveren keresztul lehet vezerelni a jatek szerveket. Minden jatek szerver mas user alatt fut
Ez az egesz cucc egy 4 magos procival rendelkezo gepen megy.
Kitalaltam azt, hogy a webszervert csak 1 magon futtatom es leveszem a prioritasat is (taskset es nice parancs) mert nem baj ha a web belassul, de a jatekok ne laggoljanak.
Viszont igy az osszes jatek szerver azon a magon es prioritassal akar menni, raadasul utolag az user nem is tudja allitani ami ertelemszeru.
Hogy tudom megcsinalni azt, hogy az webszerveren keresztul inditott mas userkent futo jatek szerverek a tobbi magon es mas prioritassal fussanak?

Hozzászólások

Első körben valami ilyesmi jut eszembe, szóval egy wrapper:


#!/usr/bin/env bash
exec /usr/bin/nice -n -20 /path/to/script

Viszont ennek kell root jog vagy "Under Linux the CAP_SYS_NICE capability is required". Ez valószínűleg neked nem lesz jó, bár ki tudja.

Egyébként ha ezek hosszú ideig futó és viszonylag ritkán indított processzek, akkor valmi cron-ból indított script-el időnként megkeresni azokat amiknek még nem megfellő a prioritása és affinitása és beállítani azokat.
Ha letárolod az éppen futó játékszerverek PID-jeinek a listáját is valahol, akkor csak azt a listát kell nézned.
Jobb ötletem nincs erre.

Szerk.:
Ha van lehetőség a megfelelő capability-k beállítására vagy root-ként indításra, akkor a start-stop-daemon -al mindent szépen be tudsz állítani.