Конфигурация на ядрото на Linux
Ядрото на Linux е много гъвкаво нещо, което ви позволява да конфигурирате много параметри. Параметри като поддържаните устройства и функции се конфигурират, когато ядрото е изградено. Но компилирането на ядрото на Linux няма да бъде обсъждано днес. Ще говорим за настройване на параметрите на ядрото в движение, точно докато работи.
Да, не можем да активираме добавянето на неподдържани модули и драйвери на устройства, но можем да променим параметрите на ядрото на Linux като CPU, памет, пространство на виртуална памет, планировщик на ядрото, мрежов стек и др. Всички тези настройки са достъпни чрез файловата система proc. Разгледахме го подробно в предишната статия, но сега ще се съсредоточим само върху директорията/proc/sys, с която ще конфигурираме ядрото.
Как се прави настройката?
Тук всичко е изключително просто. Тази директория и нейните поддиректории съдържат файлове, това са параметрите и трябва да променим стойностите във файловете. За да направите това, можете да използвате най-простата конструкция от командата echo и оператора за пренасочване на изхода:
ехо "1">/proc/sys/net/ipv4/ip_forward
Стойността 1 ще бъде записана в ipv4_forward. Но променените по този начин параметри не се записват след рестартиране. Преди да помислите как да запазите параметрите на ядрото на Linux от proc, помислете за друг начин да ги модифицирате.
Можете да зададете стойността на параметъра с тази команда:
Но и тази промяна няма да бъде запазена, за да запазите настройката след рестартиране, трябва да добавите опцията -w:
sysctl -w net.ipv4.ip_forward = 1
Можете също така да видите всички налични променливи с един поглед с опцията -a:
abi.vsyscall32 = 1
debug.exception-trace = 1
dev.cdrom.autoclose = 0
dev.cdrom.autoeject = 0
dev.cdrom.check_media = 0
dev.cdrom.debug = 0
.
vm.stat_interval = 1
vm.swappiness = 60
vm.user_reserve_kbytes = 131072
vm.vfs_cache_pressure = 100
vm.zone_reclaim_mode = 0
Всички тези променливи се записват в обикновени конфигурационни файлове за постоянство при рестартиране. Променливите, в зависимост от целта, се разпределят между тези файлове:
- /run/sysctl.d/*.conf
- /etc/sysctl.d/*.conf
- /usr/local/lib/sysctl.d/*.conf
- /usr/lib/sysctl.d/*.conf
- /lib/sysctl.d/*.conf
- /etc/sysctl.conf
Можете също така ръчно да добавяте променливи и техните стойности към тези файлове. Ако искате да върнете стойностите на променливите в състоянието, запазено във файлове и да премахнете промените, изпълнете:
* Прилагане /boot/sysctl.conf-4.1.21-14-default .
kernel.hung_task_timeout_secs = 0
kernel.msgmax = 65536
kernel.msgmnb = 65536
kernel.shmmax = 0xffffffffffffffff
kernel.shmall = 0x0fffffffffffff00
vm.dirty_ratio = 20
Сега знаете как да работите с променливи, по-нататък ще разгледаме значението на някои от най-важните променливи, с които може да бъде конфигурирано ядрото на Linux.
Конфигурация на ядрото на Linux
abi.vsyscall32
Ако е зададено на 1, позволява изпълнение на 32-битови програми на 64-битова система. По подразбиране можете да го изключите и след това да опитате да стартирате, например, скайп.
debug.exception-trace
Когато възникне грешка в ядрото, отпечатайте стойностите на регистрите на процесора и стека на повикванията на процедурата. Активирано по подразбиране.
dev.cdrom.autoclose
Вашият CDROM ще бъде автоматично затворен, когато се опитате да го монтирате, деактивиран по подразбиране.
dev.cdrom.autoeject
CDROM ще бъде отворен след демонтиране на съдържащия се там диск с помощта на командата umount.
dev.hpet.max-user-freq
Максималната честота на генериране на прекъсвания от системния таймер за високи прецизни събития (HPET), който замества RTC на таймера в реално време. По подразбиране 64.
Броят на асинхронните I/O операции на вашата файлова система.
Максималният брой файлови дескриптори, които ядрото може да създаде и обработи. Ако често получавате съобщения за грешка поради невъзможността да създадете дескриптор на файл, увеличете това ограничение. По подразбиране е зададена на 10% от вашата RAM.
fs.inotify.max_queued_events
Подсистемата за инотифициране на ядрото проследява промените във файловата система. Този параметър задава максималния брой събития, които могат да бъдат в опашката, преди да бъдат обработени от програмата.
fs.inotify.max_user_instance
Максимален брой инотифициращи обекти, които един потребител може да създаде.
fs.inotify.max_user_watches
Максималният брой файлове и директории, които може да гледа един обект за известяване.
PID на процеса, който ще получи сигнала, ако се натисне клавишната комбинация Ctrl + Alt + Del
kernel.ctrl-alt-del
Ако стойността на параметъра е 0, системата изпраща сигнал към процеса Init или този, който сте задали в предишната променлива, за да извърши правилно рестартиране. Ако стойността е по-голяма от нула, ще се извърши незабавно рестартиране.
kernel.domainname
Позволява ви да зададете името на домейна на NIS (мрежови интернет услуги) и YP (жълти страници). Но не бъркайте това име на домейн с DNS, те са съвсем различни неща.
kernel.hostname
Името на вашия компютър. Това е най-лесният начин да промените името на компютъра в момента, без да рестартирате.
kernel.modules_disabled
Позволява да се деактивира зареждането на модулите на ядрото.
kernel.panic
Задава броя секунди след паника на ядрото преди рестартиране.
kernel.pid_max
Максималната стойност на PID на процеса. Когато PID достигне тази стойност, ядрото скача обратно до минимум. Стойностите вече не са маркирани.
kernel.random.boot_id
Този файл е само за четене и съдържа уникален идентификатор за произволно изтегляне. Генерирано за всяко изтегляне.
kernel.random.uuid
Генерира произволен UUID при всяка заявка. Също така само за четене.
kernel.randomize_va_space
kernel.sysrq
Позволява ви да активирате или деактивирате управлението на ядрото чрез SysRQ. Налични са следните опции:
- 0 - деактивирайте всички функции
- един - позволяват всички функции
- 2 - позволяват задаване на ниво на регистриране
- 4 - позволяват управлението на клавиатурата
- 8 - активиране на получаването на съобщения за отстраняване на грешки и сметища
- 16. - разрешаване на команда за синхронизиране
- 32 - разрешаване на повторно монтиране на файлови системи само за четене
- 64 - позволяват прекратяване на процеса
- 128 - позволи рестартиране, изключване
- 256 - позволяват контрол на планиране
kernel.threads-макс
Максимално работещи нишки за процеси.
net.ipv4.icmp_echo_ignore_all
Ако е активирано, ядрото ще игнорира всички заявки на icmp. Препоръчва се за защита срещу DDOS атаки.
net.ipv4.icmp_echo_ignore_broadcasts
Точно както в предишната версия, само исканията за излъчване на icmp ще бъдат игнорирани.
net.ipv4.ip_default_ttl
Максималният брой възли, през които изпратеният пакет може да премине, преди да достигне целта.
net.ipv4.ip_forward
Позволете на пакетите да преминават през този компютър. Обикновено тази конфигурация на параметрите на ядрото на Linux е необходима за рутери.
net.ipv4.ip_local_port_range
Обхват на локални портове, които могат да се използват от вашите програми.
net.ipv4.tcp_rfc1337
Задайте на 1, за да защитите компютъра си от TCP TimeWait атака.
net.ipv4.tcp_fin_timeout
Времето за изчакване на връзката след изпращане на FIN пакет. Препоръчва се 15.
net.ipv4.tcp_keepalive_time
Поддържайте връзката активна за определено време, например 300 секунди. След това TCP връзката ще бъде прекъсната.
net.core.rmem_default
Определя размера по подразбиране на буфера за мрежовия сокет за получаване.
net.core.rmem_max
Максимален размер на буфера на сокета за получаване на данни по мрежата.
net.core.wmem_default
Размер на сокета по подразбиране за изпращане на данни по мрежата.
net.core.wmem_max
Максимален размер на буфера на сокета за изпращане на данни по мрежата.
net.ipv4.tcp_rmem
Количеството памет, налично за TCP операция.
vm.dirty_background_ratio
Определя процента от общата системна памет, който демонът на pdflush за фоново записване ще започне да презаписва кеширани данни на диск. По подразбиране е 10, но на бързите системи не е нужно да нулирате често това, така че можете да увеличите този параметър.
vm.dirty_ratio
Подобен параметър. Само този път той показва колко обща RAM трябва да се използва, така че процесът, който записва данни на диска, да инициира запис на кешираните данни директно на твърдия диск.
vm.laptop_mode
Функцията за режим на лаптоп позволява не веднага да записвате данни на твърдия диск след заявка, а да ги съхранява за определено време в RAM. Може да е полезно, ако пестите енергия от батерията и не искате твърдият диск винаги да се върти.
vm.размах
Задава процента на свободната памет, след което данните започват да се прехвърлят към суап дяла; за системи с голям обем памет препоръчителната стойност е 10.
- Конфигуриране на Rutorrent за работа с Nginx, Linux за хора!
- Конфигурация и подобряване на производителността на ядрото на Linux
- Преглед на Gufw - Защитна стена за Ubuntu Linux, Linuxsoid - Новини, статии и рецензии с отворен код
- Конфигуриране на Internet Explorer с помощта на GPO, Blog
- Персонализирайте динамичния органайзер за звукова сцена (dso), Възпроизвеждане на CD/MD, Персонализиране