ファイルにアクセスしようとすると、プロセスは中断されます。

ファイルにアクセスしようとすると、プロセスは中断されます。

私はext4ファイルシステムとしてUbuntu 16.04.5を実行していますが、ファイルの読み込み中にプロセスが中断されるファイルがあります。

たとえば、

$ cat /path/to/file.txt

その後、別の端末で:

$ sudo cat /proc/24147/stack
[<ffffffff811937dd>] wait_on_page_bit_killable+0xcd/0xf0
[<ffffffff81193c86>] generic_file_read_iter+0x486/0x6b0
[<ffffffff8121395e>] new_sync_read+0x9e/0xe0
[<ffffffff812139c9>] __vfs_read+0x29/0x40
[<ffffffff81213f96>] vfs_read+0x86/0x130
[<ffffffff81214ce5>] SyS_read+0x55/0xc0
[<ffffffff81829d4e>] entry_SYSCALL_64_fastpath+0x22/0xc1
[<ffffffffffffffff>] 0xffffffffffffffff

このファイルの読み込み中に多くのプロセスが中断されました。以下は、別の呼び出しスタックを使用した別の例です。

$ less /path/to/file.txt

その後、別の端末で:

$ sudo cat /proc/23006/stack
[<ffffffff8140f954>] call_rwsem_down_read_failed+0x14/0x30
[<ffffffff812a1e83>] ext4_map_blocks+0x443/0x5a0
[<ffffffff812edb98>] ext4_mpage_readpages+0x368/0x920
[<ffffffff8129f626>] ext4_readpages+0x36/0x40
[<ffffffff811a0b89>] __do_page_cache_readahead+0x199/0x240
[<ffffffff811a0d6d>] ondemand_readahead+0x13d/0x250
[<ffffffff811a101e>] page_cache_sync_readahead+0x2e/0x50
[<ffffffff81193d4a>] generic_file_read_iter+0x54a/0x6b0
[<ffffffff8121395e>] new_sync_read+0x9e/0xe0
[<ffffffff812139c9>] __vfs_read+0x29/0x40
[<ffffffff81213f96>] vfs_read+0x86/0x130
[<ffffffff81214ce5>] SyS_read+0x55/0xc0
[<ffffffff81829d4e>] entry_SYSCALL_64_fastpath+0x22/0xc1
[<ffffffffffffffff>] 0xffffffffffffffff

実際の問題の範囲を少し絞り込む必要があります。コンテキストは少し複雑です(Apacheを実行してmod_wsgiを使用しており、Pythonコードはログファイルであるファイルに書き込み、ボリュームはAWSインスタンスのインスタンスストレージの上にあるRAIDアレイです)。

cat上記のように、Linuxボックスを「ファイルの使用」によって端末がハングするようにすることは可能ですか?そこで、ここで役に立つ追加のコンテキストが何であるかを判断できます。

一部の生産システムでは、これらのことが月に1回程度発生することに言及したいと思います(過度の使用量)。回復のためにマシンを再起動できますが、どの状態であるかを知りたいです。理想的には、このようなことが最初から発生しないようにしたいと思います。

ベストアンサー1

おすすめ記事