Python Web 开发并发访问问题青椒 - V2EX
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
pengpotter
V2EX    Python

Python Web 开发并发访问问题青椒

  •  
  •   pengpotter 2016-02-28 23:19:55 +08:00 4447 次点击
    这是一个创建于 3517 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位好啊,请教一个问题,我用 flask ngix gunicorn 部署了一个简单的 web 服务,但是发现如果一个用户访问的时候,其他用户必须等待前一个用户访问处理完了才能进行。。。这个问题怎么解决。。刚入门 web 开发。。请教下
    20 条回复    2016-02-29 14:29:09 +08:00
    sunus
        1
    sunus  
       2016-02-28 23:23:16 +08:00
    @pengpotter 看下 gunicorn 的 workers 配置了几个
    pengpotter
        2
    pengpotter  
    OP
       2016-02-28 23:33:15 +08:00
    @sunus 不知道你说的 workers 的配置,是不是指的和 gunicorn -w 后面的这个参数是一个效果的。 我想请教下,如果这个数值设置为 10 ,那就是 10 个线程,然后可以同时接受 10 个并发访问? 这个意思么?如果这样的话。。效率也太低了
    lecher
        3
    lecher  
       2016-02-28 23:47:29 +08:00 via Android
    并发十个,如果每个业务可以在 100ms 内解决,一秒也可以处理一百个请求了。
    还嫌不够就用 greenlet 。开启协程大法。
    pengpotter
        4
    pengpotter  
    OP
       2016-02-28 23:54:32 +08:00
    @lecher OK ,我试试
    SlipStupig
        5
    SlipStupig  
       2016-02-29 00:00:40 +08:00
    @pengpotter 生产环境建议开多个实例,如果你有 4core cpu ,就开 4 个 web 应用的实例,然后用 nginx 去代理,静态资源尽量让 nginx 去处理,如果 cpu 够的情况开启 gzip 模块, nginx 开启 TCP_NODELAY TCP_NOPUSH sendfile,总之一句话:让 nginx 多干活其它少干活
    maemual
        6
    maemual  
       2016-02-29 00:05:48 +08:00 via iPhone
    @pengpotter 所以什么叫堆机器,这就是堆机器。想提高并发,就是要堆机器。
    pengpotter
        7
    pengpotter  
    OP
       2016-02-29 00:09:11 +08:00
    @SlipStupig
    @maemual
    哦,听你们一说就明白怎么回事了,谢谢了~
    SlipStupig
        8
    SlipStupig  
       2016-02-29 00:30:20 +08:00
    @maemual 写好程序才是王道,程序写的烂一百台机器也不如人家一台
    mengzhuo
        9
    mengzhuo  
       2016-02-29 08:15:21 +08:00 via iPhone
    lz 你好可爱啊
    你需要的是并发方面的知识
    我司最高纪录是 5000 多人同时访问 python 写单进程程序,加油哦
    maemual
        10
    maemual  
       2016-02-29 08:28:01 +08:00 via iPhone
    @SlipStupig 那你能永远不堆机器么。
    yov123456
        11
    yov123456  
       2016-02-29 08:37:35 +08:00 via iPhone
    gunicorn-k gevent 会不会好一点 [我不懂…也问问
    tabris17
        12
    tabris17  
       2016-02-29 09:20:06 +08:00
    开启 gevent 支持

    另外 nginx 拼写错误
    lovedboy
        13
    lovedboy  
       2016-02-29 09:38:22 +08:00
    Gevent 支持或者多进程==
    liko
        14
    liko  
       2016-02-29 09:57:14 +08:00
    开 gevent 也得看场景,别误导人家了
    thwawar
        15
    thwawar  
       2016-02-29 10:27:32 +08:00
    gevent 在 IO 密集的时候才有效果
    virusdefender
        16
    virusdefender  
       2016-02-29 10:51:31 +08:00
    单进程就是这样,后端可以做异步处理
    SlipStupig
        17
    SlipStupig  
       2016-02-29 11:22:47 +08:00
    @maemual 看业务场景,能便宜坚决不贵
    zonghua
        18
    zonghua  
       2016-02-29 11:50:18 +08:00 via iPhone
    其实好多互联网泡沫单机就能够稳妥地运行
    donghouhe
        19
    donghouhe  
       2016-02-29 12:33:58 +08:00 via iPad
    也许加上 gevent 后就可以解决了吧,你的程序阻塞得太久了吧
    pengpotter
        20
    pengpotter  
    OP
       2016-02-29 14:29:09 +08:00
    我今天试着加上了 gevent 之后就有效果了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     984 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:35 PVG 02:35 LAX 11:35 JFK 14:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86