web 请求与并发 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
gouera
V2EX    程序员

web 请求与并发

  •  
  •   gouera 2013-11-30 11:44:35 +08:00 5424 次点击
    这是一个创建于 4338 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近要做web压力测试,但是一直到不懂请求与并发到底是什么意思,他们有什么区别,google之后也没看明白。
    还有怎样去测出web的瓶颈在哪里啊?
    12 条回复    1970-01-01 08:00:00 +08:00
    takwai
        1
    takwai  
       2013-11-30 11:49:58 +08:00
    房间门

    请求:一秒可以进去3个人。
    并发:同一时间能否进去3个人?
    wodemyworld
        2
    wodemyworld  
       2013-11-30 12:48:05 +08:00
    网络基础不行
    gouera
        3
    gouera  
    OP
       2013-11-30 13:26:18 +08:00
    @takwai 请求是速度与CPU有关, 并发是大小,与内存有关是吗?
    lecher
        4
    lecher  
       2013-11-30 13:45:44 +08:00   1
    请求是每秒执行完的总数,并发是发起请求的用户数。
    性能测试中每秒执行的总数不能完全体现系统的负载能力,所以根据实际场景还需要模拟并发量,就是多个用户同时请求同一个资源,系统是否能抗住负载。
    web的瓶颈一般都在程序和数据库:
    多用户同时发起请求时 web server是否能在限定的延时内接住所有请求
    为保存这些用户会话所占用的网络联接数有多少,web server 是否都能保持住,检索会话的时间是多少
    为响应请求的数据,程序需要开辟多少内存来保存数据
    为处理请求,需要向数据库请求多少次数据
    ORM模块支持多少并发向数据库提交请求
    数据库在并发请求下的处理延时有多少
    同时向数据库请求数据会占用多少内存
    程序处理请求占用多少cpu资源
    程序处理请求的延时有多少

    这些数据颗粒度可能太细,没有定制好工具要拿颗粒度那么细的数据估计不容易。
    那就监控进程的内存占用,进程的cpu占用率,webserver 响应时间。
    进程的内存占用可以大致了解数据库占用多少内存,程序占用多少内存,webserver占用多少内存
    进程的cpu占用率同样
    webserver的响应时间大致可以了解请求处理的总时长。

    工具分两种,压力源和监控
    压力源要么自己写,业务不复杂的话用apache的ab去做也不错。企业级的loadrunner之类的很专业。
    监控那就看实际场景了。简单的直接用系统内置的应用来看看,需要出报告的,就找几个监控软件配置上去做图表。
    9hills
        5
    9hills  
       2013-11-30 13:58:24 +08:00
    @gouera 「请求是速度与CPU有关, 并发是大小,与内存有关是吗?」

    这个理解完全错误
    lecher
        6
    lecher  
       2013-11-30 14:07:03 +08:00   2
    楼主肯定是基础知识积累的还不够,浏览器的通信机制,渲染流程;程序运行的处理流程;webserver的通信机制,处理请求的流程;数据库查询的处理流程这些基本的概念都没有理解.要做性能测试分析系统瓶颈不现实,如果确实看不懂,还是退一步,先回去看看更基础的概念吧,磨刀不误砍柴功的。

    小应用其实做好这几个已经可以解决大部分的瓶颈问题:
    提高web server 接受并发请求的能力,用有epoll机制的web server。
    增加处理的进程,在web server配置开多个进程同时处理请求。
    降低数据库查询请求,用redis mongodb之类的内存数据库做缓存,保存查询结果到内存中。

    如果做了这两个还存在瓶颈,考虑一下做负载均衡吧。不过那是架构师要考虑的问题。
    gouera
        7
    gouera  
    OP
       2013-11-30 14:53:46 +08:00
    @lecher 非常感谢,刚开始看HTTP权威指南,不知道你说的这些这本书有没有都提到。
    yakczh
        8
    yakczh  
       2013-11-30 14:56:24 +08:00
    请求就是上电梯的人,并发就是电梯上楼的时候能装多少个人不掉下来
    lecher
        9
    lecher  
       2013-11-30 17:16:59 +08:00
    @gouera http权威指南可以帮助你了解浏览器和webserver都会做什么事情,但是涉及到性能的问题,你还需要看看操作系统原理 计算机组成原理一类的书才能了解更多相关的概念,比如cpu负载,内存占用,磁盘读写一类的事情对程序性能会有什么影响。
    julyclyde
        10
    julyclyde  
       2013-12-01 11:06:24 +08:00
    并发是“同时处于被处理阶段”的请求数
    web请求的处理是需要时间的
    julyclyde
        11
    julyclyde  
       2013-12-01 11:06:51 +08:00
    为什么你在不懂这个的情况下去做这个事情呢?这难道不是虚构需求么?
    gouera
        12
    gouera  
    OP
       2013-12-01 17:34:09 +08:00
    @lecher 有这方面的书籍介绍下吗?自己找太难了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3866 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 00:16 PVG 08:16 LAX 17:16 JFK 20:16
    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