FreeBSD13.2: 12.4からバージョンアップ後、ファイルアクセスが超遅い

FreeBSDを12.4から13.2 に上げて半日。OS自体は正常に動いている感じですが、不具合っぽい内容が観察されています。その第一弾。(第二弾があるかどうかはわかりませんが)

    1. /etc/access.db の更新が遅くなった。12.4 では2分で生成できていた.dbファイル生成に15分掛かる。
      access ファイルのサイズは約18MB、access.db のサイズも40MBを越える。大きいことは大きいけど、この数字は、7年前に使っていたCeleron 1.2GHz と同等。Core2Duo E8400なんですけどねぇ。
    2. cron が以下のメッセージを吐きます。今、気付いたばかりなので、未調査。起動権限関係?
    3. /usr/sbin/cron[1343]: in try_dlopen(): /usr/lib/pam_opie.so.6: /usr/lib/libopie.so.8: Undefined symbol "srand@FBSD_1.6"
      /usr/sbin/cron[1343]: in openpam_load_module(): no pam_opie.so found
    4. systat の swap 表示形式が変わった。
    5. 全体的にファイルアクセス関係が遅くなっている気がする。特に大容量httpログファイルを grep や awk でスキャンするとガクッと遅くなるし、ファイルスキャン中 grep がCPU 1個をほぼ占有して知る感じ。grep のせい?
      追記:htop でタスク状態を表示しながら grep を含むCGIを実行したところ、grep の CPU 使用率が急激に100%に貼りつく現象を発見。スクリプト中の grep をパッケージコレクションに含まれる gnugrep(/usr/local/bin へインストールしたらコマンド名; ggrep )と差し替えてみたところ、CGIのログ処理が遅いという現象は解決。gnugrep、すごく速い。

このFreeBSD、ハードウェアは1,2年おきに更新しているものの、FreeBSD8 あたりからのファイルを引きずっているので、その影響があるのかもしれません。そのあたりは今から調査予定。
/var , /usr/ports あたりは書き換えが多いので、このサーバーはHDDモデル。

エラーメッセージを検索してみたところ、またまたショッキングな情報が見つかった。
cron の答えは、エラーメッセージが少し異なるものの、自分が書いたメモでした。
http://www.lifewithunix.jp/notes/2021/12/24/freebsd12-cron-script-doesnt-work-after-os-upgrade/

しかも、前のメモでも、またまた更に前のメモに書いたを見つけてた。過去に2度も遭遇した現象なのに記憶から飛んでいた。

cron を再起動しましたが解決するかどうか。確かに、pkg もアップグレードした後再起動していないから、OS再起動してみるべきなのかも。今ラジオ録音中なので、再起動は後ほど。

freebsd関係フォーラムに同じメッセージが見つかり、ここでも対策はリブートだそうな。

ということで、ジョブに影響を与えない時間帯に再起動。cronの問題は解決。
ファイルアクセス速度が遅い点は、再起動しても改善されず。こっちは、さらなる切り分けが必要。

コメントを残す