![Linux에서 IRQ 프로세스를 종료하는 방법은 무엇입니까?](https://linux55.com/image/116489/Linux%EC%97%90%EC%84%9C%20IRQ%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%A2%85%EB%A3%8C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
irq/${nnn}-nvidia
나는 또는로 죽일 수 없습니다 . 이러한 프로세스를 종료하거나 중지하는 방법을 아는 사람이 있습니까?kill -9
pkill -f -9
(관련이 있는 경우 Ubuntu 16.04를 사용하고 있습니다.)
답변1
@hobbs가 설명했듯이 이는 커널 스레드입니다. 더 넓은 관점은 다음과 같습니다.
IRQ 처리는 인터럽트가 언제든지 도착할 수 있기 때문에 모든 운영 체제에서 문제가 됩니다. 커널이 복잡한 작업을 처리하고 리소스가 일관성이 없는 경우(잘못된 주소를 가리키는 포인터 등)에도 인터럽트가 도착할 수 있습니다. 이 문제는 커널이 인터럽트 가능하고 일관된 상태가 될 때까지 인터럽트 핸들러의 실행을 허용하지 않는 잠금으로 해결될 수 있습니다. 잠금 사용의 단점은 잠금이 너무 많으면 시스템이 느려지고 비효율적이 될 수 있다는 것입니다.
따라서 이 문제에 대한 최적의 솔루션은 다음과 같습니다.
- 커널 인터럽트 핸들러는 가능한 짧게 유지해야 합니다.
- 이들의 유일한 임무는 관련된 모든 인터럽트 데이터를 임시 버퍼로 옮기는 것입니다.
- 일부 "백그라운드" 스레드는 이 버퍼에서 지속적으로 작동하며 인터럽트 핸들러를 대신하여 실제 작업을 수행합니다.
이러한 "백그라운드" 스레드는 인터럽트 처리기 커널 스레드입니다.
top
정상적인 프로세스 라고 생각할 수 있습니다 .- 그러나 0 메모리를 사용하는 것처럼 나타납니다.
- 그래 이건 사실이야,실제 사용자 공간 메모리가 그들에게 속하지 않기 때문에.
본질적으로 백그라운드에서 실행되는 커널 스레드입니다.
커널 스레드는 종료할 수 없습니다. 스레드는 전적으로 커널에 의해 관리됩니다. 이를 죽일 수 있다면 nvidia 드라이버의 irq/142 처리기는 더 이상 존재하지 않게 됩니다. 그래픽 카드가 인터럽트를 보내면 이를 처리할 수 있는 것이 아무것도 없게 됩니다. 결과적으로 정지될 수 있지만 비디오는 더 이상 재생되지 않습니다.
시스템의 문제는 인터럽트 핸들러가 많은 CPU 리소스를 잡아먹고 있다는 것입니다. 다음과 같은 많은 잠재적인 이유가 있습니다.
- 어떤 이유로 인해 하드웨어(비디오 카드)가 너무 많은 인터럽트를 보내므로 CPU가 이를 모두 처리할 수 없습니다.
- 하드웨어에 문제가 있습니다.
- 운전자는 오프로드 운전자입니다.
Nvidia 드라이버의 품질을 알면 안타깝게도 드라이버 결함일 가능성이 가장 높습니다.
해결책은 어떻게든 드라이버를 재설정하는 것입니다. 잔인함 순으로 몇 가지 생각:
- 백그라운드에서 3D 가속 프로세스를 실행하고 있나요? 예를 들어, 구글 어스? 그렇다면 중지하거나 죽이십시오.
- X에서 문자 콘솔로 다시 전환하고(alt/ctrl/f1) 다시 돌아갑니다(alt/ctrl/f7). 그러면 대부분의 비디오가 다시 초기화됩니다.
- X를 다시 시작하십시오(정상적으로 종료하거나 alt/ctrl/backspace를 입력하여 X 서버를 종료하십시오).
- X를 죽입니다(killall -9 Xorg). 캐릭터 콘솔에서 이 작업을 수행하면 더 잘 작동합니다.
X를 종료했는데도 이 커널 스레드가 계속 표시되면 Nvidia 커널 모듈을 제거해 볼 수 있습니다(주어진 목록에서 볼 수 있으며 다음을 사용하여 lsmod
제거할 수 있습니다). rmmod
X를 다시 시작하면 insmod
하드웨어가 자동으로 재설정됩니다.
아무것도 작동하지 않으면 재부팅해야 합니다. 정상적인 재부팅이 작동하지 않으면 이를 수행하기 위해 추가로 잔인한 방법을 사용할 수 있습니다: alt/printscreen/s를 사용한 다음 alt/printscreen/b를 사용하십시오.
확장: 임시 해결 방법으로 이 스레드에 매우 낮은 우선 순위( )를 부여해 볼 수 있습니다 renice +20 -p 1135
. 그러면 계속 실행되지만 시스템 성능에 미치는 영향은 줄어듭니다.
답변2
당신은 할 수 없습니다. 프로세스가 아니라 커널 스레드입니다. 당신은 그것을 죽일 수 없으며, 성공한다면 시스템을 (더 이상) 사용할 수 없게 만들 것입니다.
답변3
스팸 봇을 실행하거나 봇을 거래하거나 채굴하는 해커의 공격을 받았을 수도 있습니다. 방화벽으로 이동하여 루트 비밀번호를 변경하고 Openssh 인스턴스를 제거한 후 커널을 업그레이드하십시오. 방금 다음 버전으로 업그레이드했습니다.
나가는 SSH를 차단하십시오. 그런 다음 피어가 연결을 시도하는 동안 ufw.log(네트워크의 손상된 다른 노드 목록)를 살펴보세요. 업그레이드를 실행할 때 리포지토리 목록에 주의하세요. 데스크탑의 "사용자 이름" 파일이 나열된 하위 도메인으로 표시될 수 있습니다. 연결할 때 워크스테이션의 파일을 압축하고 필터링하기 때문입니다.
그런 다음 더 깊이 파고들면... 저장소를 종료하기 위한 자격 증명을 찾고 있습니다.