2011-09-05 6 views
7

내 웹 사이트 CompassionPit.com은 Node.js에서 제공됩니다. 나는 소스 코드를 공개했다. 그것은 hosted at GitHub입니다. 응용 프로그램 자체는 768MB의 RAM이있는 Linode에서 실행됩니다 (최근 서버 업그레이드, 512MB).노드 응용 프로그램의 프로파일 링을 통해 메모리와 CPU 리소스를 어디에 사용하고 있는지 확인할 수 있습니까?

최근 Linode에서 CPU 사용 알림을 받고 있습니다. 점점 더 자주 90 % 이상의 사용률을 기록하고 있습니다. Linode를 호출하여 CPU 리소스에 대한 액세스를 업그레이드 할 수 있는지 알아 보았지만, 지금은 괜찮습니다. 최대 100 %까지 다음 3 코어로 넘칠 수 있기 때문에 Linode는 4 프로세서 Xen입니다. 인스턴스).

메모리와 CPU 리소스를 어디에 사용하고 있는지 Node App에서 프로파일 링 할 수 있습니까? 여러 서버 설정에 의해 실행되도록 응용 프로그램을 재구성해야하지만, 직관적으로 적절한 프로파일 링이 더 똑똑한 아키텍처 결정을 이끌 것이라고 믿습니다. 내가 틀렸다면 나를 바로 잡아주세요.

+0

CompassionPit.com 사라질 것으로 보인다을 일시 정지합니다. – jcollum

답변

0

프로파일 링을 위해 https://github.com/dannycoates/node-inspector을 사용하여 합리적인 성공을 거두었습니다. README 파일 하단에 설치 안내서가 있습니다.

이후 버전의 Node.js에서는 노드 검사기의 프로파일 링 부분이 더 이상 작동하지 않습니다. 나는 아래의 대답에서 언급 한 바와 같이 --prof (http://code.google.com/p/v8/wiki/V8Profiler)과 https://github.com/c4milo/node-webkit-agent으로 합리적인 성공을 거두었습니다.

+0

Freenode의 # Node.js 채널에서 사람들은 dtrace (credit : H4ns) 및 v8-profiler (Glenjamin)를 제안했습니다. –

3

노드 관리자가없는 프로파일 노드 버전 된 0.6.x

뒤에 다음 플러그인 V8의 새 버전 (노드의 0.7.x +)에서만 업데이트되어있다. nodetime.com 외에도 여전히 작동하는 것은 하나뿐입니다. 그것은뿐만 아니라 매우 명확한 지침을 가지고

https://github.com/c4milo/node-webkit-agent

: 그것은 실제 웹킷 디버거를 사용합니다.

+0

이것은 더 이상 사실이 아닙니다. 그 동안에 노드 검사기가 업데이트되었습니다. – Leo

+0

@LeoKoppelkamm Node Inspector에서 프로파일 링을 지원하는 곳은 어디입니까? [README 여전히 상태] (https://github.com/node-inspector/node-inspector#known-issues) "프로파일 러가 아직 구현되지 않았습니다". – John

+0

0.6.x 주석을 참조하고있었습니다. 노드 인스펙터는 잠시 동안 완전히 깨졌지만, 그 시간은 고정되어 있습니다. 나는 그것을 해결하기 위해 답을 편집 할 것입니다. – Leo

1

v6.3.0 이상, you can now runnode --inspect your_script.js.

노드는 Chrome에서 열 수있는 콘솔에 대한 URL을 인쇄합니다.이 URL을 통해 노드 프로세스를 프로파일 링하는 데 사용할 수있는 완전한 기능의 웹 검사기가 나타납니다.

실행 node --inspect --debug-brk 바로 몇 년 후이 게시물에 오는 사람을 위해, (당신이 당신의 응용 프로그램이 시작 되 자마자 프로파일 링 세션을 시작해야하는 경우 편리) 실행

관련 문제