Народ, у меня старый комп, на который я повесил Фрю7, всё бы ничего, но потребовалось на него повесить ещё пару прог, проблема в том, что на компе всего 128Мб ОЗУ, и почти вся она используется ОСью, что, очевидно не есть правильно, конечно, можно на всё забить, т.к. есть свап, который всё простит, но всёж хотелось бы разобраться, ибо есть же роутеры на ФриВРТ (она основана на ФриБСД), так вот у них 8-16Мб ОЗУ и они обладают большим функционалом, нежели мой комп :(. Самое обидное -- я честно собирал кастомное ядро, закоментировав всё не нужное, не ставил Х-ов, не ставил ненужных прог (кроме мс, но это святое :) ) даже баш не стоит, сижу на цсш, а эта гадасть жрёт всю память, и утечек нет, что совсем уж не понятно :(Конечно, наверняка куча оптимизаторов, но хотелось бы сделать всё ручками, народ, куда копать?
--
С уважением,
Alex123.
Это нормально. Ядро юзает свободную память под кэши всякие, память будет освобождаться по требованию како-либо процесса, если это возможно. Редко используемые страницы будут сваливаться в своп. Это как бэ типа все ускоряет работу ОС. Таковы особенности работы с памятью.Удачи тебе, борец за свободную память. :-)
>Конечно, наверняка куча оптимизаторов, но хотелось бы сделать всё ручками, народ, кудаединственный реальный оптимизитор - пересборка мира
убрать их системы не используемые компоненты, из ядра большинство отсутствующего железа.
>>Конечно, наверняка куча оптимизаторов, но хотелось бы сделать всё ручками, народ, куда
>
>единственный реальный оптимизитор - пересборка мира
>убрать их системы не используемые компоненты, из ядра большинство отсутствующего железа.Ядро почищено основательно, тоже подумывал о пересборки мира, но как его оптимизировать и где? Как-то пересобирал из серцов, но результата не принесло :(
Ну и что из того что забирает всю память, оно при этом тормозит или же нет, на тему пересборки, пересобирайте, но под конкретный процессор....
Покажите kldstat и ps ax
>Покажите kldstat и ps ax
# kldstat
Id Refs Address Size Name
1 4 0xc0400000 4968f0 kernel
2 1 0xc0897000 6da4 apm.ko
3 1 0xc089e000 2d40 alias_ftp.ko
# ps ax
PID TT STAT TIME COMMAND
0 ?? DLs 0:01,03 [swapper]
1 ?? ILs 0:00,07 /sbin/init --
2 ?? DL 0:28,76 [g_event]
3 ?? DL 0:41,30 [g_up]
4 ?? DL 0:53,75 [g_down]
5 ?? DL 0:00,00 [kqueue taskq]
6 ?? DL 0:00,00 [acpi_task_0]
7 ?? DL 0:00,00 [acpi_task_1]
8 ?? DL 0:00,00 [acpi_task_2]
9 ?? DL 0:00,00 [xpt_thrd]
10 ?? DL 0:00,00 [audit]
11 ?? RL 6963:12,52 [idle]
12 ?? WL 0:00,00 [swi1: net]
13 ?? WL 6:00,95 [swi4: clock sio]
14 ?? WL 0:00,00 [swi3: vm]
15 ?? DL 0:52,93 [yarrow]
16 ?? WL 0:00,00 [swi6: Giant taskq]
17 ?? WL 0:00,24 [swi6: task queue]
18 ?? WL 0:00,00 [swi2: cambio]
19 ?? WL 0:00,00 [swi5: +]
20 ?? DL 0:00,00 [thread taskq]
21 ?? WL 0:00,00 [irq14: ata0]
22 ?? WL 0:12,45 [irq15: ata1]
23 ?? WL 3:10,30 [irq11: pcm0 rl2+]
24 ?? DL 0:00,05 [usb0]
25 ?? DL 0:00,00 [usbtask-hc]
26 ?? DL 0:00,00 [usbtask-dr]
27 ?? WL 1:52,50 [irq9: rl1 intsmb0]
28 ?? WL 0:14,60 [irq10: rl0]
29 ?? WL 0:00,00 [irq1: atkbd0]
30 ?? DL 0:03,04 [fdc0]
31 ?? WL 0:00,00 [irq7: ppbus0 ppc0]
32 ?? WL 0:00,00 [swi0: sio]
33 ?? DL 0:00,97 [pagedaemon]
34 ?? DL 0:00,00 [vmdaemon]
35 ?? DL 0:00,01 [pagezero]
36 ?? DL 0:03,08 [bufdaemon]
37 ?? DL 0:06,04 [vnlru]
38 ?? DL 2:31,60 [syncer]
39 ?? DL 0:11,99 [softdepflush]
40 ?? DL 0:28,03 [schedcpu]
575 ?? Is 0:00,01 /sbin/devd
671 ?? Is 0:06,67 /usr/sbin/syslogd -s
786 ?? Is 0:00,02 /usr/sbin/sshd
792 ?? Ss 0:17,14 sendmail: accepting connections (sendmail)
796 ?? Is 0:00,42 sendmail: Queue runner@00:30:00 for /var/spool/client
802 ?? Ss 0:03,32 /usr/sbin/cron -s
816 ?? I 0:00,01 /usr/local/sbin/kav4proxy-kavicapserver -C /usr/local
846 ?? Is 0:00,00 /usr/sbin/inetd -wW -C 60
867 ?? S 0:00,84 /usr/libexec/getty Pc ttyv0
868 ?? S 0:00,86 /usr/libexec/getty Pc ttyv1
869 ?? S 0:00,86 /usr/libexec/getty Pc ttyv2
870 ?? S 0:00,84 /usr/libexec/getty Pc ttyv3
871 ?? S 0:00,85 /usr/libexec/getty Pc ttyv4
872 ?? S 0:01,33 /usr/libexec/getty Pc ttyv5
873 ?? S 0:00,85 /usr/libexec/getty Pc ttyv6
874 ?? S 0:00,84 /usr/libexec/getty Pc ttyv7
15867 ?? Is 0:00,00 dhclient: rl0 (dhclient)
17098 ?? Ss 0:00,15 sshd: root@ttyp0 (sshd)
17102 p0 Ss 0:00,11 -csh (csh)
17114 p0 R+ 0:00,01 ps ax
15843 p1- I 0:00,01 dhclient: rl0 [priv] (dhclient)
># kldstat
>Id Refs Address Size Name
>
> 1 4 0xc0400000 4968f0 kernelЯдро под 5М - много (20-25%) лишнего (звук, COM-LPT, флоп, файловые системы, USB)
Можно отталкиваться отoptions SCHED_ULE # ULE scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options FFS # Berkeley Fast Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
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 /devdevice acpi
device pcidevice ata
device atadisk # ATA disk drives
options ATA_STATIC_ID # Static device numberingdevice atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device vga # VGA video card driver
device scdevice loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device pty # Pseudo-ttys (telnet etc)
device bpf # Berkeley packet filterdevice miibus
device rl>sendmail: accepting connections (sendmail)
>sendmail: Queue runner@00:30:00 for /var/spool/clientОтключаемо в rc.conf
>/usr/sbin/inetd -wW -C 60
Тоже не нужно
>0:00,84 /usr/libexec/getty Pc ttyv0
> 868 ?? S
>0:00,86 /usr/libexec/getty Pc ttyv1Пары консолей д.б. достаточно - в /etc/ttys для всех остальных ttyv2-7 ставим off
Ещё мир можно пересобрать без поддержки ipv6
Но всё это - мелочи, т.к.
>0:00,01 /usr/local/sbin/kav4proxy-kavicapserver -C /usr/localвот кто ест память.
>Можно отталкиваться от
>
>options SCHED_ULE # ULE schedulerи так нет
>options PREEMPTION # Enable kernel thread preemption
Ок
>options INET # InterNETworkingА это инет и ипфв не отрубит?
>options FFS # Berkeley Fast FilesystemОк
>options PROCFS # Process filesystem (requires PSEUDOFS)отрублена
>options PSEUDOFS # Pseudo-filesystem frameworkотрублена
>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
Для п2 безопасно?
>options KBD_INSTALL_CDEV # install a CDEV entry in /devОк
>device acpiОтрублен
>device pciу мну все сетевухи пси, безопасно?
>device ata
Это же за хард отвечает?
>device atadisk # ATA disk drivesБыла идея парковать головки харда при простое...
>options ATA_STATIC_ID # Static device numbering
ок, а это безопасно?
>device atkbdc # AT keyboard controller
>device atkbd # AT keyboard
>device psm # PS/2 mouse
>device vga # VGA video card driverнеужели мышь и клава много жрёт?
>device scОк
>device loop # Network loopbackА сквид работоспособность не утратит?
>device random # Entropy deviceиспользую ВПН/пппое, пахать без оного будут?
>device ether # Ethernet supportа сеть не накроется?
>device pty # Pseudo-ttys (telnet etc)юзаю ссх, будет пахать?
>device bpf # Berkeley packet filterОн для дхцп клиента кажись нужен...
>
>device miibus
>device rlУ меня все сетевухи реалтеки, будут пахать без этих двух?
>
>>sendmail: accepting connections (sendmail)
>>sendmail: Queue runner@00:30:00 for /var/spool/clientОк
>Отключаемо в rc.conf
>
>>/usr/sbin/inetd -wW -C 60
>
>Тоже не нужно?? точно?
>>0:00,84 /usr/libexec/getty Pc ttyv0
>> 868 ?? S
>>0:00,86 /usr/libexec/getty Pc ttyv1
>
>Пары консолей д.б. достаточно - в /etc/ttys для всех остальных ttyv2-7 ставим
>offОк
>Ещё мир можно пересобрать без поддержки ipv6Ок тоже подумывал, только надо найти ещё какие-нить оптимизации, типа j4 и т.д.
>Но всё это - мелочи, т.к.
>>0:00,01 /usr/local/sbin/kav4proxy-kavicapserver -C /usr/local
>
>вот кто ест память.Он не загружен -- в топ не отображается.... да и жрёт всего около 20Мб...
Тебе написали что нужно ОСТАВИТЬ!
>Тебе написали что нужно ОСТАВИТЬ!Упс, но у мну и так без половины того работает....
Ну юсб и звук нужны....а, забыл написать в ядре торчит фаерволл ипфв, может по этому оно больше?
>Он не загружен -- в топ не отображается.... да и жрёт
>всего около 20Мб...а точнее:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
kluser 816 0,0 1,1 4208 1344 ?? I сб21 0:00,01 /usr/local/sbin/kav4pr т.е 5.5 Мб...А где всё остальное?
21 processes: 1 running, 20 sleeping
CPU: 0.0% user, 0.0% nice, 0.0% system, 0.4% interrupt, 99.6% idle
Mem: 14M Active, 69M Inact, 23M Wired, 4748K Cache, 22M Buf, 6064K Free
Swap: 128M Total, 128M Freeот куда взялись эти 122Мб?
>21 processes: 1 running, 20 sleeping
>CPU: 0.0% user, 0.0% nice, 0.0% system, 0.4%
>interrupt, 99.6% idle
>Mem: 14M Active, 69M Inact, 23M Wired, 4748K Cache, 22M Buf, 6064K Free
>Swap: 128M Total, 128M Free
>
>от куда взялись эти 122Мб?еще раз и медленно:
вы пока не понимаете, как FreeBSD управляет памятью. зачем судорожно пытаться оптимизировать то, в чем вы еще не разбираетесь?
можно сказать, что у вас свободно 128 - 14 (active) - 23 (wired) = 91 MB. потому что если процессу будет не хватать тех 6064K, что вообще никак не используются, ядро начнет заимствовать память, помеченную как inact, cache, buf.
>можно сказать, что у вас свободно 128 - 14 (active) - 23
>(wired) = 91 MB. потому что если процессу будет не
>хватать тех 6064K, что вообще никак не используются, ядро начнет заимствовать
>память, помеченную как inact, cache, buf.Ну а куда будет записываться то что в неактивной? Или там пусто?
Если в свап, то хотелось бы избежать -- собираюсь от него избавится, для возможности остановки харда в связи с неиспользованием...
>>можно сказать, что у вас свободно 128 - 14 (active) - 23
>>(wired) = 91 MB. потому что если процессу будет не
>>хватать тех 6064K, что вообще никак не используются, ядро начнет заимствовать
>>память, помеченную как inact, cache, buf.
>
>Ну а куда будет записываться то что в неактивной? Или там пусто?
>
>Если в свап, то хотелось бы избежать -- собираюсь от него избавится,
>для возможности остановки харда в связи с неиспользованием...никуда, она будет просто освобождаться, потому что уже "чистая" (clean). в свап будут попадать "грязные" (dirty) страницы памяти -- то есть те, содержимое которых изменилось с момента их выделения процессу.