mongodb连接不及时关闭的错误
2015-08-11 15:21
453 查看
服务器环境: liunx tomcat java mongodb
错误信息:
org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:686)
at java.lang.Thread.run(Thread.java:745)
linux命令排查 :
命令 netstat -n | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'
结果TCP状态 ESTABLISHED 数量很高,达到1000多,导致服务器端口大量被占用
命令 netstat -an
结果显示大量mongodb端口 ESTABLISHED 的连接很多,无法创建新的连接
经过代码排查,发现mongodb操作完后需要执行close方法关闭tcp连接
以上方法修改完后,压力测试用上面netstat 方法查看发现mongodb的tcp状态在当时TIME_WAIT 很多,但过几分钟就没了,
目前访问量可以支撑,以后想办法优化mongodb调用,或换用其他mongdb驱动,目前用的是MongoClient 。
错误信息:
org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:686)
at java.lang.Thread.run(Thread.java:745)
linux命令排查 :
命令 netstat -n | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'
结果TCP状态 ESTABLISHED 数量很高,达到1000多,导致服务器端口大量被占用
命令 netstat -an
结果显示大量mongodb端口 ESTABLISHED 的连接很多,无法创建新的连接
经过代码排查,发现mongodb操作完后需要执行close方法关闭tcp连接
以上方法修改完后,压力测试用上面netstat 方法查看发现mongodb的tcp状态在当时TIME_WAIT 很多,但过几分钟就没了,
目前访问量可以支撑,以后想办法优化mongodb调用,或换用其他mongdb驱动,目前用的是MongoClient 。
相关文章推荐
- 【Mongodb】3.0 配置身份验证db.createUser()说明
- MongoDB安装及连接
- mongodb
- 使用Java 连接MongoDB3.X 3.04 带 auth 认证
- MongoDB数据类型
- MongoDB 3.X Crud 增删查改
- MongoDB与内存
- mongodb官网文档阅读笔记:write concern
- Mongodb-使用javaDriver 实现增删改查
- MongoDB CUD文档
- supervisor监控mongoDb
- 使用NoSQL Manager for MongoDB客户端连接mongodb
- mongodb 3.0下载安装、配置及mongodb最新特性、基本命令教程详细介绍
- mongodb中处理插入数据去重问题
- Mongodb简单的分片搭建与测试
- Spring整合MongoDB
- python连接mongodb并操作
- 【MongoDB】MongoDB笔记—常用命令
- 【MongoDB数据库】Java MongoDB CRUD Example
- 使用Java操作Mongodb