V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
18870715400
V2EX  ›  Python

关于多进程切换的问题

  •  
  •   18870715400 · 2021-02-03 12:24:53 +08:00 · 2163 次点击
    这是一个创建于 1370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这边有 4 个 cpu,6 个进程, 其中第 1 个进程是上传结果的相关进程,发现每次该进程的代码执行到从数据库查询数据的这个步骤的时候,cpu 都会切换到其它的进程,再次切回这个进程已经花费了快 20s,经过验证,中间数据库查询的时间都是 ms 级别的,也就是这个进程的一个周期本来可以在 1-2s 内完成, 但是由于中间的切换时间导致一个周期循环拉的时间特别长,数据库中结果会堆积,那么应该如何解决这种问题呢,有什么比较好的方案么?

    9 条回复    2021-02-03 18:02:44 +08:00
    Jooooooooo
        1
    Jooooooooo  
       2021-02-03 12:40:55 +08:00
    20s 就不是 cpu 切换的问题
    norz
        2
    norz  
       2021-02-03 13:14:29 +08:00
    CPU 调度这个问题情况有很多,你操作系统是啥?
    dalabenba
        3
    dalabenba  
       2021-02-03 13:37:46 +08:00 via Android
    这明显是进程被阻塞了,排除了 io 问题,那就是代码有问题,上秒的延迟就别怀疑系统了。看看代码的锁有没有加错的,再确认下 io 是不是真的只要 ms 级别
    18870715400
        4
    18870715400  
    OP
       2021-02-03 14:09:33 +08:00
    @norz windows 系统,
    @dalabenba 代码没有错误, 我只启用该进程在 2s 内就能完成一个循环
    raysonx
        5
    raysonx  
       2021-02-03 14:16:01 +08:00
    恭喜你发现了震惊业界的 Windows 内核 bug,建议联系微软技术支持解决,顺便联系媒体写个新闻稿(手动狗头)
    Asashiharuka
        6
    Asashiharuka  
       2021-02-03 14:23:21 +08:00
    技术不到位,建议好好学习线程通信
    wamson
        7
    wamson  
       2021-02-03 14:33:18 +08:00 via iPhone
    进程被阻塞了呗,可以打印一下 6 个进程的进程状态,看下进程什么时候变成就绪态。
    todd7zhang
        8
    todd7zhang  
       2021-02-03 17:36:35 +08:00
    倒不如考虑下,查询的 SQL 是不是和其他进程的 SQL 阻塞了?
    所以你单独跑上传的进程很快,但是所有进程一起就不行。
    Lemeng
        9
    Lemeng  
       2021-02-03 18:02:44 +08:00
    我也觉得阻塞了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 03:57 · PVG 11:57 · LAX 19:57 · JFK 22:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.