“카나리아 실”이란 무엇이며 왜 굶주리고 있습니까?


14

다음과 같은 경우에 때때로 나타납니다 /var/log/syslog.

rtkit-daemon[1145]: The canary thread is apparently starving. Taking action.
rtkit-daemon[1145]: Demoting known real-time threads.
rtkit-daemon[1145]: Successfully demoted thread 1431 of process 1368 (n/a).
rtkit-daemon[1145]: Successfully demoted thread 1430 of process 1368 (n/a).
rtkit-daemon[1145]: Successfully demoted thread 1368 of process 1368 (n/a).
rtkit-daemon[1145]: Demoted 3 threads.

무슨 일이야?


ACPI와 관련된 kern.log에 오류가 있습니까? 그렇다면 : BIOS로 들어가서 ACPI power save options로 설정되어 있는지 확인하십시오 Extended. 로 변경하십시오 Normal.
— Rinzwind

답변:


24

여기서 사용 된 "카나리아"라는 용어는 원래 탄광 에서 유래 한 것 입니다. 석탄 광부들은 위험한 가스를 탐지하기 위해 카나리아를 사용했습니다. 결과적으로 "카나리아"라는 용어는 위험한 상황에 대해 (초기) 경고를받는 데 사용되는 모든 항목에 자주 사용됩니다.

이 경우 "rtkit"은 "실시간"우선 순위를 갖는 스레드가 다른 스레드 (& 프로세스)를 "고갈"하는지 테스트하기 위해 "정상"스레드를 시작하는 것처럼 보입니다 . 여기서 "고갈"은 프로세서 시간이 너무 적게 걸리는 것을 의미합니다. . 이는 실시간 우선 순위에 액세스 할 수있는 프로세스 / 스레드가 다른 작업을 더 이상 수행 할 수 있도록 CPU 시간을 많이 사용하지 않도록하는 안전 조치입니다.

따라서 rtkit에서 실시간 우선 순위를 얻은 일부 스레드가 잘못 작동하고 CPU를 독점하려고 시도하면 rtkit은이를 "카나리아 스레드"로 감지하여 rtkit이 실시간 우선 순위를 제거합니다.


-3

버퍼 오버 플로우

위키 백과 버퍼 오버 플로우 카나리아

문제가있는 곳에 게시 한 로그에서 알 수 없으므로 해당 메시지 아래의 로그 항목을 확인하거나 붙여 넣을 수 있습니까? 프로세스 1368은 무엇입니까?

sudo ps -p 1368

2
이것은 버퍼 오버 플로우에 관한 것이 아니라, "카나리아"라는 단어의 사용은 또한 석탄 광부의 카나리아 사용에서 파생됩니다.
— JanC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.