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

Anton Sayetsky vsasjason at gmail.com
Sat May 6 18:40:06 EEST 2017


6 мая 2017 г., 18:15 пользователь Slawa Olhovchenkov <slw at zxy.spb.ru> написал:
> On Sat, May 06, 2017 at 05:52:06PM +0300, Anton Sayetsky wrote:
>
>> Приветствую, товарищи.
>>
>> Имеется сервер с 256 GiB оперативы, который с помощью nginx раздаёт
>
> 0. надеюсь не через sendfile? только aio можно применять.
Естественно, aio. sendfile на этой железке вообще никогда не включался.

>> файлы по 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
>
> 1. Перейди на 11-STABLE
> 2. Примени https://reviews.freebsd.org/D7538 и отпишись о результатах
> туда.
К сожалению, этот вариант неприменим. Правила таковы, что на
"нетестовых" серваках стоит -RELEASE. Да и хватило мне обновления с 9,
на которой подобной проблемы не было.

>> /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"
> 3. эту убери
Поставлено для 2 целей:
1. Чтобы быстрее падало.
2. Чтобы кэш таки не "опускался слишком низко", ибо больше там память
занять нечем.

>> vfs.zfs.prefetch_disable="1"
>> vfs.zfs.trim.enabled="0"
>> vfs.zfs.txg.timeout="10"
>> vfs.zfs.zio.use_uma="0"
> 4. эту не применяй
Поскольку менять версию оси - не вариант (до выхода 10.4R или 11.1R),
то думаю, что стоит проверить.

>> 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