2013-09-05 2 views
0

몇 주 전에 앱을 배포 한 이래로 몇 가지 문제에 직면하고 있습니다. 중첩 된 예외는, 27017은/V1 :SpringData가 연결을 닫지 않습니까?

"내림차순": "뭔가 호출 할 수 없습니다 : vdbmongo1/10.20.0.211

나는 봄 데이터가이 메시지를 사용하는 몇 시간 후에 몽고를 얻을 수 및 인쇄 발견 com.mongodb.MongoException $ 네트워크 : 뭔가를 호출 할 수 없습니다 : vdbmongo1/10.20.0.211 : 27017/V1 "

열린 파일이 너무 많아 처음에는 4096이라는 제한이있는 debian 7을 사용했습니다. 그 숫자를 늘리고 열려있는 모든 파일을 8192 개로 두 배로 늘 렸습니다. (맞다면 리눅스의 연결은 소켓, 같은 파일입니까?)

lue가 메모리 사용량을 늘린 다음 메모리를 늘렸지 만 사용할 수있는 메모리가 많지 않고 VM이 종료됩니다.

마지막으로 해결책을 얻으려고 시도하는 동안 6 시간마다 다시 시작하도록 cron 서비스를 설정했으며 현재는 작동하는 것 같습니다.

내 애플 데비안 7

에서 실행되는 톰캣 7.0.28에 배포 된이는 몽고의 인스턴스를 만들 수있는 내 XML의 조각이다 : 우리는 오늘 아침에 서버를 다시 시작

<!-- MongoDB host --> 
<mongo:mongo host="${mongo.host.name}" port="${mongo.host.port}" write-concern="SAFE"> 
    <mongo:options 
     connections-per-host="40" 
     threads-allowed-to-block-for-connection-multiplier="1500" 
     connect-timeout="15000" 
     auto-connect-retry="true" 
     socket-timeout="60000" 
     write-number="1" 
     write-timeout="0" 
     write-fsync="true"/> 
</mongo:mongo> 

및 여기 스레드가 진화하는 방법입니다

:

Time    Threads (files)   Connections   RAM 
09:00:00   90      4      177 
10:00:00   7371     78     411 
10:35:00   12519     106     480 
11:00:00   14375     113     485 
11:40:00   16616     122     490 
12:00:00   22776     144     584 
12:30:00   26544     156     594 
13:00:00   30251     167     600 
13:40:00   39179     191     827 
14:00:00   44075     203     855 
15:13:00   60491     239     891 
15:41:00   61976     242     904 
16:00:00   64491     264     931 
16:10:00   68619     255     939 
16:20:00   70200     258     971 
16:30:00   73416     264     1123 
16:45:00   73959     265     1130 

내가 그 73959 개 프로세스 vdbmongo1 임의의 프로세스를 참조 같습니다 0

mongod 30859 32763 mongodb 327u IPv4   1646841  0t0  TCP vdbmongo1:27017->vtomcat1:60329 (ESTABLISHED) 
mongod 30859 32763 mongodb 328u IPv4   1647673  0t0  TCP vdbmongo1:27017->vtomcat1:60330 (ESTABLISHED) 
mongod 30859 32763 mongodb 329u IPv4   1646867  0t0  TCP vdbmongo1:27017->vtomcat1:60650 (ESTABLISHED) 
mongod 30859 32763 mongodb 330u IPv4   1646913  0t0  TCP vdbmongo1:27017->vtomcat1:60762 (ESTABLISHED) 
mongod 30859 32763 mongodb 331u IPv4   1648224  0t0  TCP vdbmongo1:27017->vtomcat1:60962 (ESTABLISHED) 
mongod 30859 32763 mongodb 332u IPv4   1647197  0t0  TCP vdbmongo1:27017->vtomcat1:32923 (ESTABLISHED) 

여기서 vdbmongo1은 데이터베이스가 들어있는 머신이고 vtomcat1은 tomcat이 배치 된 머신입니다.

이것은 예상되는 동작입니까?

답변

0

예, 정상적인 동작입니다. 이 모든 연결 (연결 당 기본 1메가바이트) 메모리를 사용하여뿐만 아니라, 메모리에 직접) (데이터 파일을 메모리 매핑되므로

MongoDB를 가능한 한 많은 메모리를 사용합니다

0

은 지난 몽고 버전에이 업데이트를 보인다 (2.4.8)이 문제를 해결했습니다. 이제는 15 ~ 20 개 이상의 연결을 동시에 볼 수 없습니다.

관련 문제