panic: kmem_malloc что делать [РЕШЕНО]

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Ответить
Аватара пользователя
teapoot10
Сообщения: 61

panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

Есть компьютер на нем установлено:

freebsd8.2 x86 на файловой ситеме ZFS
samba + еще немного всякой всячины но дело скорее не в ней

В один момент обнаружил что он у меня постоянно виснет. Подключил монитор а там: "panic: kmem_malloc ..."

Субъективно ощущаю, что "конкретно" вылетать он начал тогда, когда я доставил в него второй винт на 1Tb. Когда стоял один системный на 250G таких вылетов не припомню, если и были, то это было редкостью.

Что пробовал сделать самостоятельно:

Сменил все железо благо в запасе есть полный близнец (мать процессоры БП) По перетыкал в разных объемах комбинациях ОЗУ. От 1 гига до 3, на момент скриншота стоит 2G оперативы

Пробовал гуглить. Везде советают одно и тоже: "тюнинг ядра". Толком ни чего не понял, поэтому тут я вполне мог допустить ошибку.
Мой порядок действий по "тюнингу"

Код: Выделить всё

cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL

Дописал нижней строчкой "options KVA_PAGES=512"

Код: Выделить всё

make buildkernel KERNCONF=MYKERNEL
make installkernel KERNCONF=MYKERNEL


перезагрузка...

Как кстати проверить какое адресное пространство у моего текущего ядра? Сработало ли?
Если верить /var/run/dmesg.boot то грузится MYKERNEL

мой /boot/loader.conf

Код: Выделить всё

zfs_load="YES"
vfs.root.mountfrom="zfs:systor"
vboxdrv_load="YES"accf_http_load="YES"
vm.kmem_size="1024M"
vm.kmem_size_max="1024M"
vfs.zfs.arc="512M"
vfs.zfs.arc_max="512M"
vfs.zfs.vdev.cache.size="10M"
vfs.zfs.prefetch_disable=1


Сервак вылетает примерно раз в сутки и выдает такую красоту
____0150.jpg

____0149.jpg


Вот сужу все вкуриваю, а не нужно ли включить поддержку PAE в ядре? Вроде бы незачем. у меня 4 гига максимум есть. Но не нужно ли это для KVA_PAGES=512
И вообще ни чего не пойму KVA_PAGES=512 это как я понимаю размер адресного пространства необходимый для работы 2 гигов оперативы так у меня может быть установлено больше. Может адресное пространство нужно больше делать? Или оператива тут вообще ни причем?
Спасибо сказали:
Аватара пользователя
lastpriot
Сообщения: 218
ОС: FreeBSD

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение lastpriot »

предполагаю что ето связано с ZFS

увеличте vm.kmem_size до 1.5xRAM
уберите с конфига ядра KVA_PAGES=512
и еще VirtualBox под вопросом

с помощью iozone "погоняйте" винты
Спасибо сказали:
BirdGovorun
Сообщения: 81

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение BirdGovorun »

А почему не amd64? Процессор не держит?
ZFS очень хорошо себя ведёт на архитектуре amd64 и памяти 4G и более.
Из моего опыта, на i386 лучше UFS использовать.
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1099
ОС: freeBSD

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение arachnid »

соглашусь с предыдущим товарищем, что i386 для zfs использовать не стоит. так что советую переехать на amd64, и не мучатся с подбором параметров.
кстати, 2G оперативки для работы zfs хватает. собран raidz на 1,6Т - вполне бегает. но для нее - чем больше, тем лучше
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

Да х64 это хорошо, но по железу у меня есть только то, что есть, сервер не рабочий а "домашний-эксперементальный" поэтому железо какое есть нахаляву
К сожалению в серваке установлено два 32 разрядных двухголовых xeon 2.8Гц
Поэтому прошу помощи с подбором параметров сам в этом дуб дубом.

lastpriot Вы предлагаете значение vm.kmem_size установтить равным 1.5 х "сколько всего озу в системе"?
те если я втыкаю себе 3 гига оперативки получаю vm.kmem_size="4608M"? Я Вас правильно понял?
Какое же выставить значение для vm.kmem_size_max

Почему Вы предлагаете откатится на ядро без KVA_PAGES=512 почти везде где я читал про подобну проблему народ пишет об этой опции как о волшебной таблетке

vbox я сейчас вообще не запускаю в целях отладки, но серв все равно виснет :(

Спасибо всем кто откликнулся

Еще возможно это важно: ОЗУ ddr1 регистровая без ecc
Спасибо сказали:
BirdGovorun
Сообщения: 81

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение BirdGovorun »

Вот мои параметры на i386 c 2G памяти.
vm.kmem_size="1024M"
vm.kmem_size_max="1024M"
vfs.zfs.arc_max="730M"

какие другие параметры были, записи к сожалению не сохранились
или они по умолчанию были, уже не помню.
Работало без проблем, вам немного увеличить надо.
KVA_PAGES=512 в ядре было.
Пользовался этим > http://wiki.freebsd.org/ZFSTuningGuide
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1099
ОС: freeBSD

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение arachnid »

чисто 32-битный ксеон? не верю. дайте индекс процессора
так, на всякий случай - amd64 - это не обозначение процессора, а обозначение 64битной архитектуры у freebsd
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
BirdGovorun
Сообщения: 81

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение BirdGovorun »

arachnid писал(а):
06.01.2012 12:30
чисто 32-битный ксеон? не верю.

Почему? Я верю ТС, стоит какой нибудь Xeon MP, а среди них есть 32 разрядные.
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

BirdGovorun писал(а):
06.01.2012 12:44
arachnid писал(а):
06.01.2012 12:30
чисто 32-битный ксеон? не верю.

Почему? Я верю ТС, стоит какой нибудь Xeon MP, а среди них есть 32 разрядные.

Да их довольно много вот моя древность http://ark.intel.com/products/27275/Intel-...che-533-MHz-FSB
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

BirdGovorun что за жесткие у Вас были? У меня пока терабайтник к своим 250 гигам не довоткнул тоже проблем не было, хотя вообще ни каких настроек не делал ядро не пересобирал.
Может кто может с подсказать как мне проверить на текущем ядре KVA_PAGES=512 есть или нет. Думаю может я тут где накосячил.
BirdGovorun за статейку спасибо
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1099
ОС: freeBSD

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение arachnid »

zfs очень требовательная к памяти. я бы даже сказал ОЧЕНЬ!
http://lists.freebsd.org/pipermail/freebsd...May/056642.html - посмотреть обсуждение тут,
и вот тут http://dreamcatcher.ru/2009/12/01/%D0%A0%D...%D0%B0-freebsd/ - заодно там есть скрипт для вывода заюзанности памяти zfs - для определения разумных параметров

ну или обновится до 9ки и использовать ufs с журналированием
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

Я совсем перестал что либо понимать
на данный момент уменьшил физически оперативку до 1.5 гигов
на uptime сейчас составляет 2е суток, что почти рекорд с подсоединенным терабайтником.

arachnid спасибо, но я из статьи так и не смог понять что мне делать с полученной из скрипта информацией

Код: Выделить всё

# ~/conf.sh
TEXT=14167272, 13.511 MB
DATA=107387904, 102.413 MB
TOTAL=121555176, 115.924 MB

Может подскажете как это расшифровать, а то самому мне похоже не осилить?
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

Сижу читаю доки пытаюсь понять про vm.kmem_size
Правильно ли я понимаю, что задать этот параметр избыточным тяжело. Те я могу спокойно задать его 2048 и хуже не бутдет
Ход мыслей такой: при адресном пространстве ядра со значением KVA_PAGES=512 больше двух гигов ему всеравно не понять, поскольку дифицита физической оперативки у меня в системе нет, я могу выставит максимальное значение?
Когда повиснет хочу попробывать установить:
vm.kmem_size="2048M"
vm.kmem_size_max="2048M"
vfs.zfs.arc="512M"
vfs.zfs.arc_max="512M"
vfs.zfs.vdev.cache.size="10M"
Это я бред измыслил? Просто мне думается, не может ли это быть все по совокупноси у меня на сервере еще виртуалка в vbox крутится (сейчас я её не запускаю) ей я 1 гиг озу отдаю. Не использует ли она тоже память из области ядра?
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

Странное наблюдение похоже чем меньше оперативки тем долше uptime
А может конечно я просто нанем ничего уже не запускаю со страха
Стояло 1 гиг озу до вылета прошло 3е суток
Сейчас поставил 3 гига и настройки с предыдущего моего поста буду ждать
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

хм мнея смущяет такая еще штука может кто разьяснит

Код: Выделить всё

 dmesg -a | grep memory
real memory  = 3221225472 (3072 MB)
avail memory = 3139141632 (2993 MB)

Типа ядро себе забрало только 79 метров при том
когда у меня в boot/loader.conf четко написано
vm.kmem_size="2048M"
vm.kmem_size_max="2048M"
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

Только сейчас заметил что коммп при загрузке ругается

Код: Выделить всё

ZFS NOTICE: Prefetch is disabled by default on i386 -- to enable,

            add "vfs.zfs.prefetch_disable=0" to /boot/loader.conf.

ZFS WARNING: Recommended minimum kmem_size is 512MB; expect unstable behavior.

             Consider tuning vm.kmem_size and vm.kmem_size_max

             in /boot/loader.conf.

При любых параметрах. Это означает что я что то сделал не так?
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

Тут у меня совсем разрыв шаблона понимаю что гдето круто какосячил

Код: Выделить всё

# sysctl -a | grep 'vm.kmem'
vm.kmem_map_free: 208699392
vm.kmem_map_size: 126709760
vm.kmem_size_scale: 3
vm.kmem_size_max: 335544320
vm.kmem_size_min: 0
vm.kmem_size: 335544320
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1099
ОС: freeBSD

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение arachnid »

вот честно, такая каша в виде путаницы физической, выделяемой и требуемой процессу и ядру памяти...

dmesg выдает общее количество оперативки в системе - при этом 64 явно идет на нужды графического адаптера - смотри в биос, что выставил

второе достаточно просто перевести с нерусского - превыборки отключены для i386 по умолчанию. скорее всего, как раз из-за проблем с памятью - потому как на amd64 префетч включается с 4G оперативки

sysctl согласен, что у тебя в loader.conf прописанно?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

При этом ядро вроде mykernel

Код: Выделить всё

# uname -a
FreeBSD freebsdserv.local 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Dec 30 01:58:55 MSK 2011     root@freebsdserv.local:/usr/obj/usr/src/sys/MYKERNEL  i386


arachnid писал(а):
08.01.2012 21:48
sysctl согласен, что у тебя в loader.conf прописанно?

Код: Выделить всё

zfs_load="YES"
vfs.root.mountfrom="zfs:systor"
vboxdrv_load="YES"accf_http_load="YES"
vm.kmem_size="2048M"
vm.kmem_size_max="2048M"
vfs.zfs.arc="1024M"
vfs.zfs.arc_max="1024M"
vfs.zfs.vdev.cache.size="20M"
vfs.zfs.prefetch_disable=0


Но я уже не вчем не уверен понимаю просто что у меня ничего не работает :wallbash:
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

*удалено*
погорячился сам разобрался
те я сейчас реально имею
vm.kmem_size: 335544320 = 320М
vm.kmem_size_max: 335544320 = 320М
vfs.zfs.arc_max: 209715200 = 200 М
vfs.zfs.vdev.cache.size: 10485760 = 10 М
Что есть дефолтные настройки для ZFS на x86
Вопрос почему он меня не понимает и не берет параметры из моего loader.conf
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1099
ОС: freeBSD

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение arachnid »

для начала давай сюда config -x /boot/kernel/kernel - это будет конфиг твоего ядра - в 8ке строчка, включающая конфигурацию, есть по умолчанию
кстати, у тебя в loader.conf две строки налезают друг на друга - не может быть в этом дело?
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

Код: Выделить всё

ident   MYKERNEL
machine i386
cpu     I686_CPU
cpu     I586_CPU
cpu     I486_CPU
makeoptions     DEBUG=-g
options KVA_PAGES=512
options USB_DEBUG
options AH_SUPPORT_AR5416
options IEEE80211_SUPPORT_MESH
options IEEE80211_AMPDU_AGE
options IEEE80211_DEBUG
options AHD_REG_PRETTY_PRINT
options AHC_REG_PRETTY_PRINT
options ATA_STATIC_ID
options SMP
options KDB_TRACE
options KDB
options INCLUDE_CONFIG_FILE
options FLOWTABLE
options MAC
options AUDIT
options HWPMC_HOOKS
options KBD_INSTALL_CDEV
options PRINTF_BUFR_SIZE=128
options _KPOSIX_PRIORITY_SCHEDULING
options P1003_1B_SEMAPHORES
options SYSVSEM
options SYSVMSG
options SYSVSHM
options STACK
options KTRACE
options SCSI_DELAY=5000
options COMPAT_FREEBSD7
options COMPAT_FREEBSD6
options COMPAT_FREEBSD5
options COMPAT_FREEBSD4
options COMPAT_43TTY
options GEOM_LABEL
options GEOM_PART_GPT
options PSEUDOFS
options PROCFS
options CD9660
options MSDOSFS
options NFS_ROOT
options NFSLOCKD
options NFSSERVER
options NFSCLIENT
options MD_ROOT
options UFS_GJOURNAL
options UFS_DIRHASH
options UFS_ACL
options SOFTUPDATES
options FFS
options SCTP
options INET6
options INET
options PREEMPTION
options SCHED_ULE
options NATIVE
options GEOM_PART_MBR
options GEOM_PART_EBR_COMPAT
options GEOM_PART_EBR
options GEOM_PART_BSD
options ISAPNP
device  isa
device  npx
device  mem
device  io
device  uart_ns8250
device  atpic
device  apic
device  cpufreq
device  acpi
device  eisa
device  pci
device  fdc
device  ata
device  atadisk
device  ataraid
device  atapicd
device  atapifd
device  atapist
device  ahb
device  ahc
device  ahd
device  amd
device  hptiop
device  isp
device  mpt
device  sym
device  trm
device  adv
device  adw
device  aha
device  aic
device  bt
device  ncv
device  nsp
device  stg
device  scbus
device  ch
device  da
device  sa
device  cd
device  pass
device  ses
device  amr
device  arcmsr
device  asr
device  ciss
device  dpt
device  hptmv
device  hptrr
device  iir
device  ips
device  mly
device  twa
device  aac
device  aacp
device  ida
device  mfi
device  mlx
device  pst
device  twe
device  atkbdc
device  atkbd
device  psm
device  kbdmux
device  vga
device  splash
device  sc
device  agp
device  pmtimer
device  cbb
device  pccard
device  cardbus
device  uart
device  ppc
device  ppbus
device  lpt
device  plip
device  ppi
device  de
device  em
device  igb
device  ixgb
device  le
device  ti
device  txp
device  vx
device  miibus
device  ae
device  age
device  alc
device  ale
device  bce
device  bfe
device  bge
device  dc
device  et
device  fxp
device  jme
device  lge
device  msk
device  nfe
device  nge
device  pcn
device  re
device  rl
device  sf
device  sge
device  sis
device  sk
device  ste
device  stge
device  tl
device  tx
device  vge
device  vr
device  wb
device  xl
device  cs
device  ed
device  ex
device  ep
device  fe
device  ie
device  sn
device  xe
device  wlan
device  wlan_wep
device  wlan_ccmp
device  wlan_tkip
device  wlan_amrr
device  an
device  ath
device  ath_hal
device  ath_rate_sample
device  ral
device  wi
device  loop
device  random
device  ether
device  vlan
device  tun
device  pty
device  md
device  gif
device  faith
device  firmware
device  bpf
device  uhci
device  ohci
device  ehci
device  usb
device  uhid
device  ukbd
device  ulpt
device  umass
device  ums
device  urio
device  u3g
device  uark
device  ubsa
device  uftdi
device  uipaq
device  uplcom
device  uslcom
device  uvisor
device  uvscom
device  aue
device  axe
device  cdce
device  cue
device  kue
device  rue
device  udav
device  rum
device  uath
device  ural
device  zyd
device  firewire
device  fwe
device  fwip
device  dcons
device  dcons_crom
Спасибо сказали:
Аватара пользователя
teapoot10
Сообщения: 61

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение teapoot10 »

arachnid, мои благодарности
"vboxdrv_load="YES"accf_http_load="YES"" весь косяк в отсуствии знака конца строки в этой строчке
Теперь покрайней мере память он сто пудов выделяет ядру корректно
Месячный головняк походу решился...
Спасибо сказали:
Аватара пользователя
arachnid
Модератор
Сообщения: 1099
ОС: freeBSD

Re: panic: kmem_malloc что делать [РЕШЕНО]

Сообщение arachnid »

дьявол в деталях :)

но в общем я бы все равно на 386 стал бы использовать ufs+j (обновившись до 9ки) :)
-= freeBSD stable, fluxbox =-
"если ты будешь со мной спорить, я тебя запишу в книжечку!" (с) Ежик
Спасибо сказали:
Ответить