Raspberry Pi의 Jar가 오랫동안 응답하지 않습니다.

Raspberry Pi의 Jar가 오랫동안 응답하지 않습니다.

안녕하세요, 저는 헤드리스 라즈베리 파이에서 연중무휴 24시간 개인 비서로 실행되도록 설계된 자바 프로그램을 친구와 함께 만들었습니다. 기본적으로 알림 역할을 하며 날씨나 뉴스 등을 알려줍니다. 그래서 24시간 연중무휴로 실행되도록 하기 위해 아래 지침을 따랐습니다.여기jarPi가 부팅될 때 시작됩니다(따라서 데몬으로 실행됩니다).

처음 몇 시간에서 하루 동안은 모든 것이 괜찮지만 오랜 시간(약 하루 이상)이 지나면 jar응답이 없지만 SSH를 통해 Pi에 연결하면 Pi가 거의 "깨어나는" 것처럼 보입니다. 모든 것이 다시 정상으로 돌아왔습니다.

jarRaspberry Pi에는 절전 모드가 없다는 내용을 읽었는데 정확한 이유가 무엇인지, 연중무휴 24시간 응답 하도록 끄는 방법이 무엇인지 혼란스럽습니다 .

데몬 스레드가 절전 모드로 전환되는지 또는 스레드가 많은 작업을 수행하지 않는 경우 일반적으로 절전 모드로 이동하는지 궁금합니다. 이제 우리 프로그램은 이벤트가 발생하기를 기다리는 동안(예: 특정 시간에 벨을 울리는 알람) 활성화되는 동안 대부분 "휴면" 상태가 되기 때문입니다. 등), 따라서 대부분의 경우 그다지 많은 작업을 수행하지 않습니다.

답변1

나는 실제로 UNIX에서 일반적으로 데몬이나 스레드의 장기적인 동작을 알고 싶습니다.

그들은 멈출 때까지 달렸습니다. 시스템은 이들을 임의로 차단하지 않으며, 여러분은 파이가 잠들 수 없다는 것을 이미 알고 있습니다. "응답 없음"이 "느림"을 의미하고 시스템이 계속 다른 작업을 수행하는 경우 JRE가 교체되었기 때문일 수 있습니다(그러나 그것이 문제인 것 같지는 않습니다).

시간이 지남에 따라 메모리 프로필을 살펴보고 싶을 수도 있습니다. 문제 발생 후 며칠이 지나서 문제가 더 커질 때까지 꾸준히 증가한다면 뭔가 잘못된 것입니다. Java를 사용하여 실제로 메모리를 "누수"하는 것은 거의 불가능하다고 생각하지만 실제로 사용되지 않는 많은 양의 메모리를 실수로 축적하는 것은 확실히 가능합니다. 당신은 관심이 있을 수도 있습니다이것.

그 외에도 프로그램에서 보다 세분화된 로깅을 구현해야 합니다. 이는 분명히 어떤 방식으로든 시간을 계산합니다. 정기적으로 깨어나서 할 일이 있는지 여부에 관계없이 상태를 보고하십시오. 이는 신비롭게 문제를 "해결"할 수도 있고 실제 단서를 제공할 수도 있습니다. 지속적인 프로세스를 모니터링하려면 강력한 로깅이 필수적입니다. 그것이 무엇이든 할 때마다 기록하십시오. 아무 일도 하지 않고 일정 시간이 지날 때마다 기록하세요. 충분하지 않은 것보다 너무 많이 녹음하는 것이 좋습니다.

관련 정보