异步压力测试探索:什么是异步非阻塞

来源:互联网 发布:查看交换机端口速率 编辑:程序博客网 时间:2024/05/17 08:06

Web系统的实时性要求,为每个用户保持一个连接,这些连接大多时间是空闲的。在传统的同步web服务器中,即是为每个用户分配一个线程,这种做法相当耗费资源。

 

那么什么是同步/异步、阻塞/非阻塞呢?

异步(Asynchronous)和非阻塞(non-blocking)是紧密相关的两个术语,也经常被不加区分使用。但实际它们是不同的概念。

当一个方法在返回前等待某件事情,那么它就被阻塞了。引起阻塞的事情可以是network,可以是IO,也可以是CPU。实际上,任何一个方法都或多或少的被阻塞,因为只要运行就需要CPU。

而我们常说的阻塞/非阻塞,通常是从某一个方面来看的。比如非阻塞的http请求(发送即返回,不等待响应),在域名解析时仍然是阻塞的,只不过这类阻塞从整体上来看影响是非常小的。

而异步说的是,一个方法在执行结束前就返回了,一般会在后台产生一些工作并在未来某一时刻触发一些动作。与之相对应的同步,就是说在方法返回前,要把所有的事情做完。

 

好吧,还是觉得很难区分。。。不过这不重要,知道是这么一回事就可以了。

 

来一个例子:

餐厅来了10个顾客,为了提供最佳消费体验,不让顾客等待,为每个顾客分配一个服务员。服务员给顾客安排好座位,把菜单交给顾客,然后在一边等待顾客点餐。点完餐后把订单交给厨房,然后在厨房等待大厨烹饪。菜做好后,将菜送到桌上,然后在桌旁静静的看着顾客吃。。。

这就是同步,为了保证“实时”的服务,需要有一个专门的人员时刻等待。

有人说了,这尼玛不是有病么!哪个餐厅这么干?可是传统的web服务器就是这样的呢,比如apache。

 

现实中的餐厅为了节省成本,当然不会这么做,也许两个服务员就足够了。给新进来的顾客安排好座位,菜单交给他,然后就可以去忙活其他的顾客了。等顾客点好菜喊一声,赶紧冲过来下单。。。

这就是前文所说的异步方式,服务员不需要等待顾客完成全部任务,就“返回”了。

那有这种方式的web服务器么?当然有了,也是近年来的新趋势,如nginx、tornado等。

 

又有人说了,这和我们的主题压力测试又有什么关系呢?

我们以往所做的压力测试,一般是要通过一些工具来模拟压力(多用户),比如LoadRunner, Jmeter等,也都是采用这种同步的方式。测试工程师负责写脚本来定义“一个”用户的行为,工具会启动多个线程执行脚本,每个线程只负责自己的脚本(一个用户)。

在测试脚本中,描述了一个用户的典型操作。比如访问一个网址,提交一些数据,等待返回的响应,然后可能还要休息一段时间(ThinkTime)再做下一次操作。

实际上,一个线程在执行脚本的过程中,绝大多数时间都是在等待的,等待服务器响应,以及主动的sleep模拟真实用户的操作间隔。

 

可以看到,同步方式最大的问题就是浪费资源。一万个用户需要一万个线程,一万个线程需要几台机器才能运行呢?

 

既然这么多线程都在等待,难道不能用更少的线程么?在一个用户等待的时间,去处理其他用户的事情?

这正是这个系列文章要探索的内容——采用异步的方式来做压力测试。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 育碧换电脑了无法同步云存档怎么办 刺客信条起源育碧需要激活码怎么办 电脑连不上网怎么办wifi可以用 电脑登录账号密码错误锁定了怎么办 白色T恤衫上沾上黑色的黄油怎么办 家教遇到成绩好的学生该怎么办 跟越南人离婚孩子中国户口9怎么办 老婆是个越南人至今没户口怎么办 等离子屏z板链接处排线打火怎么办 等离子自动调焊的成形不好怎么办 村里内村道路中间被抢占了怎么办 华为换电池之后卡没反应怎么办 汽车钥匙换电池后没反应怎么办 汽车解锁换电池后没反应怎么办 包裹显示待收件人向海关申报怎么办 在越南签证被公安扣了怎么办 酷派手机收不到验证码怎么办 苹果想把图片上的字盖上怎么办 婴儿自己把眼珠子抠红了怎么办 如果美陆战队员进入台湾那怎么办? 顺产生完小孩吸不通奶怎么办 耐克空军一号白色底发黄怎么办 中行网银u盾丢了怎么办 有人用你的手机号码不停注册怎么办 获得公开你微信头像的权限是怎么办 手机能进的网站电脑进不去怎么办 苹果8p下不了微信怎么办 苹果手机版本过底不能下微信怎么办 手机打开视频跳转到qq是怎么办 淘宝店铺显示服务竟然出错了怎么办 母羊下完羊羔把羊衣吃了怎么办? 移植后56天有黑色东西怎么办 我家的金丝熊浑身都是尿怎么办 一键启动车钥匙丢了怎么办 把爷爷的遗物弄丢了怎么办 如果你娶了一个傻子你怎么办 在国外订机票手机收不到信息怎么办 网上买机票名字写错了怎么办 买机票名字错了一个字怎么办 微店没收到货却显示已收货怎么办? 手机存的照片误删了怎么办