我正在创建一个应用程序,我在其中缓存应用程序用户的推文并将其显示在时间轴页面中。我目前正在使用mongodb存储推文。最初mongodb工作得很好,但随着推文数量超过10,000我有一些MongoCursor错误显示如下
未捕获异常'MongoCursorTimeoutException',消息'游标超时(超时:30000,剩余时间:0:0,状态:0)
未捕获的异常'MongoCursorException',消息'无法发送查询:Broken pipe' 未捕获的异常'MongoCursorException',消息'无法获取响应头'
我使用了正确的索引。那可能是什么问题?
答案 0 :(得分:0)
连接超时。对于MongoCursorTimeoutException,请参阅此链接。
使用couldn't get response header
尝试检查数据库是否仍处于运行状态并且网络已连接并再次尝试查询。
答案 1 :(得分:0)
基本问题是这一行
超时:30000
查询运行时间过长,因此已终止。我会查看以下内容
1)使用explain()将查询编入索引 2)mongostat是否报告“idx miss%”,它将指示索引是否在内存中以及是否必须转到磁盘以遍历索引 3)mongostat是否报告高“锁定%” 4)你是否受磁盘绑定,尝试运行“iostat -x 2”