ジョブz_inputが120秒以上ブロックされました。

ジョブz_inputが120秒以上ブロックされました。

zfs を使用して仮想マシンのバックアップを保存すると同時に複数のジョブを実行すると、dmesg に表示されることがあります。

INFO: task z_iput:63527 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
z_iput          D ffff9c0add81a080     0 63527      2 0x00000080
Call Trace:
 [<ffffffffb5567c49>] schedule+0x29/0x70
[<ffffffffc09592d5>] cv_wait_common+0x125/0x150 [spl]
[<ffffffffb4ec2d00>] ? wake_up_atomic_t+0x30/0x30
[<ffffffffc0959315>] __cv_wait+0x15/0x20 [spl]
[<ffffffffc0acf493>] txg_wait_open+0xc3/0x110 [zfs]
[<ffffffffc0a70d1f>] dmu_free_long_range+0x27f/0x460 [zfs]
[<ffffffffc096c77a>]  ? avl_add+0x4a/0x80 [zavl]
[<ffffffffc0af7cf5>] zfs_rmnode+0x2a5/0x360 [zfs]
[<ffffffffc0b19a3f>] ? zfs_znode_hold_exit+0xff/0x130 [zfs]
[<ffffffffc0b1deda>] zfs_zinactive+0xda/0xf0 [zfs]
[<ffffffffc0b15757>] zfs_inactive+0x87/0x200 [zfs]
[<ffffffffb4fc72f9>] ? truncate_pagecache+0x59/0x60
[<ffffffffc0b30463>] zpl_evict_inode+0x43/0x60 [zfs]
[<ffffffffb505eaa4>] evict+0xb4/0x180
[<ffffffffb505f3ac>] iput+0xfc/0x190
[<ffffffffc0954d7c>] taskq_thread+0x2ac/0x4f0 [spl]
[<ffffffffb4ed67b0>] ? wake_up_state+0x20/0x20
[<ffffffffc0954ad0>] ? taskq_thread_spawn+0x60/0x60 [spl]
[<ffffffffb4ec1c31>] kthread+0xd1/0xe0
[<ffffffffb4ec1b60>] ? insert_kthread_work+0x40/0x40
[<ffffffffb5574c1d>] ret_from_fork_nospec_begin+0x7/0x21
[<ffffffffb4ec1b60>] ? insert_kthread_work+0x40/0x40

これについて心配すべきですか?原因が何であるか、どうすればわかりますか?

ベストアンサー1

したがって、メッセージは、いくつかのZFSスレッドが数分間ブロックされたことを知らせるだけで、何がブロックされたかを知らせません。これらの多くは、一時的な「リソース不足」状況を引き起こす高い負荷が原因で発生します。

あなたが投稿した特定のスタックトレースを見ると、ZFSがinodeを削除しようとしているようです(おそらくファイルが削除された後ですか?)。これを行うには、新しいトランザクショングループが開くまで待つ必要があるようです。これは、最初に作成するのに時間がかかることを意味します。txgこれは、IOが多く、すべてのtxg作成に時間がかかるためです。

それが問題かどうかについては、それが明らかなパフォーマンス問題を引き起こす場合にのみ重要であると言いたいと思います。頻繁に表示されますが、パフォーマンスの問題が表示されない場合は、メッセージ自体の提案を使用して削除するのが安全かもしれません。

おすすめ記事