幾周前我部署了我的應用後,我正面臨一些問題!SpringData不關閉連接?
我發現,春天的數據使用一段時間後得到蒙戈下來並打印此消息:
「說明」:「不能叫了一句:vdbmongo1/10.20.0.211:27017/V1;嵌套的例外是com.mongodb.MongoException $ Network:不能調用某些東西:vdbmongo1/10.20.0.211:27017/V1「
首先我們看到打開的文件太多了,我們使用了debian 7,它的極限是4096。增加了這個數字,並翻倍到8192所有打開的文件(如果我是對的,linux中的連接是套接字,與文件相同,不是嗎?)
增加該值lue開始使用內存,然後我們增加了內存,但是我們沒有太多內存可用,並且vm關閉。
最後,我們設置了一個cron服務,以每6小時重新啓動一次,同時我們嘗試獲得一個解決方案並且現在看起來可行。
我的應用程序部署在Debian的7
運行的Tomcat 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
,當我看到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的機器。
這是預期的行爲?