gpt4 book ai didi

linux - 进程处于可中断 sleep - 如何找出它在等待什么

转载 作者:行者123 更新时间:2023-12-04 20:56:40 28 4
gpt4 key购买 nike

我有一个守护进程在 Debain on Arm 上运行。有时这个守护进程挂起/不再响应。当使用“ps ax”查看进程时,统计列是“Dl”,意思是“不间断 sleep (通常是 IO)”。是否可以找到有关进程正在等待的内容的更多详细信息 - 例如哪个 IO 正在挂起?

谢谢!

最佳答案

我对 Jetson Nano(ARMv8,内核架构:aarch64)有同样的问题,它卡在 ptxas 上命令。

首先我们需要了解中的处理过程不间断 sleep 状态的意思。请阅读:What is an uninterruptible process?Linux process states .

简而言之:进程在不间断 sleep 只能被它所等待的东西唤醒。任何信号都无法唤醒它。

要调查发生了什么,您可以检查进程堆栈

cat /proc/<PROCESS_PID>/stack

就我而言,它是
[nano]<$:~$ sudo cat /proc/6816/stack
[<ffffff80080863bc>] __switch_to+0x9c/0xc0
[<ffffff80081c6fdc>] wait_on_page_bit_killable+0x8c/0x98
[<ffffff80081c7948>] __lock_page_or_retry+0xc0/0xe8
[<ffffff80082029b8>] do_swap_page+0x5d0/0x840
[<ffffff8008204be4>] handle_mm_fault+0x60c/0xa68
[<ffffff80080a36b0>] do_page_fault+0x308/0x518
[<ffffff80080a392c>] do_translation_fault+0x6c/0x80
[<ffffff8008080954>] do_mem_abort+0x54/0xb0
[<ffffff80080833c8>] el0_da+0x20/0x24
[<ffffffffffffffff>] 0xffffffffffffffff

How do I stop that from happening?



这要视情况而定。就我而言,我增加了交换大小。

This is probably a dumb question, but is there any way to interrupt it without restarting my computer?



处理在 不间断 sleep 状态有时可能会更改为 可中断状态 然后回到之前的 不间断状态再次。所以,你可以试试
while true; do kill -9 <PROCESS_PID>; done

关于linux - 进程处于可中断 sleep - 如何找出它在等待什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987982/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com