A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
— |
oktatas:linux:linux_rendszergazda_parancssor [2019/08/21 16:05] (aktuális) admin létrehozva |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | [[oktatas:linux|< Linux]] | ||
+ | ====== Linux rendszergazda parancssor ====== | ||
+ | |||
+ | Fejlesztés alatt! | ||
+ | |||
+ | * **Szerző:** Sallai András | ||
+ | * Copyright (c) Sallai András, 2013 | ||
+ | * Licenc: GNU Free Documentation License 1.3 | ||
+ | * Web: http://szit.hu | ||
+ | |||
+ | |||
+ | |||
+ | ===== A kernel korlátai ===== | ||
+ | |||
+ | ==== Folyamatok száma ==== | ||
+ | |||
+ | Nézzük meg az indítható folyamatok maximális számát: | ||
+ | cat /proc/sys/kernel/threads-max | ||
+ | 30578 | ||
+ | |||
+ | Adjunk meg új értéket: | ||
+ | echo 100000 > /proc/sys/kernel/threads-max | ||
+ | |||
+ | |||
+ | ===== A felhasználó korlátozása ===== | ||
+ | |||
+ | ==== A korlátokról ==== | ||
+ | |||
+ | Az ulimit parancsot a Bash nyújtja számunkra, így segítséget így kaphatunk a parancsról: | ||
+ | help ulimit | ||
+ | |||
+ | Nézzük meg egy felhasználó korlátait a ulimit paranccsal: | ||
+ | ulimit -a | ||
+ | |||
+ | <code> | ||
+ | ulimit -a | ||
+ | core file size (blocks, -c) 0 | ||
+ | data seg size (kbytes, -d) unlimited | ||
+ | scheduling priority (-e) 0 | ||
+ | file size (blocks, -f) unlimited | ||
+ | pending signals (-i) 15289 | ||
+ | max locked memory (kbytes, -l) 64 | ||
+ | max memory size (kbytes, -m) unlimited | ||
+ | open files (-n) 1024 | ||
+ | pipe size (512 bytes, -p) 8 | ||
+ | POSIX message queues (bytes, -q) 819200 | ||
+ | real-time priority (-r) 0 | ||
+ | stack size (kbytes, -s) 8192 | ||
+ | cpu time (seconds, -t) unlimited | ||
+ | max user processes (-u) 15289 | ||
+ | virtual memory (kbytes, -v) unlimited | ||
+ | file locks (-x) unlimited | ||
+ | </code> | ||
+ | |||
+ | Láthatjuk, hogy a felhasználók 15289 folyamatot indíthatnak összesen. | ||
+ | Ha egy felhasználó nevében belépünk, kiadhatjuk a ulimit -u 100 parancsot. | ||
+ | Ez lekorlátozza 100 darab folyamatra. Ha 100 felül akar folyamatot indítani | ||
+ | ebben a terminálban, akkor a következő üzenetet kaphatja: | ||
+ | bash: fork: retry: Nincs gyerek folyamat | ||
+ | A felhasználó más terminálokban, ahol nem volt kiadva a ulimit -u 100, ott az | ||
+ | ulimit érték még a régi maradt. | ||
+ | |||
+ | |||
+ | Ezt esetleg betehetjük a felhasználó $HOME/.profile állományába, hogy végleges legyen a beállítás: | ||
+ | echo "ulimit -u 100" > $HOME/.profile | ||
+ | |||
+ | Telepítsük fel a stress nevű csomagot. Ebben találunk egy stress nevű parancsot, amellyel | ||
+ | tesztelhetjük a rendszert: | ||
+ | stress --vm 200 --vm-bytes 10 | ||
+ | |||
+ | Ezzel a beállításokkal megpróbál 200 folyamatot létrehozni, amelyek mindegyike 10 byte nagyságú | ||
+ | memóriát foglal. | ||
+ | |||
+ | |||
+ | ==== Folyamatok korlátozása az SSH szerveren ==== | ||
+ | |||
+ | |||
+ | Az /etc/pam.d/sshd fájlban szerepelni kell a következőnek: | ||
+ | session required pam_limits.so | ||
+ | |||
+ | Így a limitek megadhatók a /etc/security/limits.conf állományban. | ||
+ | |||
+ | Egy felhasználó vagy csoport folyamatainak maximális száma az nproc-cal állítható: | ||
+ | |||
+ | <code> | ||
+ | * soft core 0 | ||
+ | root hard core 100000 | ||
+ | @tanulok hard nproc 20 | ||
+ | @tanar soft nproc 20 | ||
+ | @tanar hard nproc 50 | ||
+ | ftp hard nproc 0 | ||
+ | ftp - chroot /srv/ftp | ||
+ | @tanulo - maxlogins 4 | ||
+ | </code> | ||
+ | |||
+ | * Az első oszlop megmondja kinek szeretnénk limitet állítani. | ||
+ | * A második oszlopban megadható a korlátozás típusa. Lehetséges soft, vagy hard. | ||
+ | * A negyedik oszlopban adjuk meg mit szeretnénk korlátozni. | ||
+ | * Az utolsó oszlopban a korlátozás értéke következik. | ||
+ | |||
+ | Az első sorban a * egy helyettesítő karakter. Az összes felhasználót jelöli, beleértve a | ||
+ | rendszergazdát is. Amely sor @ karakterrel kezdődik ott az első oszlopban csoport nevek | ||
+ | vannak meghatározva. | ||
+ | |||
+ | A második oszlop értéke soft vagy hard lehet. Legyünk óvatosak a hard limittel. | ||
+ | A hard limit előtt mindig adjunk meg szoft limitet. A hard elérése esetén | ||
+ | több gyermek folyamat nem indítható. Ha nem kell megadni korlátot akkor egy | ||
+ | kötőjelet kell írnod: "-". | ||
+ | |||
+ | Több információ a limitről: | ||
+ | man limits.conf | ||
+ | |||
+ | ===== Információk a rendszerről ===== | ||
+ | |||
+ | Ha szeretnénk látni mit is tud a processzorunk, akkor használhatjuk a következő parancsot: | ||
+ | grep flags /proc/cpuinfo | ||
+ | Ez ki fog nekünk írni jó sok jelzést: fpu, vme, de, pse, tsc, stb. De mik ezek? | ||
+ | |||
+ | Töltsük le valamelyik kernelt, például az alábbi oldalról: | ||
+ | https://www.kernel.org/ | ||
+ | |||
+ | Bontsuk ki a kernelt. Például a linux-3.9.8.tar.xz állományból, majd | ||
+ | keressük a következő helyen a fejállományt, amely tartalmazza a cpu flagek leírását: | ||
+ | linux-3.9.8/arch/x86/include/asm/cpufeature.h | ||
+ | |||
+ | arch/x86/include/asm/cpufeature.h |