rtprio
maximum realtime priority allowed for non-privileged processes (Linux 2.6.12 and higher)
priority
the priority to run user process with (negative values boost process priority)
Proč se liší?
V linuxu existují různé třídy plánovačů procesů. Výchozí (CFQ) v podstatě poskytuje stejné množství časových úseků každému procesu, který se chce spustit, a řadí spustitelné úlohy do fronty takovým způsobem, že každý čeká v průměru stejnou dobu, než přijde řada. Existují určité výjimky z tohoto pravidla, ale to je základní myšlenka.
Další třídou plánovače je plánovač v reálném čase. Realtime je trochu jiný, spíše zařazujte úlohy spustitelné ve frontě do spravedlivého schématu řazení do fronty, proces v reálném čase získá CPU čas, jakmile to proces potřebuje, čímž se z CPU vypudí běžící proces, aby se vytvořil prostor pro „realtime“. ' proces.
Jaké hodnoty mohou nabývat?
'priorita' dělá změnu slušnosti procesů tak, že při přihlášení váš hlavní proces začíná na určité slušnosti, všechny podřízené procesy, které spustíte, také začínají se stejnou slušností.
To má za následek, že je pravděpodobnější, že bude naplánováno ve prospěch jiných konkurenčních procesů, a uživatelská zkušenost může být buď citlivější/interaktivní pro nižší hodnoty zpříjemnění, a méně citlivá/interaktivní, pokud se slušnost zvýší.
Pro běžné přihlášené uživatele může být důležité, aby měli například nižší prioritu než obslužní démoni nebo aby měl root vyšší prioritu při přihlašování než vše ostatní.
Co se týče reálného času, spor se řeší pomocí pole 'rtprio'. Pokud chcete spustit dvě úlohy v reálném čase, pak se hodnota 'rtprio' použije k určení, který z procesů zvolit jako prioritu jako první. Vyšší rtprio vytváří úlohy s vyšší prioritou.
Nastavením tohoto parametru v souboru limited.conf lze úkoly v reálném čase nastavit na konkrétní prioritní pásmo, aniž by k nastavení hodnoty potřeboval root. To nemá žádný vliv na úlohy, které nejsou nastaveny na spouštění pomocí plánovače v reálném čase.
Hodnota 'nice' by měla fungovat stejně jako 'rtprio', ale pro standardní plánování CFQ. Nikdy jsem to ale nezkoušel. Nastaví počáteční proces, který se spustí, když PAM nastaví tyto limity na tuto pěknou hodnotu, běžný uživatel pak může přejít na tuto pěknou úroveň nebo vyšší, aniž by k jejich nastavení potřeboval root. Pokud se explicitně nerenice, znamená to, že všechny procesy vytvořené z shellu z tohoto přihlášení (například) zdědí hodnotu nice nastavenou v limitech.conf z nadřazeného procesu, který byl původně vytvořen.
Jaké jsou výchozí hodnoty?
„Výchozí“ limity – technicky jsou všechny nastaveny na to, co je pid 1, pokud to není explicitně nastaveno, limity zdrojů jsou zděděny z nadřazeného procesu, pokud nikde nebyly definovány nebo přepsány žádné limity, pak dědictví z 08 je výchozí.
Další hodnoty
data
maximum data size (KB)
Když je proces inicializován, při zkopírování procesu do paměti alokuje určitou paměť známou jako „datový segment“, zde žije prostor pro globály, možná nějaká další inicializovaná data a paměť alokovaná z haldy. Limit řídí maximální přidělené množství, které může proces přijmout.
Je nepravděpodobné, že byste někdy dosáhli tohoto limitu, protože malloc() zřídka příliš využívá datový segment k ukládání dat.
fsize
maximum filesize (KB)
Tím se doslova nastaví maximální velikost, do které lze zapsat soubor jako u tohoto uživatele.
memlock
maximum locked-in-memory address space (KB)
Téměř veškerá paměť, kterou aplikace získala, je „vymazatelná“. To se dá vyměnit. Paměť uzamčená není nikdy vyměnitelná a zůstává rezidentní. Tato hodnota je přísně kontrolována, protože ji mohou lidé zneužít k vyhladovění systému paměti a způsobit swapování. Obvykle je užitečný u bezpečnostních aplikací (které nikdy nechtějí, aby jejich stránky byly prohozeny – a aby byly čitelné z odkládacího oddílu).
cpu
maximum CPU time (minutes)
To představuje celkové množství času, který může proces spotřebovat na CPU. Proces, který překročí tuto hodnotu, bude ukončen. Všimněte si, že to NENÍ stejné jako množství času, které uplynulo od spuštění procesu. Tzn., že limit doby procesoru 1 minuta by se spotřeboval 1 minutu, pokud by proces využíval 100% procesor, ale 2 minuty, pokud by proces využívá 50% využití.
Co se stane, když je překročen procesor?
Proces dostane signál ukončení 10
která proces ukončí. To pak může nadřazený proces zachytit a zpracovat tam.
Pouze jeden proces nebo celý uživatel nemůže používat CPU?
Téměř všechny uvedené limity jsou řešeny na základě jednotlivých procesů. CPU čas v ceně. Jediní, kteří nejsou Věřím, že ano celkový počet přihlášení a celkový počet procesů tímto uživatelem.
Některé další problémy s limity jsou:
- Maximální počet procesů zahrnuje počet odlehčených vláken.
- Limit RSS nedělá nic a už řadu let ne, je nesmyslné ho nastavovat.