2011-09-28 3 views
1

배경 :Ruby on Rails에서 열려있는 파일 설명자를 모니터하는 방법은 무엇입니까?

최근에 내 레일 서버에 문제가있어 응답을 멈추고 바운스를 받아야 다시 작동 할 수 있습니다. 이 문제는 서버를 완전히 수신 할 때까지 서버 응답 시간이 계속 증가하면서 일부 대량 처리를 수행하기 위해 POST를 수신 할 때 포크를 수행하는 컨트롤러가 원인이었습니다. 나는 그 문제를 해결했다고 확신한다. (포크에 복사 된 DB 연결은 자식 프로세스에서 닫히지 않았다.) 그러나 그것을 권위있게 테스트하는 것은 좋을 것이다.

질문 :

내 레일 응용 프로그램 내부의 파일 기술자에서 모니터링 할 수있는 방법이 있나요? 리눅스에서 실행 중이므로 proc 파일 시스템과 lsof 명령을 사용하여 열린 파일 설명자를 관찰했습니다. 이것은 현재 프로세스의 스냅 샷을 제공하기 때문에 지저분합니다. 이상적으로는 처리 전, 처리 중 및 처리 후에 상위 및 하위 프로세스에서 열린 파일 설명자를 인쇄하여 파일 설명자가 환영받은 후에 열리지 않도록해야합니다.

`lsof | grep something` # shell command example. 

프로그램 같은 :

답변

0

한 가지 방법은 (아마도 단순한는) 같은 Workling와 마찬가지로, 어떤 종류의 배경 노동자를 사용하고 간격으로 lsof를 실행하고, 그리고 구문을 사용하여 출력을 받고 고려 lsof은 너무 자주 실행하면 성능에 큰 타격을 줄 수 있습니다. 아마 10 대 ~ 30 대. 어쩌면 5 초가 될지도 모르겠지만, 실제로 그렇게 추진하고 있습니다. 전용 서버 또는 가상 머신을 가지고 있다고 가정합니다.

배경 작업자는 이러한 명령 결과를 변수에 저장하거나 사용자가 실제로 찾고있는대로 grep하고 (예를 들어) 원하는대로 데이터에 액세스/조작 할 수 있습니다.

관련 문제