如何判断web服务器支持用户在线
‘壹’ 怎样模拟多用户登录一个web网站
1 怎样的性能测试结果才是有效的
1.1 错误观点
性能测试工具运行一定用户数都成功,则表示该服务器能支持这么多用户数。这是错误的。
解答:
A.
因为一次有效的测试结果,不只用户都运行成功,同时需要保证访问一个页面或一次交易的响应时间在合理范围。“2-5-8原则”,简单说,就是当用户访问一
个页面或一次交易能够在2秒以内得到响应时,会感觉系统的响应很快;当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;当用户在5-8秒以内
得到响应时,会感觉系统的响应速度很慢,但是还可以接受;而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为
系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。
B. 测试场景不一定模拟了真实业务场景,因为浏览器是并发多线程多TCP完成一个页面的,而测试工具基本都是1,2个线程;对服务器的压力是不一样的,真实环境的TCP压力是性能测试工具虚拟环境的几倍。
2 影响WEB服务器性能指标的因素有哪些
为什么性能测试工具,需要提供事务(页面或交易、全脚本)指标、TCP连接、吞吐量、服务器资源监控、请求数/响应数。
1) 硬件资源:如CPU、内存、网卡吞吐量、I/O能力、SWAP交换能力
2) 线程数:这里介绍java的WEB服务器,默认每线程占用的内存为2M,而32为系统JAVA进程(如tomcat、JBoss)占得空间只有2G(一般比这个小),因此线程数有限制;64为无限制线程,但CPU要跟得上
3) TCP连接数:操作系统的TCP连接数理论值一般很大,操作系统对TCP连接设置有默认值(怎么配置,可以网上搜索,这里不介绍);但实际测试中TCP连接在几百,就出现测试的响应时间很长。抓包分析,原来是三次握手的SYN包服务器不及时响应,导致SYN重传(3秒后,9秒后)。
如果SYN丢了,则会重发,但是第一次是3秒后,第2次是在9秒后,如果重发才收到的SYN_ACK,则导致TCP连接超长,从而导致业务响应时间延长。
4) 响应时间:服务器响应时间小,用户体验才好,在大量用户并发的情况下,HTTP响应时间在用户忍受度下才是有效的,一般采用“2-5-8原则”。
5) 软件本身代码性能算法:这个不做介绍,如差的算法、查询数据库时间长等等。
3 测试人员经常遇到的一些常见问题及解答
3.1 为什么使用浏览器访问页面响应很快,1-2秒就完成;而使用测试工具却需要10几秒,甚至几十秒才完成脚本
解答:
A.
这是由于浏览器访问页面响应是并发的,同时并发多个线程(多个Socket),而性能测试工具基本是串行发送请求的。如果一个页面有100个资源
(CSS、HTML、JS、图片),需要发送100个HTTP请求,如果使用6个线程(浏览器),则每个大概请求14个HTTP;如果使用一个线程(测试
工具),则需要请求100个,时间当然大很多。下图为chrome浏览器调试工具显示的并发情况:
B. 另外浏览器具有缓存功能,如果之前访问了www.qq.com,
会把一些图片缓存在浏览器临时目录,下次请求时发送的HTTP请求会带上If-Match或Etag等头域,WEB服务器判断资源没改变则会304响应,
而不是回200 OK,这样减少资源的传输,所以时间就小。而有些测试工具是不携带这些头域(包括Loadrunner),因此回的响应是200 OK。所以测试人员默认真实测试时,可以考虑部分有缓存,部分没缓存。
3.2 性能测试工具是怎么模拟WEB虚拟用户
A. 录制
使用浏览器进行正常业务操作,性能测试工具录制下HTTP请求信息。一般需要记录URL与头域、内容、响应码。虽然不同的性能测试工具录制方式不一样(如
loadrunner采用Hook,JMeter采用代理或badbody,kylinPET采用网卡抓包与代理),但都能实现录制正常业务的HTTP请
求。
测试工具最好能录制出缓存头域,即If-Match或Etag,loadrunner好像不支持录制缓存头域。
B. 模拟用户
根据录制的脚本发送HTTP请求与接收响应,发送前替换参数(实现多用户不同参数值)、接收时关联参数(从接收的响应消息获取参数值,如Cookie、JSessionID)
下面简单列举使用过的性能测试工具是如何模拟的(工具运行一个用户,然后使用wireshark抓包分析得到的结论):
Loadrunner:根据录制脚本发送HTTP请求,如果HTTP请求包括内嵌资源(如图片、CSS、JS),会启动第二个线程执行内嵌资源,即Loadrunner支持同时两个线程两个TCP连接。
kylinPET(国产):可通过配置设置一个线程或者多个线程并发发送HTTP请求,多个线程并发及TCP连接数跟浏览器行为一样。
JMeter:只有一个线程,一个TCP连接
其他工具:本人没用过,请用过的兄弟姐妹可以补充下。通过wireshark抓包分析。
3.3 怎样才能测试出WEB服务器能支持多少真实用户,怎样的服务器调优参数才合理
解答:
这需要性能测试工具可以模拟出真实用户的行为,包括HTTP请求数、每用户并发线程与TCP连接数、思考时间、有无缓存。
为什么需要模拟真实用户的线程数与TCP连接数呢,上面提到过,WEB服务器的线程数与TCP连接数往往很低,这不是提高硬件就能轻松解决的,这也是服务器调优比较复杂的配置。
因此,只有尽最大能力模拟真实用户(浏览器或其它WEB客户端,可能不同浏览器的并发线程与TCP数都不一样)的行为的测试场景,测试结果才最真实,服务器调优才最有意义。
4 怎样才能测试系统支持多少用户
4.1 模拟真实用户的行为
只有模拟用户一样的行为才可以系统支持的测试用户数有效,因此需要模拟一样的并发数、TCP连接数、甚至可以是HTTP请求的时间间隔。用户可以是浏览器、智能手机、智能机顶盒,测试工具模拟他们一样的行为才是最有效的测试。
4.2 测试结果数据在合理范围
4.2.1 用户统计
成功数、失败数、每秒在线数、最大在线数,通过这些指标分析此次测试结果支持的用户数、用户最大数
4.2.2 点击率
每秒平均HTTP请求数、响应数。分析系统的处理能力
4.2.3 事务
事务成功、失败、时间,事务一般是整个脚本运行时间、或者一个页面或一个交易,通过结果分析,得出每个事物的时间是否合理,符合“2-5-8”原则,如果
测试结果显示事物时间非常大,则表示系统支持不了此次测试的用户,因为用户的响应时间太大(像火车订票一样,太多用户导致响应时间长,用户无法忍受,则认
为这个系统烂)。
当然,还需要查看事务的百分比,分析90%、80%、70%、60%的事务时间是否在合理范围。
4.2.4 TCP连接信息
TCP连接成功数、失败数、TCP三次握手时间。因为此次测试结果可能是由于服务器系统或网络的TCP的丢包与重传才导致延时大的。如果是服务器的原因,服务器收到TCP的SYN而不处理,可以通过调试服务器的TCP配置来优化。
怎么才知道是服务器的问题呢,这个需要性能测试工具能给出TCP连接时间(当前了解只有kylinPET可以支持),如果显示超过3秒,这时需要检查是网
络还是服务器问题,可以在服务器端抓包(tcpmp或wireshark)然后分析TCP的SYN信息(个数、时间)
4.2.5 资源占用
服务器的CPU、内存、带宽、I/O是不是已经不足,导致系统上不去是哪个原因,根据原因进行调优或升级。
测试时需要考虑性能测试工具的CPU占用率,如果性能测试工具占用CPU很高,此次测试可能瓶颈是在工具,而导致测试结果是无效的。
‘贰’ 服务器,可以ping通 但是无法访问WEB
访问Web服务器是许多局域网用户经常要做的一项“功课”,在频繁访问过程中,不少朋友积累了一些Web服务器访问经验,这些经验常常会帮助他们快速解决一些无法访问的小故障。不过,本文下面贡献出来的Web服务器不能访问故障现象却比较特别,如果不加细细分析,单纯以经验来解决故障时,多半容易走弯路;为了帮助各位朋友高效访问Web服务器,笔者现在就将这种特别的网络访问故障排除过程还原出来,希望大家能从中收到启发!
能Ping通但是不能访问
某单位局域网规模不大,总共18台普通计算机,外加一台安装了Windows Server 2003系统的Web服务器,所有普通计算机以及Web服务器全部连接到一台可管理的核心交换机中,并通过宽带路由器实现局域网共享上网。平时,18台普通计算机中安装使用的操作系统不尽相同,有使用Windows XP系统的,有安装Windows Vista系统的,也有两台计算机比较破旧仍然还在使用Windows 98系统,不过这些计算机都能正常访问局域网中的Web服务器。
可是,最近一段时间,局域网用户通过IE浏览器访问Web服务器站点内容时,系统屏幕上竟然出现了身份验证对话框,要求用户输入合适的用户名和密码信息;事实上Web服务器根本没有启用身份验证功能,它平时能允许局域网中的任何用户通过匿名身份登录、访问其中的站点内容,那为什么现在会出现这种现象呢?更让人感到奇怪的是,网络管理员无论输入Web服务器的合法用户账号还是输入超级管理员账号,都无法顺利通过Web服务器的身份验证,这是什么原因呢?网络管理员尝试使用Ping命令来测试局域网目标Web服务器的连通性时,发现Web服务器能够被正常Ping通,这也证明局域网普通计算机到Web服务器之间的物理连接线路是正常的;在线路通畅的情况下,遇到Web服务器访问不正常的故障现象,这很可能是Web服务器自身哪里出现了问题。
检查Web站点访问权限
起初,网络管理员还以为是Web服务器自身设置不当,造成了局域网用户不能正常访问。考虑到Web服务器突然要求进行身份验证,网络管理员判断这肯定是Web服务器的访问权限被意外修改了,于是立即进入Windows Server 2003服务器系统,依次单击“开始”/“设置”/“控制面板”,双击控制面板中的“管理工具”图标,再双击其中的IIS控制图标,打开对应系统的IIS控制台窗口,从中找到目标Web服务器对应的站点名称,然后用鼠标右键单击目标站点名称,执行右键菜单中的“属性”命令打开目标站点的属性设置窗口;单击该设置窗口中的“目录安全性”选项卡,在对应选项设置页面的“身份验证和访问控制”处单击“编辑”按钮,打开如图1所示的设置对话框,在这里网络管理员无论是选中还是取消选中“匿名访问”、“集成Windows验证”等选项,Web服务器依然还要进行身份验证,这说明这种故障现象与目标Web服务器的访问权限设置无关。
检查服务器连接限制
由于输入了合法用户账号、甚至超级管理员账号也不能正确登录进Web服务器,网络管理员开始怀疑起Windows Server 2003服务器系统可能对用户的同时连接数量进行了限制,因为一旦对Web服务器的站点主目录用户连接数量进行限制时,延后登录的用户是无论如何也不会访问到Web服务器中的站点内容的。想到这一点,网络管理员先是打开服务器系统的资源管理器窗口,从中找到Web服务器的站点主目录,并用鼠标右键单击该目录图标,执行快捷菜单中的“属性”命令,打开目标站点主目录的属性设置窗口;单击该设置窗口中的“共享”选项卡,在对应的选项设置页面中,网络管理员果然发现Windows Server 2003服务器系统将该目录的用户访问数量限制为了5,于是尝试将该参数修改成20,同时保存好该设置操作,之后再次访问Web服务器时,仍然出现了相同的故障现象。
后来,网络管理员上网查询了用户连接限制方面的信息时,发现Windows Server 2003服务器系统要是授权模式设置不当时,也会出现用户连接数量受到限制的现象。搜索到这样的结果,网络管理员心中暗自兴奋了一下,看来Web服务器不能访问的故障现象马上就能解决了;他立即打开Windows Server 2003服务器系统的“开始”菜单,从中依次点选“设置”/“控制面板”命令,并双击其中的“授权”选项,在其后的界面中网络管理员发现服务器系统在默认状态下选用了“每服务器”选项,同时看到用户连接数量显示为“5”,很明显这里的参数没有设置正确。网络管理员立即选用了这里的“每设备或用户”选项(如图2所示),之后在每设备或每客户授权对话框中选中了“我同意”选项,最后重新启动了一下服务器系统;原以为这样的努力肯定会有收获,可是重新从普通计算机中访问局域网Web服务器时,系统屏幕上还是出现了让人讨厌的身份验证对话框。
意外找到故障原因
就在网络管理员毫无头绪的情况下,某位局域网用户突然跑来向网络管理员求援,说他们部门为了工作需要,最近新买回来了一台网络打印机,将该网络打印机连接到单位的核心交换机中,并设置好相关的网络打印参数后,他们部门的所有用户都能正常使用网络打印机打印材料了,不过在今天,他自己的计算机却不能使用网络打印机了,而其他人却能正常进行网络打印。听到这位用户的求援,网络管理员立即来到了网络打印机现场,登录到打印机后台管理界面,偶然之间打开了网络打印机的日志页面,发现网络打印机的IP地址与局域网中某台计算机IP地址发生了冲突,再仔细检查那个发生冲突的IP地址时,竟然是Web服务器使用的IP地址,怪不得Web服务器不能正常访问,原来网络打印机的IP地址与它使用的IP地址发生意外冲突了。
原来,为了管理和维护方便,网络打印机上也运行着一个Web服务,用户通过Web形式的后台管理界面,可以非常轻松地设置网络打印机的各种上网参数,不过网络打印机自带的Weh服务器在默认状态下不支持匿名访问。当用户为网络打印机设置的IP地址与Web服务器地址发生冲突时,局域网用户再在IE浏览器窗口的地址栏中输入Web服务器的IP地址时,其实访问的是网络打印机的后台登录界面,这也是为什么访问Web服务器时系统屏幕上出现身份验证对话框的原因。此时,使用Ping命令测试Web服务器的连通性时,却测试到了网络打印机身上,那样一来网络打印机可以被Ping通,但需要输入合法的用户账号才能访问。
弄清楚了故障原因后,网络管理员立即修改了网络打印机的IP地址,保证了Web服务器的IP地址没有与其他计算机的IP地址发生冲突,结果再次访问Web服务器时,果然能够很快速地打开其中的页面内容了,至此Web服务器能Ping通但不能访问的故障现象就被成功解决了。
最后的总结
这种网络故障解决起来其实并不十分复杂,顺藤摸瓜一定能够找到最终的故障原因。不过,该故障从另一个角度提醒我们每一位网络管理员,解决网络故障不能盲目地套用经验,而应该先在解决故障之前熟悉网络环境的最新变化,熟悉工作环境中的各种网络设备的功能特性,只有知道了网络的最新变化以及网络设备的各种特性,我们才会在遇到网络故障的时候,下意识地进行思考与联想,只有这样才能迅速地找到具体的故障原因,并且能够及时地采取措施来快速解决网络故障。
‘叁’ 一个web服务器能承受多少访问量
没有固定,需要看服务器配置高低。
不仅仅是访问量问题,主要是数据,如果站点数据量不是太大。没有太多的查询。一台P4的普通电脑可以承受成千上万的上网用户。(还有带宽问题,比如共享的100兆位。高带宽。在线人数更多)
如果您有一个几百兆字节或几十亿字节的数据库。这是另一回事。服务器的内存必须至少是数据库的3倍才能运行。
无论如何。常见的企业网站。几百米的股票。P4的平台。网上几千个就足够了(没有下载,没有视频)。
(3)如何判断web服务器支持用户在线扩展阅读:
WEB服务器类型:
1,IIS
IIS服务器称为:Internet信息服务。它是微软公司拥有的web服务器,是目前最流行的web服务器产品之一。
2、康乐
Kanglewebserver(Kangle)是一款跨平台、功能强大、安全稳定、易于操作的高性能web服务器和反向代理服务器软件。
3,WebSphere
WebSphereApplicationServer是一个功能齐全的开放Web应用程序服务器,它是IBM电子商务计划的核心部分。它是一个基于java的应用程序环境,用于构建、部署和管理Internet和IntranetWeb应用程序。
4,WebLogic
BEAWebLogicServer是一个多功能的、基于标准的web应用程序服务器,为企业构建自己的应用程序提供了坚实的基础。
5,Apache
Apache是世界上使用最多的Web服务器,占有大约60%的市场份额。
6,Tomcat
Tomcat是一个开源的基于java的Web应用程序容器,它运行servlet和JSPWeb应用程序。
7,Jboss
它是一个基于J2EE的开源应用服务器。JBoss代码是在LGPL下授权的,可以在任何商业应用程序中免费使用,而不需要支付任何费用。
‘肆’ php web服务器。网站上线在即,请问如何测试服务器压力呢比如如何知道这个网站到底能同时承受
利用一些软件吧,可用来进行 Web 压力测试的工具有很多,比如微软的 Web Application Stress、linux下的 siege、功能全面的 Web-CT 等等,这些都是非常优秀的 Web 压力测试工具。
一、 Siege
一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。
官方:http://www.joedog.org/
1. 下载源码
请自行google例如:
wget http://soft.vpser.net/test/siege/siege-2.67.tar.gz
2. 解压、编译和安装
tar -zxf siege-2.67.tar.gz cd siege-2.67/ /configure make && make install
3. 运行siege
siege -c 200 -r 10 -f test.txt
-c是并发量,-r是重复次数。 url文件就是一个文本,每行都是一个url,它会从里面随机访问的。
test.txt 内容:
http://blog.test.com/wp-content/uploads/2012/07/cluster6.png
http://blog.test.com/wp-content/uploads/2012/07/cluster7-150x150.png
http://blog.test.com/wp-content/uploads/2012/07/cluster7.png
http://blog.test.com/wp-content/uploads/2012/07/cluster8-150x150.png
http://blog.test.com/wp-content/uploads/2012/07/cluster9-150x150.png
4 结果说明
Lifting the server siege… done.
Transactions: 3419263 hits //完成419263次处理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 5999.69 secs //总共用时
Data transferred: 84273.91 MB //共数据传输84273.91 MB
Response time: 0.37 secs //相应用时1.65秒:显示网络连接的速度
Transaction rate: 569.91 trans/sec //均每秒完成 569.91 次处理:表示服务器后
Throughput: 14.05 MB/sec //平均每秒传送数据
Concurrency: 213.42 //实际最高并发数
Successful transactions: 2564081 //成功处理次数
Failed transactions: 11 //失败处理次数
Longest transaction: 29.04 //每次传输所花最长时间
Shortest transaction: 0.00 //每次传输所花最短时间
二、Webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,安装使用简单方便。
1. 下载源码
请自行google例如:
wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
2. 解压、编译和安装
tar zxvf webbench-1.5.tar.gz cd webbench-1.5 make mkdir /usr/local/man #建立相应目录否则导致无法正常安装 make install
3. 运行webbench
webbench -c 100 -t 30 http://192.168.1.235/index.html
-c表示并发数,-t表示时间(秒)
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.1.235/index.html
100 clients, running 30 sec.
Speed=16084 pages/min, 152872 bytes/sec. #运行结果显示
Requests: 8042 susceed, 0 failed.
三、Web Application Stress Tool
这是由微软的网站测试人员开发的专门用来进行实际网站压力测试以一套工具。透过这套功能强大的压力测试工具,管理人员可以在网站实际上线之前先网站进行如同真实环境下的测试,以找出系统潜在的问题,对系统进行进一步的调整、设置工作。