2023年7月11日发(作者:)
服务器处理能⼒计算⽅法你想建设⼀个能承受500万PV/每天的⽹站吗? 500万PV是什么概念?服务器每秒要处理多少个请求才能应对?如果计算呢?PV是什么:PV是page view的简写。PV是指页⾯的访问次数,每打开或刷新⼀次页⾯,就算做⼀个pv。计算模型:每台服务器每秒处理请求的数量=((80%*总PV量)/(24⼩时*60分*60秒*40%)) / 服务器数量 。其中关键的参数是80%、40%。表⽰⼀天中有80%的请求发⽣在⼀天的40%的时间内。24⼩时的40%是9.6⼩时,有80%的请求发⽣⼀天的9.6个⼩时当中(很适合互联⽹的应⽤,⽩天请求多,晚上请求少)。简单计算的结果:((80%*500万)/(24⼩时*60分*60秒*40%))/1 = 115.7个请求/秒((80%*100万)/(24⼩时*60分*60秒*40%))/1 = 23.1个请求/秒初步结论:现在我们在做压⼒测试时,就有了标准,如果你的服务器⼀秒能处理115.7个请求,就可以承受500万PV/每天。如果你的服务器⼀秒能处理23.1个请求,就可以承受100万PV/每天。留⾜余量:以上请求数量是均匀的分布在⽩天的9.6个⼩时中,但实际情况并不会这么均匀的分布,会有⾼峰有低⾕。为了应对⾼峰时段,应该留⼀些余地,最少也要x2倍,x3倍也不为过。115.7个请求/秒 *2倍=231.4个请求/秒115.7个请求/秒 *3倍=347.1个请求/秒23.1个请求/秒 *2倍=46.2个请求/秒23.1个请求/秒 *3倍=69.3个请求/秒最终结论:如果你的服务器⼀秒能处理231.4–347.1个请求/秒,就可以应对平均500万PV/每天。如果你的服务器⼀秒能处理46.2–69.3个请求,就可以应对平均100万PV/每天。说明:这⾥说明每秒N个请求,就是QPS。因为我关⼼的是应⽤程序处理业务的能⼒。实际经验:1、根据实际经验,采⽤两台常规配置的机架式服务器,配置是很常见的配置,例如⼀个4核CPU+4G内存+服务器SAS硬盘。2、个⼈武断的认为在服务器CPU领域Intel的CPU要优于AMD的CPU,有反对的就反对吧,我都说我武断了(请看CPU性能⽐较),不要太相信AMD的⼴告,⽐较CPU性能简单办法就是⽐价格,不要⽐频率与核⼼数,价格相差不多的性能也相差不多。3、硬盘的性能很重要,由其是数据库服务器。⼀般的服务器都配1.5万转的SAS硬盘,⾼级⼀点的可以配SSD固态硬盘,性能会更好。最最最最重要的指标是“随机读写性能”⽽不是“顺序读写性能”。(本例还是配置最常见的1.5万转的SAS硬盘吧)4、⼀台服务器跑Tomcat运⾏j2ee程序,⼀台服务器跑MySql数据库,程序写的中等⽔平(这个真的不好量化),是论坛类型的应⽤(总有回帖,不太容易做缓存,也⽆法静态化)。5、以上软硬件情况下,是可以承受100万PV/每天的。(已留有余量应对突然的访问⾼峰)注意机房的⽹络带宽:有⼈说以上条件我都满⾜了,但实际性能还是达不到⽬标。这时请注意你对外的⽹络的带宽,在国内服务器便宜但带宽很贵,很可能你在机房是与⼤家共享⼀条100M的光纤,实际每个⼈可分到2M左右带宽。再好⼀点5M,再好⼀点双线机房10M独享,这已经很贵了(北京价格)。⼀天总流量:每个页⾯20k字节*100万个页⾯/1024=19531M字节=19G字节,19531M/9.6⼩时=2034M/⼩时=578K字节/s 如果请求是均匀分布的,需要5M(640K字节)带宽(5Mb=640KB 注意⼤⼩写,b是位,B是字节,差了8倍),但所有请求不可能是均匀分布的,当有⾼峰时5M带宽⼀定不够,X2倍就是10M带宽。10M带宽基本可以满⾜ 要求。以上是假设每个页⾯20k字节,基本不包含图⽚,要是包含图⽚就更⼤了,10M带宽也不能满⾜要求了。你⾃已计算吧。(全⽂完)附:性能测试基本概念—————————————————————————————基本概念:Throughput(吞吐量):按照常规理解⽹络吞吐量表⽰在单位时间内通过⽹卡数据量之和,其中即包括本机⽹卡发送出去的数据量也包括本机 ⽹卡接收到的数据量。 ⼀个100Mb(位)的双⼯⽹卡,最⼤发送数据的速度是12.5M字节/s , 最⼤接收数据的速度是12.5M字节/s, 可以 同时 收发 数据。并发⽤户数:是同时执⾏操作的⽤户(线程数)。响应时间:从请求发出到收到响应花费的时间 。QPS – Queries Per Second 每秒处理的查询数(如果是数据库,就相当于读取)TPS – Transactions Per Second 每秒处理的事务数(如果是数据库,就相当于写⼊、修改)IOPS,每秒磁盘进⾏的I/O操作次数例如对某个数据库测试,分开两次测QPS与TPS。QPS(读取)值总是⾼于TPS(写、改),并且有倍率关系,因为:1、数据库对查询可能有缓存。2、机械硬盘或SSD硬盘的读就是⽐写快。—————————————————————————————JMeter测试参数说明:Label:每⼀个测试单元的名字。#Samples:表⽰⼀个测试单元⼀共发出了多少个请求。Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使⽤了 Transaction Controller 时,也可以以Transaction 为单位显⽰平均响应时间。,不重要。Median:中位数,也就是 50% ⽤户的响应时间,如果把响应时间从⼩到⼤顺序排序,那么50%的请求的响应时间在这个范围之内。重要。90% Line:90% ⽤户的响应时间,如果把响应时间从⼩到⼤顺序排序,那么90%的请求的响应时间在这个范围之内。重要 。Min:最⼩响应时间,不重要。Max:最⼤响应时间,出现⼏率只不过是千分之⼀甚⾄万分之⼀,不重要。Error%:本次测试中出现错误的请求的数量Throughput:吞吐量——默认情况下表⽰每秒完成的请求数(Request per Second),当使⽤了 Transaction Controller 时,也可以表⽰类似 LoadRunner 的 Transaction per Second 数KB/Sec:每秒从服务器端接收 到的数据量(只是接收),相当于LoadRunner中的Throughput/Sec—————————————————————————————loadrunner测试参数说明:响应时间: 取90%值,如果把响应时间从⼩到⼤顺序排序,那么90%的请求的响应时间在这个范围之内。重要。每秒点击数 :hits per Second,每秒钟向服务器提交请求的数量。TPS: Transaction per Second ,每秒事务数,⼀个事务是指⼀个客户机向服务器发送请求然后服务器做出反应的过程Throughput(吞吐量): Loadrunner记录的Throughput是接收到服务器返回的所有字节数之和,与本地发出的字节数⽆关。Throughput/Sec: 每秒的吞吐量。对于BS架构的⼀般分析 响应时间、点击率、吞吐量、TPS(每秒事务数)。对于CS架构的⼀般分析 TPS(每秒事务数)—————————————————————————————Apache ab测试参数说明:
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689022319a196501.html
评论列表(0条)