PDA

Показать полную графическую версию : Оптимизация ядра


SantaXP
30-06-2005, 20:26
Пользовался поиском, но ничего путного не нашёл. Собственно, к чему я спрашиваю. Я несколько не доволен производительностью системы в иксах. Конечно, тут ещё проблема моей радеоновской видеокарты, но всё же есть у меня один вопросик. Вот лежит, скажем, в директории /boot папка kernel и весила она 18 с чем то мегабайт. Далее, я пересобрал ядро вот с таким кодом:

#YOHOHO kernel
#2005 y. june 22
#Made by SantaXP

machine i386
cpu I686_CPU
ident YOHOHO
maxusers 0
makeoptions DEBUG=-g

options CPU_ENABLE_SSE
options PREEMPTION

options MAXDSIZ="(256*1024*1024)"
options MAXSSIZ="(256*1024*1024)"
options DFLDSIZ="(256*1024*1024)"

# To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.

options SCHED_4BSD # 4BSD scheduler
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
options ADAPTIVE_GIANT # Giant mutex is adaptive.

device apic # I/O APIC

# Bus support. Do not remove isa, even if you have no isa slots
device isa
device eisa
device pci

# Floppy drives
device fdc

# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
options ATA_STATIC_ID # Static device numbering

# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device cd # CD

# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse

device vga # VGA video card driver
options MAXCONS=16
device splash # Splash screen and screen saver support
device agp # support several AGP chipsets
device radeondrm

device splash # Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device sc

options SC_PIXEL_MODE
options SC_MOUSE_CHAR=0x3

# Enable this for the pcvt (VT220 compatible) console driver
#device vt
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor

# Floating point support - do not disable.
device npx

# Power management support (see NOTES for more options)
#device apm
# Add suspend/resume support for the i8254.
device pmtimer

# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports

# Parallel port
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device

# Pseudo devices.
device loop # Network loopback
device mem # Memory and kernel memory devices
device io # I/O device
device random # Entropy device
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
device bpf # Berkeley packet filter

# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse

#Firewall
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10



И теперь папка весит примерно 17 мегабайт. Вопрос - куда уходят байты??? :read: :search:
Видеокарта у меня Ati Radeon 9600 SE, Процессор AMD Athlon 2500+ разогнаный до 3000+, Пишущий ДВД-РОМ, встроеный модем.
----
Так вот, я слышал где-т на форуме, что можно убирать из папки /boot/kernel (не волнуйтесь - запасные ядра есть) ненужные модули (например acpi_toshiba.ko - явно не ко мне ;) ) и повышается производительность. Так ли это на самом деле??? :o
----
И ещё, в /boot/kernel обнаружил модуль amd.ko - смогу ли я получить от него какой-либо выигрыш в производительности???

mar
30-06-2005, 22:08
вообще-то мне всегда казалось, что модуль, пока он не загружен в память, (а просто лежа в /boot/kernel он в память не попадает), ничему не мешает. Проверить очень просто: сравните результаты команд
kldstat и ls -l /boot/kernel/ |grep .ko и "почувствуйте разницу" :)

FrIcE
01-07-2005, 07:32
2SantaXP этот модуль к процессору не имеет никакого отношения (man 4 amd).

Модули, как уже сказала mar ничем не мешают, а подргужаются по мере необходимости.

На счет места: в конфиге по умолчанию (GENERIC) в ядро статически компилируется куча драйверов, неудивительно, что после "обработаки напильником" оно полегчало, да и флаги компилятора могут влиять на размер получаемых файлов.

SantaXP
01-07-2005, 13:48
FrIcE
Хм... Тогда каким способом можно ядро оптимизировать??? Может пересобрать другой командой???

mar
01-07-2005, 13:57
SantaXP
ну прежде всего можно внимательно посмотреть на имеющееся на предмет - не выкинуть ли еще чего. (Например, Вы действительно испольщуете tcp/ip v6? и nfs? и клиент и сервер? ну и так далее...
Кстати, а что в иксах не так? если тормоза именно на видеокарточке-видеопамяти, то новое ядро может не сильно помочь.
Ну и top Вам что показывает? (раз уж занимаемся оптимизацией)

SantaXP
01-07-2005, 21:56
mar
Что за "top"??? А... Нашёл, прога полезная кстати! Лучше, чем ps... Вот:

% top

last pid: 900; load averages: 0.10, 0.11, 0.09 up 0+00:22:31 21:49:54
71 processes: 4 running, 67 sleeping
CPU states: 16.4% user, 0.0% nice, 4.9% system, 3.3% interrupt, 75.4% idle
Mem: 136M Active, 187M Inact, 35M Wired, 868K Cache, 60M Buf, 134M Free
Swap: 1024M Total, 1024M Free

PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
661 santaxp 96 0 156M 41528K select 0:23 0.34% 0.34% Xorg
731 santaxp 20 0 26992K 16000K kserel 0:25 0.00% 0.00% xmms
838 santaxp 96 0 36272K 33412K select 0:18 0.00% 0.00% opera
757 santaxp 96 0 16988K 13700K RUN 0:02 0.00% 0.00% wnck-applet
729 santaxp 20 0 27056K 23820K kserel 0:02 0.00% 0.00% nautilus
666 santaxp 96 0 11060K 9912K select 0:02 0.00% 0.00% gconfd-2
727 santaxp 96 0 21328K 18108K select 0:02 0.00% 0.00% gnome-panel
725 santaxp 96 0 12432K 9376K select 0:01 0.00% 0.00% metacity
789 santaxp 96 0 18360K 14204K RUN 0:01 0.00% 0.00% gnome-termi
350 root 96 0 1232K 752K select 0:01 0.00% 0.00% moused
759 santaxp 96 0 15488K 12540K select 0:01 0.00% 0.00% multiload-a
891 santaxp 96 0 18700K 16256K select 0:01 0.00% 0.00% gnomeicu
675 santaxp 96 0 18996K 14272K select 0:01 0.00% 0.00% gnome-setti
764 santaxp 96 0 17192K 13160K select 0:01 0.00% 0.00% mixer_apple
761 santaxp 96 0 16836K 14556K select 0:01 0.00% 0.00% gnome-keybo
799 santaxp 96 0 3332K 2328K select 0:01 0.00% 0.00% ppp
664 santaxp 96 0 16120K 12152K select 0:01 0.00% 0.00% gnome-sessi
last pid: 903; load averages: 0.17, 0.13, 0.09 up 0+00:23:34 21:50:57
72 processes: 3 running, 69 sleeping
CPU states: 9.3% user, 0.0% nice, 0.8% system, 5.8% interrupt, 84.0% idle
Mem: 136M Active, 187M Inact, 35M Wired, 868K Cache, 60M Buf, 134M Free
Swap: 1024M Total, 1024M Free

PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
661 santaxp 96 0 156M 41528K select 0:30 12.21% 12.21% Xorg
731 santaxp 20 0 26992K 16000K kserel 0:27 0.00% 0.00% xmms
838 santaxp 96 0 36272K 33412K select 0:18 0.00% 0.00% opera
789 santaxp 20 0 18360K 14212K kserel 0:03 0.00% 0.00% gnome-terminal
757 santaxp 96 0 16988K 13700K select 0:02 0.00% 0.00% wnck-applet
729 santaxp 20 0 27056K 23820K kserel 0:02 0.00% 0.00% nautilus
666 santaxp 96 0 11060K 9912K select 0:02 0.00% 0.00% gconfd-2
727 santaxp 96 0 21328K 18108K select 0:02 0.00% 0.00% gnome-panel
725 santaxp 96 0 12432K 9376K select 0:01 0.00% 0.00% metacity
350 root 96 0 1232K 752K select 0:01 0.00% 0.00% moused
759 santaxp 96 0 15488K 12540K select 0:01 0.00% 0.00% multiload-applet-2
891 santaxp 96 0 18700K 16256K select 0:01 0.00% 0.00% gnomeicu
675 santaxp 96 0 18996K 14272K select 0:01 0.00% 0.00% gnome-settings-daem
764 santaxp 96 0 17192K 13160K select 0:01 0.00% 0.00% mixer_applet2
761 santaxp 96 0 16836K 14556K select 0:01 0.00% 0.00% gnome-keyboard-appl
799 santaxp 96 0 3332K 2328K select 0:01 0.00% 0.00% ppp
664 santaxp 96 0 16120K 12152K select 0:01 0.00% 0.00% gnome-session
766 santaxp 96 0 14436K 11488K select 0:00 0.00% 0.00% clock-applet
692 santaxp 96 0 3212K 2544K select 0:00 0.00% 0.00% xscreensaver
707 santaxp 96 0 7332K 4820K select 0:00 0.00% 0.00% gnome-smproxy
673 santaxp 96 0 5756K 4164K select 0:00 0.00% 0.00% bonobo-activation-s
566 mysql 20 0 38316K 13888K kserel 0:00 0.00% 0.00% mysqld
735 santaxp 20 0 7556K 5412K kserel 0:00 0.00% 0.00% gnome-vfs-daemon
671 santaxp 96 0 3624K 3168K select 0:00 0.00% 0.00% esd
762 santaxp -8 0 2736K 1172K piperd 0:00 0.00% 0.00% libgtop_server2
900 santaxp 96 0 2368K 1660K RUN 0:00 0.00% 0.00% top
502 root 96 0 6264K 4332K select 0:00 0.00% 0.00% gdnc
791 santaxp 20 0 2532K 2260K pause 0:00 0.00% 0.00% zsh
850 root 96 0 2024K 1584K select 0:00 0.00% 0.00% httpd
273 root 96 0 1312K 904K select 0:00 0.00% 0.00% syslogd
790 santaxp 4 0 2948K 1468K sbwait 0:00 0.00% 0.00% gnome-pty-helper

-----
tcp/ip6 мне действительно нужны (а как я по вашему ещё то эти вопросы в инте задаю :) ), Разве что драйвер vesa нафиг не нужен. nfs тоже, а вот насчёт сервера не понимаю - Апач нужен, MySQL тоже. Только вот проклятый sendmail лезет и лезет на каждой загрузке, напару с smnpd (А это, что такое???)... Приходится растреливать наместе с killall...
-----
Ну, Гном ща более менее, осталось только разобраться с 2-мя видео карточками дновременно на одной машине, а так - поставил параметр анимции на "быструю" и теперь пахает почти в 2 ~ 1.5 раза быстрее.А вообще - на мой взгляд желание до максимума оптимизировать систему (да ещё какую!) у меня появилось ещё со времён Винды, где данная проблема стоит острее, там, правда, несколько иначе - приходится вручную вырубать почти 2/3 сервисов. :)

SantaXP
01-07-2005, 21:57
Кстати, а нет ли каких-либо модулей для моего процессора (amd athlon)???

Belansky
01-07-2005, 23:13
SantaXP
Относительно конфига ядра. Можете смело закоментировать следующее:
maxusers 0 - в пятой ветке этот параметр необязателен. Система и так наилучшим образом рассчитывает допустимое колличество одновременно работающих процессов.
makeoptions DEBUG=-g - зачем включать в ядро отладочную информацию? Оно только распухает от этого.
options INET6 - Сомневаюсь, что дома Вам нужен tcp/ip шестой версии. Данная версия пока мало распространена, все больше в эксперементаторских целях.
options NFSCLIENT
options NFSSERVER
options NFS_ROOT -также сомневаюсь, что Вы используете сетевую файловую систему NFS.
Далее.
sendmail лезет и лезет на каждой загрузке
Пропишите в /etc/rc.conf sendmail_enable="NO"
smnpd (А это, что такое???).
SNMP (Simple Network Management Protocol) - простой протокол управлению сетью. Предназначен для мониторинга состояния сети. Можете отключить.

mar
02-07-2005, 00:06
SantaXP
tcp/ip6 мне действительно нужны (а как я по вашему ещё то эти вопросы в инте задаю )
по-моему, как и большинство остальных: через tcp/ip4 :)
smnpd - прибить на корню. Кстати, а зачем его подымали? (хотя это уже про демонов, а не про ядро :))
Про остальное - уже сказано.

SantaXP
02-07-2005, 02:36
mar
Э... В том то и дело, что никак! У меня в rc.conf прописано:
inetd_enable="NO"
Хотя, если к inetd это не относится, то я не знаю как вообще он появился в процессах... А вот апач наоборот - пишу apache_enable="YES" и ничего (собирал из сырцов и не из пакетов)...

mar
02-07-2005, 17:03
SantaXP
про snmp - может, поставили что-то, что потребовало snmp... (можете заглянуть в ls -l /usr/local/etc/rc.d/)
про размер ядра: кстати, размер ядра это все-таки размер /boot/kernel/kernel, а не /boot/kernel/* (мы уже договорились, что модули в памяти не сидят, пока их туда не поместили принудительно) :)
про apache надеюсь, "сырцы" были подхвачены из /usr/ports/www ?

SantaXP
02-07-2005, 22:23
mar
Про апач... Э... Вообще-то нет... :)

FrIcE
04-07-2005, 09:09
Ну тогда нет скрипта на автозапуск демона при старте, хоть что прописывай, работать не будет ;)
В этом случае можно взять скрипт из порта и воткнуть в /usr/local/etc/rc.d, перед этим подработав его напильником.
Насчёт sendmail + snmpd: в /etc/rc.d
sendmail_enable="none" # убивает его на корню
snmpd_enable="no"

Belansky
05-07-2005, 08:58
SantaXP
Почитайте статью (http://linuxshop.ru/unix4all/?cid=&id=342) Алексея Федорчука, в которой описана структура файла GENERIC. Файл для версии 4.x, но многое актуально и для пятой ветки.




© OSzone.net 2001-2012