У меня возникли некоторые проблемы, так как я развернул свое приложение пару недель назад!SpringData не закрывает соединения?
Я обнаружил, что Spring Data получает Монго вниз после некоторого времени использования и распечатан это сообщение:
«DESC»: «не может назвать что-то: vdbmongo1/10.20.0.211: 27017/V1, вложенное исключение com.mongb.MongoException $ Сеть: не может позвонить: vdbmongo1/10.20.0.211: 27017/V1 "
Сначала мы увидели, что было слишком много открытых файлов, мы использовали debian 7, который имеет предел 4096. Мы увеличил это число и удвоил до 8192 все открытые файлы (если я прав, подключения в Linux - это сокеты, то же самое, что файлы, не так ли?)
Увеличение этого va lue запускает использование памяти, тогда мы также увеличиваем память, но у нас не так много доступной памяти, а vm отключается.
Наконец, мы установили службу cron для перезапуска каждые 6 часов, пока мы пытаемся получить решение, и, похоже, оно работает сейчас.
Мое приложение развертывается в котом 7.0.28 работает на Debian 7.
Это часть моего 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
, когда я вижу процессы в vdbmongo1 любой из этих 73959 процессов выглядит следующим образом:
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.
Это ожидаемое поведение?