‘壹’ 如何利用ApacheBench进行服务器压力测试
方法/步骤
1
比较常用的命令,如:
ab -n 请求数 -c 并发数 URL
2
跑了一个简单的Demo:
usertekiMacBook-Pro:~ zhaoxianlie$ ab -n 200 -c 10 http://127.0.0.1:8793/
This is ApacheBench, Version 2.3 <$Revision: 1554214 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.jinbanz.com/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests
Server Software:
Server Hostname: 127.0.0.1
Server Port: 8793
Document Path: /
Document Length: 28012 bytes
Concurrency Level: 10
Time taken for tests: 6.847 seconds
Complete requests: 200
Failed requests: 0
Total transferred: 5665503 bytes
HTML transferred: 5601103 bytes
Requests per second: 29.21 [#/sec] (mean)
Time per request: 342.343 [ms] (mean)
Time per request: 34.234 [ms] (mean, across all concurrent requests)
Transfer rate: 808.07 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 148 338 93.2 335 633
Waiting: 148 337 93.3 335 633
Total: 148 338 93.2 336 634
Percentage of the requests served within a certain time (ms)
50% 336
66% 371
75% 397
80% 413
90% 461
95% 500
98% 568
99% 610
100% 634 (longest request)
3
这其中Requests per second、Time per request算是裤举大家都比较看重的两个评估参数了吧。
不过对于这种压力测试来说,也不能一上来就 -n 1000 -c 10,还是得慢慢来,一开始可以来一个 -n 50 -c 10这样子,逐渐网上增加,取Request per second的最大值作为Http server的性能指标,应该会靠谱一些。
假设我的这个测试服务器RPS峰值是30,那一分钟能扛过来的请求差不多 1800 个,这是单核CPU的情况下。
假设是我厂服务器的配置,24核,开启Node的cluster模式,RPS应该是此橘倍数增加的,明胡扒碧天去公司找台服务压测一把。如果真是这样,那么每秒钟能扛过来的请求差不多 720 个,换算到一个小时,是259.2w个访问请求。
假设服务器配置是Nginx+Node,Nginx做负载均衡,proxy_pass对应的upstream配置到4台Node服务器,且每台Node服务器均衡负载,那么,一个小时能扛得动的流量基本是 1kw多一些,满负荷跑一天,2.4亿的流量了。
‘贰’ 怎么判断自己的服务器是被压测还是被DDOS攻击
你好,我是海腾数据赵润华。
服务器压力测试一般都是人为测试,不是自己就是管理员,你租的服务器,你自己可以问一下客服,搞清楚,就算是测试也是刚开始交付机器的时候给你测试。
被攻击的可能性比较大,你的服务器是放游戏的,一般私服游戏都会被攻击,你可以选择放到其他机房(假如有意向的话),国内国外都可以,如果需要的话我再给你介绍这方面的吧,带防御的服务器一般防御ddos和syn、arp、cc等等攻击都可以的。硬件防御。
如果你是单纯的想查出自己服务器是怎么被攻击的可以下载一些软件像安全狗啊什么的。
‘叁’ DDOS压力测试有什么工具
1、LoadRunner
LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案。企业通过LoadRunner能最大限度地缩短测试时间,优化性能并加速应用系统的发布周期。
LoadRunner提供了3大主要功能模块:VirtualUser Generator(用于录制性能测试脚本),LoadRunner Controller(用于创建、运行和监控场景),LoadRunner Analysis(散早用于分析性能测试结果)既可以作为独立的工具完成各自的功能,又可以作为LoadRunner的一部分彼此衔接,与其他模块共同完成软件性能的整体测试。
详见:《性能测试入门——LoadRunner使用初探》(http://www.admin5.com/article/20161114/695706.shtml)
LoadRunner官网:https://saas.hpe.com/zh-cn/software/loadrunner
2、Apache JMeter
JMeter作为一款广为流传的开源压测产品,最初被设计用于Web应用测试,如今JMeter可以用于测试静态和动态资源,例如静态文件、java 小服务程序、CGI 脚本、Java 对象、数据库、FTP服务器等等,还能对服务器、网络或对象模拟巨大的负载,通过不同压力类别测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能测试和回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建轮让断言。
JMeter的特点包括对HTTP、FTP服务器、数据库进行压力测试和性能测试;完全的可移植性;完全 Swing和轻量组件支持包;完全多线程;缓存和离线分析/回放测试结果;可链接的取样器;具有提供动态输入到测试的功能;支持脚本编程的取样器等。在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录浏览器的HTTP请求,也可以记录Apache等WebServer的log文件来重现HTTP流量,并在测试运行时以此为依据设置重复次数和并发度(线程数)来进行压测。
参考文章:《云智慧压测实战分享之JMeter工具使用初探》(https://segmentfault.com/a/1190000007922515)
官网链接:http://jmeter.apache.org/
3、NeoLoad
NeoLoad是Neotys出品的一种负载和性能测试工具,可真实地模拟用户活动并监视基础架构运行状态,从而消除所有Web和移动应用程序中的瓶颈。NeoLoad通过使用无脚本GUI和一系列自动化功能,可让测试设计速度提高5-10倍,并将维冲桐雀护的脚本维持在原始设计时间的10%,同时帮助用户使用持续集成系统自动进行测试。
NeoLoad支持WebSocket、HTTP1/ 2、GWT、HTML5、AngularJS、Oracle Forms等技术协议,能够监控包括操作系统,应用服务器,Web服务器,数据库和网络设备在内的各种IT基础设施,同时可以通过Neotys云平台发起外部压力。
官网链接:http://www.neotys.com/proct/overview-neoload.html
4、WebLOAD
WebLOAD是来自Radview公司的负载测试工具,它可被用以测试系统性能和弹性,也可被用于正确性验证(验证返回结果的正确性)。其测试脚本是用Javascript(和集成的COM/Java对象)编写的,并支持多种协议,如Web(包括AJAX在内的REST/HTTP)、SOAP/XML及其他可从脚本调用的协议如FTP、SMTP等,因而可从所有层面对应用程序进行测试。
WebLOAD存在免费和专业两个版本,免费版本支持50个虚拟用户,专业版还提供更多的报告和协议供用户选择。WebLOAD通常用作QA团队的独立运行工具,在开发周期的验证阶段,被测系统(System Under Test,SUT)投入实用之前,在模拟环境中对被测系统进行测试。
官网链接:http://www.radview.com/
5、Loadster
Loadster是一款商用负载测试软件,用于测试高负载下网站、Web应用、Web服务的性能表现,支持Linux,Mac和Windows等运行环境。
Loadster能够对Web应用/服务的Cookies、线程、头文件、动态表格等元素发起测试,获得Web在压力下的性能、弹性、稳定性和可扩展性等方面的表现。
官网链接:http://www.loadsterperformance.com/
6、Load impact
Load impact是一款服务于DevOps的性能测试工具,支持各种平台的网站、Web应用、移动应用和API测试。Loadimpact可以帮助用户了解应用的最高在线用户访问量,通过模拟测试不同在线人数下网站的响应时间,估算出服务器的最大负载。
Load impact的使用非常简单,只需要输入网址进行测试,便可统计出加载网站的一些详细数据。包括整体加载和站内图片,javascript, CSS等代码载入。可以在右侧列表选择不同文件来同时对比最多三个对象的加载数据,并生成图表显示,方便网站设计者来分析。测试完成之后,网站还可以存储测试过的统计数据。
官网链接:http://loadimpact.com/
7、CloudTest
CloudTest 是一个集性能和功能测试于一体的综合压力测试云平台,专为现代网络和移动应用测试而设计开发,CloudTest可以图形化实现判断、循环,整体减轻了测试开发的工作量,缩短了开发时间。CloudTest基于内存的分析引擎,可以实时收集和展示数据,所有数据在3秒内汇聚显示。
CloudTest采用虚拟化技术,完美的配合公有/私有云计算技术,无需过多的硬件,带宽资源的投入,人力维护成本几乎为零,测试按需获得,远程接入,适合多团队协作。各种规模的模拟成本均远远优于传统工具,同时大大缩短了测试周期。
官网链接:https://soasta.com/cloudtest
8、Loadstorm
Loadstorm是一款针对Web应用的云端负载测试工具,通过模拟海量点击来测试Web应用在大负载下的性能表现。由于采用了云资源,所以Loadstorm的测试成本非常低,用户可以在云端选择创建自己的测试计划,测试标准和测试场景。
Loadstorm最多可以生成多达50000个并发用户,通过数以千计的云服务器发起访问。使用Loadstorm不需要任何脚本知识,同时提供多样化的测试图表和报告模版,用于准确测量Web应用的各项性能指标,如错误率,平均响应时间和用户数量等。Loadstorm可以申请免费试用,但更多压力和功能需要开通高级帐户。
官网链接:http://loadstorm.com/
9、阿里云PTS
阿里云性能测试(Performance Testing)是一个SaaS性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。PTS平台特色包括提供压测机,无需安装软件;脚本场景监控简单化,省时、省力;分布式并发压测,施压能力无上限;快速大规模集群扩容、支持几十万用户及百万级TPS性能压测;80%以上用户基本不需要花费额外的成本。
产品功能特色方面,压测宝通过独有的开放架构,支持各种主流网络协议;同时支持手机APP的脚本录制方式,可以大大降低压测脚本制作的时间和难度。依托压测宝以及完善的产品线,云智慧为用户提供了一站式压测服务,面向云计算时代的复杂应用提供专业性能压测服务,帮助企业客观评估应用性能容量,发现全链路性能瓶颈,对应用架构的调优及架构容量规划提供专业咨询服务,满足企业灵活多变的业务需求。目前压测宝已提供高达10万UV并发级别的压测服务。
‘肆’ 今天听说网络游戏还要做压测压测是什么东东啊
额...其实你可以在网络文库搜到这些东西的...
说的简单点;压测即压力测试,一款网络游戏在上市前,袜答游戏研发团队或运营商是会对以其进行游戏压力测试的,目的是为了告扮慧了解游戏服务器的承受能力。以更好的有目的的进行运营或研发。比方说,我一个服务器只能同时容纳300人在线,但是我却动用了能让1000人同时进游戏的资源,这样是不是很浪费?更坏的结果是,服务器爆机,结果会流失更多的玩家....比如以前的跑小人事件......
如果你是游戏运营商货开发团队,我建议你在游戏上市缺洞前做下压力测试,目前国内做的比较正规的是K9168,不要找一些小团队或公会很容易出现黑单的情况....
‘伍’ 网站服务器如何做访问压力测试
网站服务器的压力测试我觉得主要有一些几点。
1.协议这边基本上以http或者https为主了,如果使用其他协议需要分析其打解包的方法。
2.要产生一定的压力,压力源这边一定要有保证。一般都是用机器人来模拟压力,关于机器人的逻辑可以根据具体业务来开发。
3.需要观察在一定压力下,服务器的各项性能指标(cpu,内存,IO,网络流量)进行观察,比如内存是否有泄漏,cpu利用率过高的情况。
4.压力测试应该是一个持续性的过程,在这个过程中需要统计服务器的性能数据,包括tps,以及机器的负载情况等。据此可以分析服务器的瓶颈在何处,后续可以针对优化。
5.目前大部分的服务器都部署在Linux系统上,测试同学还需要掌握相关的Linux命令以便可以更好的测试。
如果你觉得前面的太麻烦,可以来WeTest服务器压力测试高并发,实时性能报表,专家级性能优化建议,目前我们正在做网站压测这一块,你要做的仅仅是填下被测的URL即可,压力源、数据统计这些琐碎的工作交给我们就行了。
‘陆’ Jmeter_远程启动步骤
1、把jmeter放到需要压测的服务器目录下,然后解压
2、修改链雹虚服务器jmeter下肆弯bin目录中的jmeter.properties和jmeter-server相关配置
jmeter.properties文件修改启动端口,默认端口1099,也可设置为其他端口
修改前:
jmeter-server文件修改:修改为需要压测服务的ip,也就是jmeter所在服务器的ip
3、修改本地jmeter jmeter-properties的配置:远程主机地址修改为压测服务器ip地址,如果服务器端口设置不是1099的默认端口,则还需要加上端口,格式:xxx.xxx.xxx.xxx:port,多个服务同时加压,需要配置多个ip地址,用逗号隔开
4、本地jmeter启动
jmeter5.0及以上启动时会报FileNotFoundException
解决办法:本地和部署在服务器上的jmeter.properties文件配置修棚燃改为:server.rmi.ssl.disable=true
修改后重启本地和服务器的jmeter
‘柒’ CoreDNS篇7-性能压测
本文主要用于介绍如何编译安装queryperf来对DNS服务器进行压测,以及CoreDNS常见的几种配置下的压测性能表现。
queryperf 是bind9出品的一款测试dns服务器性能的工具,目前在 9.12.4 版本的bind源码中还存在,再往后的新版本就没看到有 queryperf 了。
在压测之前需要我们自己准备压测的测试数据,格式为 域名 查询类型 ,如:
常用的操作命令有:
这里需要额外提一下,CoreDNS比较吃网卡和CPU,对于硬盘IO的要求并不算特别高(主要取决于写日志的量),对内存占用较低
CoreDNS配置的复杂程度会直春衡棚接影响具体实例的性能表现,简单来说就是启用的插件越多,性能表现越差;比较影响性能表现的插件主要是日志相关的插件,如log插件开启全量日志记录,我们测试启用的插拦知件主要有扒则: log、errors、bind、reload、ready、prometheus、loadbalance、cache、acl、secondary、transfer、hosts、forward、import、file、kubernetes 。
‘捌’ 天龙八部为什么 网通内测服务器 / 龙门客栈 这个服务器的元宝票在5173上,100元可以买接近10000元宝票
因为是内测服务器,其实就是官槐禅方自己开的的私服啦..
不过只有少部分人有内测账号..
内测服务器,每天可以领元宝铅镇尘的,不用自己买><
龙门客栈是内测服,分网通电信两个服,但旅雀都叫这一个名儿,
除了有点工资和BUG奖励之外和正常服没什么区别。
压测服叫世外龙园,上线直接100+,元宝GM发~~
‘玖’ 封测 内测 压测 公测时什么概念有什么区别
封测的时候官方发少数的帐号给玩家试玩,用来查游戏中的BUG。封测过后会删除资料。
内测在封测之后,一般官方发一些激活码,控制玩家人数胡晌(有的游戏内测时会公开申请帐号)。内测过后有的会删资料,有的不删。
公测和正是运营差不多了。就是公开测试的意思,根据情况对游戏微调。
封测,内测,公测都是正是运营前官方调试游戏的阶段
封测,内测就是GM和一些玩家在薯做悔游戏开始时进行测试,找出游戏的bug
公测就是对玩家开放
压数正测是GM对服务器压力承受能力进行测试
二测大概第二次内测得意思
公开前的一项测试
为了让广大玩家更好的游戏
所以会挑一些人在内部进行测试
发现问题就反馈
一定时间后
封测结束
游戏开始正式对玩家开放
‘拾’ 压测一般都是通过域名公网进行压测服务器才准确
压测一般都是通过域名公网进行压测服务器才准确。压测一般都是通过域灶衡州名公网进行压测服务器才准确。是的。域名公网压测服务器通过域名公网进行压测的。这是正拦段确的做法通常是的。具体要求还要隐蔽看专业1的工程师来决定,不能善自决定