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


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.