7,137
edits
No edit summary |
No edit summary |
||
(48 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
*FreeBSD リハビリwメモ | *FreeBSD リハビリwメモ | ||
journaled soft-updates | あら dig はデフォで無くなったのか drill が相当品 (unbound の tool なのね) | ||
<syntaxhighlight lang="bash" enclose="div"> | |||
alias dig drill | |||
</syntaxhighlight> | |||
したw | |||
なぜ今更な感じ何だが、avahi で IPv6 を resolve したときに link-local しか出ないのでいろいろあさった。(mDNS の仕様っぽいし、無理矢理 Global IPv6 にする方法もみつからなかった) | |||
*FreeBSD リハビリwメモ | |||
11.x 以降からいろいろ思想を変えてきてるっぽい。高速の外部記憶(SSD)とかが普通になってるんだったら、昔のようにswapを嫌わずに、主記憶を有効に使う方向に振りましょうとの感じか... | |||
*FreeBSD リハビリwメモ | |||
FreeBSD でも Linux みたいな過保護な実装するようになったんだなぁといろいろ調べた | |||
rc.conf にこんなのが書けるっぽい | |||
<syntaxhighlight lang="text" enclose="div"> | |||
elasticsearch_oomprotect="ALL" | |||
</syntaxhighlight> | |||
これ書いてたら、DB飛ばさなかったかもw | |||
あら protect flag (P_PROTECTED) 立たないな。調査する... | |||
*FreeBSD リハビリwメモ | |||
ほーーーー FreeBSD で "OOM" とい文字列が...昔はこの言葉なかったよなぁ | |||
<syntaxhighlight lang="text" enclose="div"> | |||
vm.pageout_oom_seq | |||
vm.pfault_oom_attempts | |||
</syntaxhighlight> | |||
*FreeBSD リハビリwメモ | |||
sambaが古いのが入ってしまってセキュリティ警告が出て install 出来ないのでデフォルトバージョンを変えた。 | |||
<syntaxhighlight lang="text" enclose="div"> | |||
DEFAULT_VERSIONS+=samba=4.16 | |||
</syntaxhighlight> | |||
あとはおまじない | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
portmaster -o net/samba416 samba412 | |||
</syntaxhighlight> | |||
*FreeBSD リハビリwメモ | |||
rctl とかよさげかなぁと遊んでみたが、pcpu で deny すると、意識が飛び飛び状態で、これは駄目だ。throttle は使えないので、devctl で script 呼び出しかなぁ...まだ遊び中... | |||
一秒に一回イベントがくる。条件が閾値超えだけなので使いづらい。 | |||
*FreeBSD リハビリwメモ | |||
FreeBSD流 cpu microcode のアップデート | |||
https://www.thomas-krenn.com/en/wiki/Update_Intel_Microcode_on_FreeBSD | |||
一度やればそれでCPUにフラッシュされるのかと思ったらそうでは無いっぽい。 cpu_microcode_load="YES" はそのままにしないといけない。 | |||
*FreeBSD リハビリwメモ | |||
あーこんなのやってたなぁ | |||
<syntaxhighlight lang="text" enclose="div"> | |||
login.conf:# cap_mkdb /etc/login.conf | |||
termcap:# cap_mkdb -f /usr/share/misc/termcap /etc/termcap | |||
</syntaxhighlight> | |||
limit 解除するときにこれを忘れてハマった記憶がw | |||
*FreeBSD リハビリwメモ | |||
blacklistd なるものがあるらしい。(fail2ban 設定中に見つけたw) ports の postfix には blacklistd patch もあるので使えそう。遊んでみる。 | |||
やはり pf つかうのがナウいwのかねぇ (fail2ban も pf で頑張り中...) | |||
*FreeBSD リハビリwメモ | |||
今も要るみたいね... /etc/make.conf に | |||
<syntaxhighlight lang="text" enclose="div"> | |||
CFLAGS+=-DFD_SETSIZE=8192 -DSOMAXCONN=4096 | |||
</syntaxhighlight> | |||
20年前よりは賢くやろうw | |||
<syntaxhighlight lang="text" enclose="div"> | |||
/usr/src/sys/sys/socket.h:427:9: error: 'SOMAXCONN' macro redefined [-Werror,-Wmacro-redefined] | |||
#define SOMAXCONN 128 | |||
</syntaxhighlight> | |||
ってなるソースもあるのでもう少し工夫がいるか。 "-Wno-macro-redefined" はやりすぎかなぁ? | |||
*FreeBSD リハビリwメモ | |||
↓の検証をしていて | |||
<syntaxhighlight lang="text" enclose="div"> | |||
vfs.ufs.dirhash_lowmemcount | |||
</syntaxhighlight> | |||
がカタカタ増えるのを見て、懐かしいなぁとw | |||
find を sleep 入れて回し続けるというバッドハックをやってたw | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
#!/bin/sh | |||
while true | |||
do | |||
/usr/bin/nice -n 20 find / -ls -exec sleep 1 \; >/dev/null 2>&1 | |||
done | |||
</syntaxhighlight> | |||
*FreeBSD リハビリwメモ | |||
journaled soft-updates も課題を抱えているらしい。昨今のテラバイト級のストレージでショートファイルが多い場合に(単位時間内での処理過多で)、ジャーナルを食い潰して不具合を起こすらしい。 | |||
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255799 | |||
この障碍が起きた場合は 3 回 fsck しないと復旧しないのが特徴。 | |||
回避策はいろいろ議論されている。 | 回避策はいろいろ議論されている。 | ||
Line 18: | Line 119: | ||
https://reviews.freebsd.org/D30041 | https://reviews.freebsd.org/D30041 | ||
<syntaxhighlight lang="text" enclose="div"> | <syntaxhighlight lang="text" enclose="div"> | ||
mckusick added a comment.May 17 2021, 6:43 PM | mckusick added a comment. May 17 2021, 6:43 PM | ||
I have been working with folks on these two bug reports which I suspect are caused by this problem: | I have been working with folks on these two bug reports which I suspect are caused by this problem: | ||
Line 33: | Line 134: | ||
The easiest way to test this theory would be to bump up SUJ_MAX to 350Mb in sys/ufs/ffs/fs.h and then recompile tunefs. Using the recompiled tunefs, disable journaled soft updates, remove the old .sujournal, then reenable journaled soft updates to get a bigger journal. | The easiest way to test this theory would be to bump up SUJ_MAX to 350Mb in sys/ufs/ffs/fs.h and then recompile tunefs. Using the recompiled tunefs, disable journaled soft updates, remove the old .sujournal, then reenable journaled soft updates to get a bigger journal. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
SUJ_MAX 増やして tunefs をビルドし直して、一旦 "-j disable" | SUJ_MAX 増やして tunefs をビルドし直して、一旦 "-j disable" してからマウントして .sujournal を消し、再度 "-j enable" して .sujournal を作り直す。.sujournal のサイズが増えていることを確認。念のため full fsck はしておくのがよいかも。← fsck は不要。(Journal timestamp does not match fs mount time っていわれる) | ||
あら tunefs に -S オプションがある。こんな感じかな | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
tunefs -j enable -S 536870912 /dev/ada0p2 | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" enclose="div"> | |||
-r-------- 1 root wheel 33554432 Jul 25 17:15 .sujournal | |||
* | |||
-r-------- 1 root wheel 536870912 Jul 25 17:19 .sujournal | |||
</syntaxhighlight> | |||
D30041 の適用は有効。しかしジャーナル不足の場合は、わかるぐらいオーバヘッドあり(unlink)。ジャーナルサイズを増やす事によりこの事象は解消できる。 | |||
*FreeBSD リハビリwメモ | *FreeBSD リハビリwメモ | ||
Line 157: | Line 270: | ||
tunefs -j disable /{デバイス} | tunefs -j disable /{デバイス} | ||
mount -o rw {デバイス} {マウントポイント} | mount -o rw {デバイス} {マウントポイント} | ||
chflags noschg,nosunlnk {マウントポイント}/.sujournal | # chflags noschg,nosunlnk {マウントポイント}/.sujournal | ||
rm {マウントポイント}/.sujournal | rm {マウントポイント}/.sujournal | ||
umount {デバイス} | umount {デバイス} | ||
Line 163: | Line 276: | ||
mount -o rw {デバイス} {マウントポイント} | mount -o rw {デバイス} {マウントポイント} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
★訂正↑のオペレーション(chflags noschg,nosunlnk)はちゃんと -j disable にしていたら不要のはず。保護されている場合は disable 出来ていない事だ。 | |||
journaled soft-updates は background fsck は動かないので、それにともなう諸問題も無し。 | journaled soft-updates は background fsck は動かないので、それにともなう諸問題も無し。 |