Kiev1.org Карта сайта Файлы Фотографии Киева
  
Реклама:






Разделы
 
 Sysadmin
 Антиглобалисты
 Ереси и секты
 Катастрофы
 Компьютерные новости
 Непроверенное
 О проекте
 О фотогалерее
 Политика и власть
 Православие
 Предприятия Украины
 Протесты Людей против нового мирового концлагеря
 Разное
 Россия
 Старец Паисий 1924-1994
 Стояние за Истину
 Суды в Украине
 Тайна беззакония
 экуменизм


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться - самое главное думать своей головой и не верить легкомысленно всему что говорят, особенно советское телевидение
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"

Linux специфика



Оптимизация и тюнинг в Linux Увеличение безопасности Linux Установка и работа с пакетами программ в Linux
Linux специфика

Как, после сборки ядра Linux, инициализировать initrd (ядро падает при монтировании root раздела) Автор: as [есть мнение]


initrd - RAM-диск, инициализируемый загрузчиком, требуется для подключения модулей ядра, необходимых
на этапе до монтирования root-раздела, (например, до монтирования нужно подгрузить - ext2/ext3/scsi модули).

1) man initrd - все изумительно описано;
2) после сборки ядра создаем новый initrd:
mkinitrd /boot/initrd-2.4.21 2.4.21;
3) в /etc/lilo.conf:
initrd=/boot/initrd-2.4.21
В mkinitrd сам initrd можно назвать как угодно, но второй параметр обязательно версия ядра.


Как в Linux после kernel panic вместо ожидания действия оператора автоматически выполнять перезагрузку. [есть мнение]


Добавьте в /etc/rc.d/rc.local:
echo 1 > /proc/sys/kernel/panic
Т.е. перезагрузка будет выполнена через 1 сек. после panic, если 0 - то не перезагружать а ждать.


Почему Linux ядро не использует всю память и пишет "Warning only 960MB will be used". [обсудить]


Если добавление в lilo append="mem=1536M" не помогает:

Необходимо пересобрать 2.2.x ядро с опцией CONFIG_2GB=y
Processor type and features -> Maximum Physical Memory -> 2Gb

Если проблема проявляется в ядре 2.4.x - CONFIG_HIGHMEM, CONFIG_HIGHMEM4G или CONFIG_HIGHMEM64G


Ограничения трафика с помощью iproute2 Автор: Z0termaNN [есть мнение]


tc qdisc add dev eth1 root handle 1: htb default 2 r2q 1
tc class add dev eth1 parent 1: classid 1:1 htb rate 10mbit ceil 10mbit mtu 1500
tc class add dev eth1 parent 1:1 classid 1:77 htb rate 32kbit ceil 48kbit mtu 1500 prio 0
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 128kbit ceil 128kbit mtu 1500
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dport 25 flowid 1:77


Переход на журналируемую файловую систему Reiserfs [есть мнение]


- Включаем поддержку Reiserfs в ядре.
- Устанавливаем reiserfsprogs-3.x.0j.tar.gz
- Cоздаем бут дискету (mkbootdisk --device /dev/fd0 2.4.13;
lilo -C /etc/lilo.flop)
- Грузимся с дискеты указав в Lilo приглашении "linux root=/dev/hd init=/bin/bash"
- mkreiserfs /dev/hda1
- mount -t reiserfs /dev/had1 /


Как под Linux установить параметры serial порта (прерывание, адрес порта) [обсудить]


/bin/setserial -b /dev/ttyS2 uart 16450 port 0x2E8 irq 5


Как через poweroff обеспечить выключение системного блока Автор: Alexander [обсудить]


Если при наборе /sbin/poweroff отключение питания не срабатывает, то:
/sbin/modprobe ospm_busmgr
/sbin/modprobe ospm_system
или в /etc/modules.conf:
alias ospm-busmgr ospm_busmgr
alias ospm-busmgr ospm_system


Как посмотреть параметры и возможные опции для модуля ядра Linux [обсудить]


Информация о авторе.
modinfo -a модуль
Описание модуля.
modinfo -d модуль
Список возможных параметров.
modinfo -p модуль


Как в Linux выставить принудительно 100Mb FullDuplex для Intel EtherExpress Pro100, а то auto-select с некоторыми свичами не работает. [обсудить]


/sbin/mii-tool -F 100baseTx-FD eth0
Для модуля:
В /etc/modules.conf:
options eepro100 options=0x200 full_duplex=1
alias eth0 eepro100
insmod eepro100.o debug=1 options=0x200
Для ядра в boot приглашении:
ether=0,0,0x200,eth0
PS. Для драйвера версии меньше 1.14 (mod_info -a eepro100) вместо 0x200 следует писать 0x30.


Как перейти в Linux на файловую систему ext3 [обсудить]


Выкачиваем и накладываем ext3 патчи (ftp://ftp.kernel.org/pub/linux/kernel/people/sct/ext3/) и
утилиты (ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/).
Преобразуем ext2 FS в ext3 (для отмонтированного раздела hda1):
tune2fs -j /dev/hda1
Обратное преобразование (из ext3 в ext2):
tune2fs -O ^has_journal /dev/hda1
fsck.ext2 -f /dev/hdaX
Для форматирование нового ext3 раздела:
mke2fs -j /dev/hda1
Как обновить версию журнала:
mount /dev/hdaX /mnt -o journal=update


Как посмотреть установки конфигурации для бинарного ядра Linux [обсудить]


Если ядро было собрано с опцией CONFIG_PROC_CONFIG=Y:
zcat /proc/config.gz


Как узнать подробную информацию о EX2FS, размер блоков, системные данные и т.д. [обсудить]


общие данные из суперблока - dumpe2fs -h /dev/раздел
информацию о каждом блоке - dumpe2fs /dev/раздел
Для FreeBSD нужно использовать dumpfs.



Оптимизация и тюнинг в Linux

Как увеличить максимальное число процессов для 2.2.x Linux ядра [обсудить]


vi /usr/src/linux/include/linux/tasks.h
#define NR_TASKS 512
#define MAX_TASKS_PER_USER (NR_TASKS/2)


Чем хороши LVM, ext3, reiserfs и xfs Автор: Денис Смирнов [обсудить]


LVM - позволяет гибко создавать, удалять и изменять размеры разделов без потери данных.

ext3 - расширение ext2 для журналирования. Поддерживает журналирование данных, а не только метаданных (при data=journal).

reiserfs - высокая скорость работы с каталогами с большим числом файлов, компактно хранит хвосты от файлов,
поддерживает увеличение размера раздела без остановки сервера.

xfs - быстрая работа с файлами большого размера, великолепная надёжность, поддержка ACL.


Включение Hyper-Threading scheduler в Linux, для CPU Xeon. [обсудить]


Linux поддерживает Hyper-Threading начиная с ядра 2.4.17.
Ядро должно быть собрано как SMP,
При загрузке, передаем параметр acpismp=force (в lilo: append=" acpismp=force")
проверка работы:
cat /proc/cpuinfo, если среди flags есть "ht", то Hyper-Threading активирован.


Как оптимизировать подсистемы распределения памяти в Linux. [обсудить]


/usr/src/linux/Documenation/sysctl/vm.txt
/usr/src/linux/Documenation/filesystems/proc.txt
Параметры для работы демона bdflush (vm.bdflush)
echo "100 2000 128 512 500 5000 60 0 0" > /proc/sys/vm/bdflush
Управление объемом ОЗУ (в %) выделенного для системных буфферов (лучше не трогать)
echo "70 10 60" > /proc/sys/vm/buffermem
Максимальный размер сегмента shared memory.
echo 167772160 > /proc/sys/kernel/shmmax # (def: 33554432)


Оптимизация TCP/IP стека в Linux для нагруженного сервера. [обсудить]


/usr/src/linux/Documenation/filesystems/proc.txt
/usr/src/linux/Documenation/networking/ip-sysctl.txt
Далее в скобках указаны значения по умолчанию для 2.2.x/2.4.x ядер.
Если ядро собрано с CONFIG_SYNCOOKIES для защиты от syn флуда (net.ipv4.tcpsyn_cookies)
echo 1 > /proc/sys/net/ipv4/tcp_syncookies #(0/0)
Увеличиваем размер backlog очереди (аналог sysctl net.ipv4.tcp_max_syn_backlog).
echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog #(128/1024)
Число начальных SYN и SYNACK пересылок для TCP соединения (лучше не трогать).
echo 4 > /proc/sys/net/ipv4/tcp_synack_retries #(x/5)
echo 4 > /proc/sys/net/ipv4/tcp_syn_retries #(10/5)
Какие порты использовать в качестве локальных TCP и UDP портов (sysctl net.ipv4.ip_local_port_range).
echo "16384 61000" > /proc/sys/net/ipv4/ip_local_port_range #(1024 4999/32768 61000)
Сколько секунд ожидать приема FIN до полного закрытия сокета.
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout #(180/60)
Как часто посылать сообщение о поддержании keep alive соединения.
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time #(7200/7200)
Сколько пакетов проверки keepalive посылать, прежде чем соединение будет закрыто.
echo 2 > /proc/sys/net/ipv4/tcp_keepalive_probes #(9/9)
Запрещаем TCP window scaling (net.ipv4.tcp_window_scaling)
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling #(1/1)
Запрещаем selective acknowledgements, RFC2018 (net.ipv4.tcp_sack).
echo 0 > /proc/sys/net/ipv4/tcp_sack #(1/1)
Запрещаем TCP timestamps, RFC1323 (net.ipv4.tcp_timestamps)
echo 0 > /proc/sys/net/ipv4/tcp_timestamps #(1/1)
Увеличиваем размер буфера для приема и отправки данных через сокеты.
echo 1048576 > /proc/sys/net/core/rmem_max #(65535/autotune)
echo 1048576 > /proc/sys/net/core/rmem_default #(65535/autotune)
echo 1048576 > /proc/sys/net/core/wmem_max #(65535/autotune)
echo 1048576 > /proc/sys/net/core/wmem_default #(65535/autotune)

Если не требуется форвадинг пакетов (машина не рутер) выключаем.
(net.ipv4.ip_forward и net.ipv4.conf.all.forwarding)
echo 0 /proc/sys/net/ipv4/ip_forward #(0/0)
echo 0 /proc/sys/net/ipv4/conf/all/forwarding #(0/0)
Через какое время убивать соединеие закрытое на нашей стороне (net.ipv4.tcp_orphan_retries)
echo 1 > /proc/sys/net/ipv4/tcp_orphan_retries #(x/7)


Оптимизация дисковой подсистемы в Linux [обсудить]


man hdparm (например: /sbin/hdparm -c3 -d1 -X34 /dev/hda)
man elvtune
man tune2fs
echo 128000 > /proc/sys/fs/inode-max # def 16384
echo 64000 > /proc/sys/fs/file-max # def 4096 Число одновременно открытых файлов.
cd /proc/sys/fs/ (в 2.4.x работает автотюнинг)
/usr/src/linux/Documentation/sysctl/fs.txt
/usr/src/linux/Documentation/filesystems/proc.txt


Как под Linux создать ramdisk большого размера для использования в качестве временного хранилища. [обсудить]


Советую использовать tmpfs или ramfs
(разница в том, что данные tmpfs подвержены своппингу, ramfs создана для тестов, а ramdisk всегда хранится в ОЗУ)
/usr/src/linux/Documentation/filesystems/tmpfs.txt
mount -t tmpfs -osize=256M /dev/shm1 /mnt1
Для ramfs:
mount -t ramfs -omaxsize=256M none /mnt1
Если желание использовать ramdisk осталось, читаем
/usr/src/linux/Documentation/ramdisk.txt
mkdir /ramdisk
Для 256Мб ramdisk в lilo.conf добавляем:
append="ramdisk_size=256000"
Запускаем lilo и перезагружаем машину.
mke2fs /dev/ram0
mount -t -ext2 /dev/ram0 /ramdisk


Как увеличить количество shared memory для работы высоконагруженного PostgreSQL [обсудить]


В linux:
echo 134217728 >/proc/sys/kernel/shmall
echo 134217728 >/proc/sys/kernel/shmmax
В конфиге ядра FreeBSD:
options SYSVSHM
options SHMMAXPGS=4096
options SHMMAX="(SHMMAXPGS*PAGE_SIZE+1)"
options SHMMIN=2
options SHMMNI=256
options SHMSEG=256
options SYSVSEM
options SEMMAP=512
options SEMMNI=512
options SEMMNS=1024
options SEMMNU=512
options SEMMSL=256
options SEMOPM=256
options SEMUME=64
options SYSVMSG
options MSGMNB=8192
options MSGMNI=256
options MSGSEG=8192
options MSGSSZ=16
options MSGTQL=128
options NMBCLUSTERS=16786
options NBUF=2048
maxusers 512



Увеличение безопасности Linux

Как защитить Linux от некоторых DoS атак. [обсудить]


Настройки для увеличения безопасности:
/sbin/sysctl -w net.ipv4.conf.all.send_redirects=0
/sbin/sysctl -w net.ipv4.conf.all.accept_redirects=0
/sbin/sysctl -w net.ipv4.conf.all.accept_source_route=0
/sbin/sysctl -w net.ipv4.conf.all.mc_forwarding=0
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
/sbin/sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
/sbin/sysctl -w net.ipv4.conf.all.log_martians=1
/sbin/sysctl -w net.ipv4.conf.all.rp_filter=1


Как в linux преобразовать /etc/passwd в shadow [обсудить]


/usr/sbin/pwconv


Как в linux разрешить su только для членов группы wheel [обсудить]


Добавить в /etc/pam.d/su
auth required pam_wheel.so



Установка и работа с пакетами программ в Linux

Подсказка по использованию APT [есть мнение]


apt-get update - обновление локального кэша пакетов;
apt-cache search маска - поиск нужного пакета;
apt-cache show пакет - просмотр информации о пакете;
apt-get install пакет - установка пакета;
apt-get remove пакет - удаление пакета;
apt-get update; apt-get upgrade - полное обновление системы.


Как, после сборки ядра Linux, инициализировать initrd (ядро падает при монтировании root раздела) Автор: as [есть мнение]


initrd - RAM-диск, инициализируемый загрузчиком, требуется для подключения модулей ядра, необходимых
на этапе до монтирования root-раздела, (например, до монтирования нужно подгрузить - ext2/ext3/scsi модули).

1) man initrd - все изумительно описано;
2) после сборки ядра создаем новый initrd:
mkinitrd /boot/initrd-2.4.21 2.4.21;
3) в /etc/lilo.conf:
initrd=/boot/initrd-2.4.21
В mkinitrd сам initrd можно назвать как угодно, но второй параметр обязательно версия ядра.


Как в RedHat управлять из командной строки runlevel (init.d) скриптами [обсудить]


Перезапуск сервисов:
service имя start
service имя stop
service имя restart
Добавление или удаление сервисов:
chkconfig --list
chkconfig --add имя
chkconfig --del имя
chkconfig [--level уровень] имя <on|off|reset>


Подсказка по опциям RPM. [обсудить]


Установка пакетов: rpm -i <пакеты>
Деинсталляция пакета: rpm -e <пакеты>
Обновление или установка пакетов: rpm -U <пакеты>
Только обновление пакетов если они ранее установлены: rpm -F <пакеты>
Полезно: --force -установить несмотря ни на что, --nodeps - без проверки зависимости, -vh - приятный вывод, --test - проверка.
Информация о пакете: rpm -q <пакет>
Список всех пакетов в системе: rpm -q -a
Узнать какому пакету принадлежит файл: rpm -q -f <файл>
Полезно: -i - более полное описание пакета, -R - список зависимостей пакета, -l - список файлов в пакете,
-c - список конфигов в пакете, -d - список документации.
Установка из исходников: rpm --recompile <srpm> , собрать бинарный пакет: rpm --rebuild <srpm>.
Перестроить базу: rpm --rebuilddb


Как вручную распаковать rpm файл [обсудить]


rpm2cpio file.rpm | cpio -idmuv --no-absolute-filenames


Как узнать к какому пакету принадлежит файл [обсудить]


rpm -qf file





Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"