2014-09-09 1 views
2

AWS EC2 인스턴스에서 neo4j 2.0.1 커뮤니티 버전을 실행 중입니다. 일부 읽기 요청 후 Neo4J 서버가 100 % CPU에 가깝게 접근하고 있습니다.Neo4J 서버가 100 % CPU 가까이에 붙어 있습니다.

읽기 또는 쓰기가없는 경우에도 CPU가 100 %에 가까운 상태를 유지합니다.

우분투 'top'명령은 CPU를 사용하는 자바 프로세스를 보여줍니다. 어떻게 디버깅합니까? 어떻게 neo4j 100 %에 가까운

업데이트를 CPU를 유지하기 위해 무엇을하고 있는지 알 수 있습니까 : 내가 지속적으로 GC 로그 아래 참조 : 어떤 쿼리가 없더라도

70356.833: [GC 485305K->421306K(590488K), 0.0023720 secs] 
70356.873: [GC 485498K->421273K(590488K), 0.0023950 secs] 
70356.917: [GC 485465K->421152K(590488K), 0.0027120 secs] 
70356.961: [GC 485344K->421407K(590488K), 0.0023500 secs] 
70357.004: [GC 485599K->421205K(590488K), 0.0034150 secs] 
70357.049: [GC 485397K->421174K(590488K), 0.0027470 secs] 
70357.097: [GC 485366K->421335K(590488K), 0.0022430 secs] 
70357.140: [GC 485527K->421615K(590488K), 0.0024140 secs] 
70357.189: [GC 485807K->421826K(590488K), 0.0025360 secs] 
70357.237: [GC 486018K->422124K(590488K), 0.0031070 secs] 
70357.285: [GC 486316K->421844K(590488K), 0.0024500 secs] 
70357.325: [GC 486036K->421985K(590488K), 0.0024550 secs] 
70357.365: [GC 486177K->422020K(590488K), 0.0028860 secs] 
70357.411: [GC 486212K->421787K(590488K), 0.0025340 secs] 
70357.457: [GC 485979K->421863K(590488K), 0.0027430 secs] 
70357.505: [GC 486055K->422085K(590488K), 0.0023570 secs] 
70357.553: [GC 486277K->422297K(590488K), 0.0024670 secs] 
70357.601: [GC 486489K->422474K(590488K), 0.0023700 secs] 

나는 아주 긴 시간 동안 GC 로그를 참조 타격. 나는 GC가 100 % CPU에 가깝게 소비하고 있다고 생각한다.

CPU가 100 %에 가까운

자바 neo4j 스레드 덤프 : 당신은 내가 나머지 엔드 포인트 이상에서 온 요청을 실행하는 6 개 열려있는 쿼리를 볼 수 있습니다 제공 한 스레드 덤프를 보면 https://onedrive.live.com/redir?resid=49F6403CD7EC37D4!107&authkey=!AM_esZ8nS-iPRCQ&ithint=file%2clog

+0

가능한 한 가지 이유는 작업에 필요한 메모리가 부족하기 때문입니다. Out of Memory 또는 GC 오버 헤드 한계를 초과하는 오류가 발생합니까? – tfb785

+0

메모리 부족 또는 GC 오버 헤드 제한 초과 오류가 표시되지 않습니다. –

+0

그래서 1Gb 힙을 가지고 있는데, 얼마나 많은 데이터를 가지고 있으며 이것을 볼 때 실행되고 있습니까? – JohnMark13

답변

0

(또는 적어도 그 라인을 해석하는 방법입니다 - at org.neo4j.server.rest.repr.CypherResultRepresentation.serialize(CypherResultRepresentation.java:83) 모두 RUNNABLE 상태로 발생합니다.

@ JimBaird가 말한 것처럼 당신은 아마도 당신이 실행했다고 생각하지만 컴퓨터를 쓰러 뜨리는 백그라운드에서 실제로 걸려있는 쿼리를 가지고 있다고 생각합니다.

불행히도 나는 느린 쿼리를 죽일 수 있다고 생각하지 않으므로 다시 시작해야 할 수도 있습니다.

+0

고마워요, 제 생각 엔 이것이 일어난 것 같아요. 시간이 걸리는 쿼리를 수정하려고합니다. 어느 쿼리가 시간이 걸리는 지 알 수있는 방법이 있습니까 (MySQL의 느린 쿼리 로그와 유사 할 수 있습니다)? –

+0

그건 별개의 질문이지만 힌트는 http://stackoverflow.com/questions/21262004/cypher-profile-via-neo4j-rest-api를 참조하십시오. 물론 쿼리를 실행하는 경우 어느 것이 느려지는지 분명해야하며 확실하지 않은 경우 다른 질문을 제기하십시오. – JohnMark13