您好我已经在ubuntu Aws微实例上安装了Rocket.chat,它运行了Nginx,MongoDB和节点,其中MongoDB使用docker image mongo:3.0
运行
它在安装当天运行顺利,但经过一段时间服务器变慢了,我在服务器内用top
命令检查。 MongoDB使用大约70的cpu%。第二天它超过90%闪烁。
我重新安装了服务器上的所有内容,但它又一样,没有运气。
以下是top
cmd的屏幕截图
如果需要任何其他统计数据,请告知我们。
我如何检查这里的主要问题,如何对其进行优化以使其正常工作。
谢谢
答案 0 :(得分:0)
我知道为什么会出现这个问题。我开始用Meteor实现我的自定义聊天平台。
因此问题的原因是用户对象中的services.resume.loginTokens
我们正在尝试在自定义本机android应用程序上实现火箭聊天方法/ api。
每当应用程序从android应用程序调用login方法时,它就会添加一个新的登录令牌而不删除以前的登录令牌(对于多系统登录)
因此,如果您使用某些日期检查删除前一个,则不会为用户对象创建开销。
Accounts.registerLoginHandler (loginRequest) ->
# ... Do whatever you need to do to authenticate the user
stampedToken = Accounts._generateStampedLoginToken();
Meteor.users.update userId,
$push: {'services.resume.loginTokens': stampedToken}
# Delete old resume tokens so they don't clog up the db
cutoff = +(new Date) - (24*60*60)*1000
Meteor.users.update userId, {
$pull:
'services.resume.loginTokens':
when: {$lt: cutoff}
},
{multi : true}
return {
id: userId,
token: stampedToken.token
}
我从这里得到了这个解决方案question