热门标签
什么是高性能网站
瞬态响应的高性能体系结构:网站
什么是高性能网站
深国商网站构建了两个网站性能架构设计方案:方案a和方案B。在方案a中,当并发用户少于100个时,每个请求的响应时间为1秒。当并发请求达到200个时,请求的响应时间将急剧增加到10秒。无论是100个并发用户还是200个并发用户,方案B中每个请求的响应时间几乎都是1.5秒。哪种方案性能更好 如果老板说ldquo;我们需要改进网站;,他什么意思
同一类型的两个网站,X网站服务器请求的平均处理时间是500毫秒,Y网站服务器的平均处理时间是1000毫秒,为什么用户反映Y网站很快
网站性能是一个客观指标,可以体现在响应时间吞吐量等技术指标上。同时,它也是一种主观感受,是一种与特定参与者相关的微妙事物。用户的感受与工程师不同,不同的用户感受也不同。
4.1网站性能试验
性能测试不仅是性能优化的前提和基础,也是性能优化结果的检验和测量标准。从不同的角度来看,网站的性能有不同的标准和优化方法。
4.1.1网站不同角度的绩效
当软件工程师谈论网站性能时,通常与用户所说的不同。
1用户视角网站性能
从用户的角度来看,网站的性能是用户对网站响应速度或慢的直观感知。用户感知的时间包括用户计算机与网站服务器的通信时间、网站服务器的处理时间,以及用户计算机浏览器构造请求解析响应数据的时间,如图4.1所示。
不同计算机的性能差异,不同浏览器之间HTML解析的速度差异,不同网络运营商提供的互联网宽带服务的差异,这些差异**终会导致响应延迟,用户认为响应延迟可能比服务器处理请求所需的时间网站长得多。
它还可以从用户的角度大大提高网站的性能。
2从开发者角度网站性能开发者主要关注应用本身及其相关子系统的性能,包括响应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。主要的优化方法包括使用cache加速数据读取、使用集群提高吞吐量、使用异步消息加速请求响应和调峰、使用代码优化提高程序性能。
3运维人员绩效网站运维人员更关注基础设施性能和资源利用率,如网络运营商带宽能力、服务器硬件配置、数据中心网络架构等,服务器资源利用率和网络带宽等主要优化方法包括构建优化的骨干网、采用经济**的定制服务器、利用虚拟化技术优化资源利用率等。
4.1.2性能试验指标
从开发人员和测试人员的角度来看,网站性能测试的主要指标是响应时间、并发性吞吐量、性能计数器等。
1响应时间是指应用程序执行操作所需的时间,包括从发送请求到接收**终响应数据的时间。响应时间是系统**重要的性能指标,它直接反映了系统的ldquo性能;快或慢;。表4.1列出了一些常见系统操作所需的响应时间。
通过模拟应用程序,测试程序记录接收响应和发送请求之间的时间差来计算系统响应时间。然而,记录和获取系统时间的操作也需要一定的时间。如果测试目标操作本身花费很少的时间,比如几微秒,那么测试程序就不能测试系统的响应时间。
实际上,通常的方法是重复请求。例如,一个请求操作重复10000次,测试10000次所需的总响应时间,然后除以10000得到单个请求的响应时间。
2并发数是指系统可以同时处理的请求数,它也反映了系统的负载特性。对于网站,并发用户数网站是指同时提交请求的用户数0。与网站并发用户数相对应的是网站在线用户数(当前登录的用户总数网站)和网站系统用户数(可以访问系统的用户总数,即大多数用户的注册用户数网站)。数字比较关系为:网站系统用户数网站在线用户数网站并发用户数。在网站产品设计的早期阶段,产品经理和运营商需要规划不同开发阶段的网站系统用户数,并在此基础上根据产品特点和运营手段计算在线用户数和并发用户数。这些指标将成为系统不起作用的重要依据设计。
现实中,我们经常会看到一些网站,尤其是电子商务网站,营销人员热情地打广告打折,用户争相购买。结果,在活动开始时,由于并发用户数超过**大负载网站,响应缓慢,不耐烦的用户不断刷新浏览器,导致系统并发用户数增加,**后服务器系统崩溃,用户浏览器显示ldquo;服务太忙;就这样结束了。造成这种情况的原因可能是网站技术准备不足,或者运营商对并发用户数量的错误评估。
测试程序通过多线程模拟并发用户来测试系统的并发处理能力。为了真实地模拟用户行为,测试程序不启动多线程并连续发送请求,而是在两个请求之间添加一个随机的等待时间,称为思考时间。
3.吞吐量
它是指单位时间内系统处理的请求数,反映了系统的整体处理能力。对于网站,可以使用ldquo;请求/秒。“;或ldquo;页数/秒。“;为了达到**大的平衡,还可以使用ldquo;参观人数/天;或ldquo;处理的服务数量/hourrdquo;以此类推(TPS(每秒事务数)是吞吐量的常用量化指标,此外还有HPS(每秒事务数)HTTP请求数)、QPS(每秒查询数)等。
在系统并发从小到大的过程中(这个过程也伴随着服务器系统资源消耗的增加)
系统吞吐量开始逐渐增加,当达到极限时,随着并发度的增加而减少。当它到达系统崩溃点时,系统资源耗尽,吞吐量为零。
在这个过程中,响应时间先保持一个小的上升,达到吞吐量极限,然后迅速上升。到达系统崩溃点后,系统失去响应。系统吞吐量、系统并发性和响应时间之间的关系将在本章后面介绍。
系统吞吐量与系统并发数的关系,以及响应时间,可以直观地理解为高速公路的交通状况:吞吐量是每天通过收费站的车辆数(可以换算成收费站收取的高速费),并发数是高速公路上行驶的车辆数,响应时间是速度。车辆少的时候,速度很快,但是高速费也比较少;随着高速公路上车辆数量的增加,车速受影响不大,但收取的高速费却迅速增加;随着车辆的不断增加,车速越来越慢,高速公路越来越堵,通行费不增反减;如果交通量持续增加,超过一定限度,任何意外因素都会导致高速瘫痪,车走不动了,收费当然收不到了,高速公路成了停车场(资源枯竭)。
网站性能优化的目的不仅是为了提高用户体验的响应时间,而且也是为了尽可能地改进系统吞吐量,**大限度地利用服务器资源。
4性能计数器是描述服务器或操作系统性能的数据索引。包括System Load、对象和线程数、内存使用率、CPU使用率、磁盘和网络I/O等指标。这些指标也是系统监控的重要参数。为这些指标设置表扬门槛。当监控系统发现性能计数器超过阈值时,会向运维人员报告冗余情况,及时发现并处理系统异常。
System Load是系统负载,它是指当前由CPU执行并且等待由CPU执行的进程的数目的总和。它是系统繁忙和空闲程度的一个重要指标(在多核CPU的情况下,**理想的情况是所有CPU都在使用中,没有进程等待处理,因此Load的理想值是CPU的数目。当Load的值小于CPU的值时,表示CPU空闲,资源浪费;当Load的值大于CPU的数字时,表示进程正在队列中等待CPU调度,表示系统资源不足,影响应用程序的执行性能。在Linux系统中,使用top命令查看。该值是三个浮点数,表示**近1分钟、10分钟和15分钟内正在运行的队列中的平均进程数。