0

嗨,我已经在 ubuntu Aws 微型实例上安装了Rocket.chat,它与 Nginx、MongoDB 和节点一起运行,其中 MongoDB 与 docker imagemongo:3.0
一起运行它在安装当天运行顺利,但经过一段时间后它的服务器变慢了,我用top命令检查了服务器内部。是 MongoDB 使用 cpu% 70 左右。第二天它以 90% 以上的速度闪烁。

我已经在服务器上重新安装了所有东西,但它又是一样的,没有运气。

这是topcmd的屏幕截图。
请让我知道是否需要任何其他统计信息。 在此处输入图像描述

我如何检查这里的主要问题,如何优化它以使其正常工作。

谢谢

4

1 回答 1

0

我知道为什么会出现这个问题。我开始使用 Meteor 实现我的自定义聊天平台。所以问题的原因在于services.resume.loginTokens用户对象。
我们正在尝试在自定义原生 android 应用程序上实现火箭聊天方法/api。每当应用程序从 android 应用程序调用登录方法时,它都会添加一个新的登录令牌而不删除以前的登录令牌(用于多系统登录)

因此,如果您通过一些日期检查删除前一个,它不会对用户对象产生开销。

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
  }

我从这个问题中得到了这个解决方案

于 2016-09-08T11:15:13.843 回答