[freebsd] ZFS, TMPFS, pagedaemon/uma и подземный стук

Anton Sayetsky vsasjason at gmail.com
Sat May 6 17:52:06 EEST 2017


Приветствую, товарищи.

Имеется сервер с 256 GiB оперативы, который с помощью nginx раздаёт
файлы по HTTP, и я наблюдаю весьма интересный эффект, который
проявляется только при выполнении определённых действий и только после
того, как ARC впервые вырастает до максимального объёма. При
совпадении этих условий процесс pagedaemon/uma начинает вытеснять ARC.
После достижения минимального значения через короткое время (от
мгновенно до ~10 минут) происходит залипание всех процессов (но чаще
всего, кроме nginx) в состоянии D. И, конечно же, всё это происходит
без каких-либо сообщений об ошибках.
Провоцируется так:
1. Попытка сборки в TMPFS devel/m4 - залипает на "checking dup2"
(https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207303)
2. Попытка сборки в TMPFS lang/gcc - залипает на tar, который
выполняется в конце, перед созданием пакета
3. tar cf - /usr/ports | xz ... (/usr/ports для примера, на других
каталогах также залипает)
Также при попытке сборки некоторых портов появляются странные ошибки
"нет файла" при копировании в $STAGEDIR, при это те же порты
собираются в poudriere, но иногда без тех самых файлов, которые не
были найдены на хосте.

Версия системы:
root at cs0:~# freebsd-version -ku
10.3-RELEASE-p14
10.3-RELEASE-p18

/boot/loader.conf такой:
autoboot_delay="4"
loader_logo="beastie"
kern.geom.label.disk_ident.enable="0"
kern.geom.label.gptid.enable="0"
kern.ipc.nmbclusters="0"
zfs_load="YES"
vfs.zfs.arc_min="192G"
vfs.zfs.prefetch_disable="1"
vfs.zfs.trim.enabled="0"
vfs.zfs.txg.timeout="10"
vfs.zfs.zio.use_uma="0"
vfs.zfs.zfetch.max_streams="24"
hint.sc.0.flags="0x180"
hint.sc.0.vesa_mode="0x115"
hint.scbus.0.at="mps1"
hint.scbus.1.at="mps0"
hw.ix.num_queues="24"
hw.ix.rxd="4096"
hw.ix.txd="4096"
vboxdrv_load="YES"

Конкретный идей у меня, к сожалению, нет. Куда смотреть в первую
очередь, как отлавливать и чинить?


More information about the freebsd mailing list