关于并发数与在线数的概念:
3月11日的测试交流会上大家有问到并发数,后来互相做了交流,我也说了些,但还是不清晰。下面稍微详细点描述下,仅供参考。
并发是操作系统的概念,是指在一定时间内物理机器上有两个或两个以上的程序〔或进程〕同处于开始运行但尚未结束的状态,并且次序不是事先确定的。
并发最底的是与进程、线程有关的操作。
并发的特点:
在并发环境下程序的执行是间断性的、
资源共享系统中资源被多个进程使用独立性和制约性、独立的相对速度、起始时间、 进程之间可相互作用(相互制约) 可分为直接作用和间接作用(5)程序和计算不再一一对应
并发的目的:引入并发是为了提高资源利用率,从而提高系统效率。
也就是说并发指的不是同时,而是一定时间内的运行。
必如数据库的并发就是:多个用户同时操作一个数据库
还有操作系统,设备的并发连接数:路由并发数,TCP/IP,网站的并发连接数。
并发数是与系统有关。
用户数,是系统需要被哪些用户来操作。
在线数:用户同时在一定时间段的在线数量,必如网页设置了session时间为30,那么在一定时间如30分钟,同时会在线多少人。30分钟过后,有的人会施放资源,有的会进入。
这时测试的并发数,才是保证用户使用的可行的值。
一般的网站测试主要是指出的是这个值。
由于网站许多与数据库关联,同样,数据库并发用户访问数也是一定时间内的访问数。每一个访问数据库都要占用一定资源。
比如oracle:
一个客户端连接就是一个用户进程,用户进程进程要通过服务器进程才能与oracle服务器建立连接。每个用户进程和服务器进程是一对一的关系,一个服务器进程被一个客户端占用了就不能在被别的用户使用了,这种方式就叫专用服务器;共享服务器就是一个服务器进程可以被多个用户进程使用。oracle并发数就是服务器进程可以同时启动的个数,如果用专用服务器,你那个50个并发数就只能有50个用户同时连上数据库,如果用共享的,就比较多用户。由于数据库的并发量是有限制的,不能同时容纳上万上百万的同时连接量,因此程序中必须加载连接池。系统通过连接池来保持连接数。
因此测试网站,要考虑网站的并发数,连接池的数,数据库的并发数。
拿网站并发数来说:
当一个网页被浏览,服务器就会和浏览者的浏览器建立链接,每个链接表示一个并发。当页面包含很多图片,图片并不是一个一个显示的,服务器会产生出多个链接同时发送文字和图片以提高浏览速度。如果页面中的图片越多那么服务器的并发链接数量就越多。当图片或页面被服务发送后服务器就关闭链接用于和其他请求者建立链接。每次并发几乎是瞬间完成一般在几个毫秒和几十毫秒之间。这与上面的定义是一样的。
在线数是用户在线的量,有的用户不一定操作,但会占有资源,有的系统会临时将在线用户的资源转给别人,当这个用户再用的时候,再转回来。
所以在线数不是并发数,但在线数可从侧面体现并发数。有并发,必须有操作。
有在线,不一定有操作〔不指系统进程与内存〕。
交流会上有人还提服务器在什么情况下有拐点。这个是服务器性能的测试,与服务器相关,
可用tmpC参数来表示,这个值表示每分钟事务处理量,这是服务器的瓶紧。
比如我们买服务器,需要tmpc值为15万tmpc/m。具体可参考TPC-C标准。
我们做软件测试的可能更注重系统,系统实际利用的用户数。
〔完〕以上个人意见,仅供参考。