美文网首页
mongodb CPU占用过高

mongodb CPU占用过高

作者: Donald_32e5 | 来源:发表于2022-01-04 10:26 被阅读0次

问题描述

  • 机器配置:2核2G
  • 环境配置:python3.7 asyncio爬虫使用morto读取写入数据库
  • 问题字段:account_id在数据库中设置为 唯一索引键。当清洗数据后,通过字段account_id检测重复,cpu就会占用极高,而且占用cpu的程序不是mongod服务,是我自己的爬虫程序

解决过程

  • 初步判断是因为程序在空转for循环。导致cpu持续不下来
  • 问题已经明确定位在自己的爬虫程序上
  • 每次只运行一条操作数据库sql,确认问题sql
  • 最后经过排查,是因为async并发量太高,数据回来之后,都在此处等待着检测重复逻辑,因为任务都等待在这,async内部会不断的轮询检测already的task,但是任务又一直在等待!
  • 对于我的程序来说,降低并发量并不太现实,只能在mongo的collection设计上做出改变,因为我检测逻辑是唯一索引,每次查询或者写入,都是需要锁表的,导致这些认为都在这阻塞,通过新建一个collection,不做任何索引,数据来了就异步写入,这样就不会导致ascync内部的检测循环一直空转,导致cpu过高

相关文章

  • 一次load高但是cpu占用率低的排查

    load过高但是cpu占用率低的排查 过程描述 某天晚上,短信受到报警,说mongodb服务器cpu load过高...

  • mongodb CPU占用过高

    问题描述 机器配置:2核2G 环境配置:python3.7 asyncio爬虫使用morto读取写入数据库 问题字...

  • JVM排查问题实战

    CPU 资源占用过高 top 查看当前 CPU 情况,找到占用 CPU 过高的进程 PID=123。 top -H...

  • JVM排查问题实战

    CPU 资源占用过高 top 查看当前 CPU 情况,找到占用 CPU 过高的进程 PID=123。 top -H...

  • 解决linux cpu占用不高但是负载很高

    客户现场遇到mongodb cpu偶发性占用过高问题,配置16c16g,装了mysql,mongo,influxd...

  • 如何定位java进程cpu占用过高

    如何定位java进程cpu占用过高 如何定位java进程cpu占用过高,分三步走 根据cpu消耗,打印出pid进程...

  • 几种常见的JVM调优场景

    cpu占用过高 cpu占用过高要分情况讨论,是不是业务上在搞活动,突然有大批的流量进来,而且活动结束后cpu占用率...

  • CPU或内存过高

    CPU过高1.top查看占用cpu过高的进程pid2.top -Hp pid查看该进程中每个线程占用cpu的情况3...

  • 线上问题排查基本思路

    cpu占用过高排查思路 1、top查看占用cpu高的进程 pid2、top -Hp pid 查看进程中占用cpu过...

  • jvm常规问题排查思路

    一、cpu占用过高 cpu占用过高要分情况讨论,是不是业务上在搞活动,突然有大批的流量进来,而且活动结束后cpu占...

网友评论

      本文标题:mongodb CPU占用过高

      本文链接:https://www.haomeiwen.com/subject/zekqcrtx.html