mod_rails의 루비 인스턴스가 "불량"으로 처리됩니다. 이러한 프로세스는 더 이상 승객 상태에 나열되지 않으며 100 % CPU를 사용합니다.modrails - 100 % CPU를 소모하는 불량 루비 프로세스
인스턴스를 죽이기 위해 god/monit을 설치하는 것 외에는 아무도이 문제를 방지하는 방법에 대한 조언을 줄 수 있습니까? 로그에서 도움이되는 것을 찾을 수 없었습니다.
mod_rails의 루비 인스턴스가 "불량"으로 처리됩니다. 이러한 프로세스는 더 이상 승객 상태에 나열되지 않으며 100 % CPU를 사용합니다.modrails - 100 % CPU를 소모하는 불량 루비 프로세스
인스턴스를 죽이기 위해 god/monit을 설치하는 것 외에는 아무도이 문제를 방지하는 방법에 대한 조언을 줄 수 있습니까? 로그에서 도움이되는 것을 찾을 수 없었습니다.
이것은 승객의 반복되는 문제입니다. 나는이 문제를 여러 번 루비를 승객과 함께 가로 지르는 사람들을 돕는 걸 보았습니다. 나는 해결책이 없지만 이것을 시도 할 수도 있습니다. http://www.modrails.com/documentation/Users%20guide%20Apache.html#debugging_frozen
Linux를 사용하는 경우 "strace"유틸리티를 설치하면 Ruby 프로세스가 모든 CPU를 사용하고 있는지 확인할 수 있습니다. 그러면 저수준의 견해를 얻을 수 있습니다. 패키지 관리자에서 사용할 수 있어야합니다. 그럼 당신은 할 수 있습니다 당신이 중간에 프로세스를 중지하고 스택 추적을 덤프하려는 경우
$ sudo strace -p 22710
Process 22710 attached - interrupt to quit
...lots of stuff...
(press Ctrl+C)
그런 다음, 당신은 특별히하고, http://eigenclass.org/hiki.rb?ruby+live+process+introspection에서 루비에서 GDB 사용에 대한 가이드를 따를 수 :
gdb --pid=(ruby process)
session-ruby
stdout_redirect
(in other terminal) tail -f /tmp/ruby_debug.(pid)
eval "caller"
또한 원격 http://duckpunching.com/passenger-mod_rails-for-development-now-with-debugger
흥미 보이는 승객 인스턴스를 디버깅에 관심 Github에서의 프로젝트가 될 것 같다 설명 당신이 열 디버그 소켓에 연결하는 루비 - 디버그 보석을 사용할 수 있지만 documentat 이온이 부족합니다 : http://github.com/ddollar/socket-debugger/tree/master
링크 죽었어. 누구 한테 복사본이있어? –
매우 긴 실행 SQL 쿼리로 이와 비슷한 것을 보았습니다.
MySQL은 쿼리가 실행 시간 제한을 초과했기 때문에 쿼리를 죽였고 스레드는 쿼리가 죽었다는 것을 결코 깨닫지 못했습니다.
데이터베이스 로그를 확인해야 할 수 있습니다.
로그에서 어떻게 나타 납니까? 더 이상의 지표? –
유휴 상태 였을지라도 많은 CPU를 소비 한 Phusion Passenger와 관련된 루비 프로세스가 있습니다. this thread에 제안 내가
date -s "`date`"
를 실행 한 후
이 문제는 멀리 갔다. (Debian Squeeze에 있었음)
분명히 문제는 윤초와 관련이 있으며, MySQL, Java 등 많은 다른 응용 프로그램에 영향을 줄 수 있습니다. 자세한 정보는 this thread on lklm.
생명의 은인에게 감사드립니다! –
환상적입니다, 감사합니다! 누군가이 시가를 줘! – Joe
첫 번째 요청에 대해 아파치를 다시 시작하면이 문제가 발생합니다. 프로세스가 제대로 실행되면 애플리케이션이 정상적으로 실행됩니다. 그러나 사이트에 오는 데는 10 분 (트래픽 없음)에서 3 ~ 6 시간 (트래픽 포함)까지 걸릴 수 있습니다. 이는 나를위한 선택 사항은 아니지만 진행 상황과 이유에 대해 알고 싶습니다. – Spasm