加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

服务器滞后 – Django mongodb cronjob

发布时间:2020-12-20 13:06:09 所属栏目:Python 来源:网络整理
导读:我正在部署一个Django应用程序,我正在使用apache进行部署,模块为WGSI,mongodb为数据库. 我每隔10分钟就会收到多个cronjob来收集许多API的数据(使用django-kronos). 当服务器启动时,每件事情都很棒,但几个小时后服务器开始滞后,现在他已经失败了.使用了100%
我正在部署一个Django应用程序,我正在使用apache进行部署,模块为WGSI,mongodb为数据库.

我每隔10分钟就会收到多个cronjob来收集许多API的数据(使用django-kronos).

当服务器启动时,每件事情都很棒,但几个小时后服务器开始滞后,现在他已经失败了.使用了100%的cpu.
Here:

这是我的一个crontask:

@kronos.register('*/10+2 * * * *')
def update_mongo():
  # init the instagram api
  api = InstagramAPI(client_id = 'SOCIAL_AUTH_INSTAGRAM_KEY',client_secret = 'SOCIAL_AUTH_INSTAGRAM_SECRET')

  # Get Last post added in database
  try:
    last_id = Post.objects(keywords = 'news').order_by('-created_at').limit(1)[0].insta_id
  except:
    last_id = 0

  # Get the last Media tagged news
  if last_id != 0:
    results = api.tag_recent_media(tag_name = 'news',min_tag_id = last_id)
  else:
    results = api.tag_recent_media(tag_name = 'news')

  for result in results:
    # if post doesn't exist,we create a new one
    try:
      post = Post.objects.get(insta_id = result.id)
    except:
      post = InstaPost()

    # Init the post and save it in database
    post.save(result)

问题现在,如果我不知道究竟是哪里的问题,是apache django?或者这行post = Post.objects.get(insta_id = result.id)?

编辑

我删除了cronjob并得到了同样的问题,经过一段时间物理内存和CPU刚刚开始,服务器开始非常困难.

服务器是一个非常糟糕的升级服务器:1核,992 MB RAM

解决方法

您的图表显示了应用程序减速时的内存,磁盘和CPU活动.这可能是因为应用程序内部消耗了内存.当应用程序达到其内存限制时,它将开始交换到磁盘.你还可以发布交换文件使用情况的图表吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读