当前位置: 首页 > news >正文

兴宁网站设计培训网站建设方案说明书

兴宁网站设计,培训网站建设方案说明书,企业代码,一个主机可以建设多少个网站压力测试是用来检测系统承载能力的有效手段。在系统规模较小的时候#xff0c;在一台空闲的服务器上使用[ab]#xff0c;[wrk]#xff0c;[siege]等工具发起一定量的并发请求即可得到一个初步的测试结果。但在系统复杂度逐步提高#xff0c;特别是引入了负载均衡#xff0… 压力测试是用来检测系统承载能力的有效手段。在系统规模较小的时候在一台空闲的服务器上使用[ab][wrk][siege]等工具发起一定量的并发请求即可得到一个初步的测试结果。但在系统复杂度逐步提高特别是引入了负载均衡微服务等架构后单机的压力测试方案不再可用企业需要搭建分布式测试集群或者付费使用外部供应商提供的压力测试服务。 不管是采取自主搭建或是采用外购的手段都会面临系统使用率不高以及成本的问题。基于Kubernetes的动态资源调度功能以及Kubernetes集群的动态伸缩特性我们可以充分利用集群内的闲置计算资源在需要进行压力测试时启动测试节点在测试结束后释放资源给其他业务甚至通过集群扩容和缩容临时为压力测试提供更多的计算资源。 支持分布式部署的压力测试工具有多款今天我们将介绍在Kubernetes集群中使用Tsung进行压力测试的方法。 Tsung [Tsung]是一款使用[Erlang]开发的分布式压力测试系统它支持HTTPJabberMySQL等多种协议可以用于不同场景的压力测试。与传统的针对单一测试目标重复请求的压测系统不同Tsung更侧重于模拟真实使用场景。测试人员指定新用户到访频率并设定一系列的模拟操作请求。所有的Slave节点将在Master节点的统一调度下按照到访频率创建虚拟用户并发送操作请求。所有请求的耗时以及错误信息将传回Master节点用于统计和报表。 选择Tsung主要有三方面的考虑 性能优越。Erlang语言天生就是为高并发网络系统设计的。合理配置的Tsung集群可以实现100W以上的并发流量。描述式的配置方法。不论简单还是复杂Tsung均统一使用XML文件描述整个测试步骤以及各种参数。这样可以在集群架构保持不变时完成各种测试。模拟真实用户的测试理念。在真实场景中用户会访问系统的各项功能。只有支持模拟真实用户的压力测试系统才能比较准确的反应系统各个部分在压力下的状态找到瓶颈环节。由于Tsung采取的工作模式是在配置中注明Slave地址然后由Master连上Slave完成测试传统的部署方法是启动多台物理机或者虚拟机分别配置它们。在这种工作模式下会产生大量的运维工作同时这些计算资源在不进行测试时处于闲置状态降低了硬件使用率。 在Kubernetes中使用容器运行Tsung 利用Kubernetes强大的调度能力我们可以将Tsung运行在容器当中动态的启动和删除。当需要提高测试规模时我们仅需要使用[Archon]等已有的工具对集群进行扩容就可以很方便的一键扩容Slave的数量几乎没有带来任何的运维负担。 以下是具体的操作流程 创建Namespace $ kubectl create namespace tsung 使用StatefulSet部署Tsung Slave 这里不能使用Deployment只有使用StatefulSet才能在为每一个Pod分配独立的内部域名供Master连接。 将以下文件保存为tsung-slave-svc.yaml apiVersion: v1 kind: Service metadata:labels:run: tsung-slavename: tsung-slave spec:clusterIP: Noneselector:run: tsung-slaveports:- port: 22type: ClusterIP 将以下文件保存为tsung-slave.yaml apiVersion: apps/v1beta1 kind: StatefulSet metadata:name: tsung-slave spec:serviceName: tsung-slavereplicas: 1template:metadata:labels:run: tsung-slavespec:containers:- name: tsungimage: ddragosd/tsung-docker:1.6.0env:- name: SLAVEvalue: true 在Kubernetes中创建相应的资源 $ kubectl create -f tsung-slave-svc.yaml --namespace tsung $ kubectl create -f tsung-slave.yaml --namespace tsung 这里我们设置了StatefulSet的serviceName字段这样启动的Pod在集群内部就可以通过tsung-slave-0.tsung-slave.tsung.svc.cluster.local这个域名访问到。 使用StatefulSet部署Tsung Master 与Slave类似Master节点也要求可以在集群内部通过域名访问。所以我们依然需要使用StatefulSet来运行。 将以下文件保存为tsung-config.yaml apiVersion: v1 kind: ConfigMap metadata:name: tsung-config data:config.xml: |?xml version1.0 encodingutf-8?!DOCTYPE tsung SYSTEM /usr/share/tsung/tsung-1.0.dtd []tsung loglevelwarningclientsclient hosttsung-slave-0.tsung-slave.tsung.svc.cluster.local //clientsserversserver hosttarget port8000 typetcp//serversloadarrivalphase phase1 duration1 unitminuteusers arrivalrate100 unitsecond//arrivalphase/loadsessionssession namees_load weight1 typets_httpfor from1 to10 incr1 varcounterrequest http url/ methodGET version1.1/http /request/for/session/sessions/tsung 将以下文件保存为tsung-master-svc.yaml apiVersion: v1 kind: Service metadata:labels:run: tsung-mastername: tsung-master spec:clusterIP: Noneselector:run: tsung-masterports:- port: 8091sessionAffinity: Nonetype: ClusterIP 将以下文件保存为tsung-master.yaml apiVersion: apps/v1beta1 kind: StatefulSet metadata:name: tsung-master spec:serviceName: tsung-masterreplicas: 1template:metadata:labels:run: tsung-masterspec:containers:- name: tsungimage: ddragosd/tsung-docker:1.6.0env:- name: ERL_SSH_PORTvalue: 22args:- -k- -f- /tsung/config.xml- -F- startvolumeMounts:- mountPath: /tsungname: config-volumevolumes:- configMap:name: tsung-configname: config-volume 在Kubernetes中创建相应的资源 $ kubectl create -f tsung-config.yaml --namespace tsung $ kubectl create -f tsung-master-svc.yaml --namespace tsung $ kubectl create -f tsung-master.yaml --namespace tsung 当Tsung Master的容器被启动后它会自动开始运行压力测试。在上面的列子中Tsung将向http://target:8000发起为期1分钟的压力测试在测试期间每秒钟产生100个模拟用户每个用户访问10次目标地址。 我们将Tsung的配置文件用ConfigMap注入到了Master容器当中这样用户仅需要修改tsung-config.yaml的内容就可以方便的定义符合自己要求的测试。在实际使用过程中用户可以自主调整测试持续时间虚拟用户产生速度目标地址等参数。用户还可以通过修改tsung-slave.yaml中replicas的数值并将更多的Slave地址加入到tsung-config.yaml当中来获得更多的测试资源进一步增加负载量。 在Master的运行参数中我们使用的-k参数将使得Master在测试完成后仍处于运行状态这样用户可以通过8091端口访问到测试结果。 $ kubectl port-forward tsung-master-0 -n tsung 8091:8091 之后在本地通过浏览器访问http://localhost:8091即可打开Tsung内置的报表界面。如下图所示 另外-F参数让Master使用FQDN地址访问Slave节点这项参数非常关键缺少它将导致Master无法正常连接上Slave。 资源回收 测试结束后用户可以使用报表界面查看和保存结果。当所有结果被保存下来之后可以直接删除Namespace完成资源回收。 $ kubectl delete namespace tsung 这样所有的Tsung相关配置和容器均会被删除。当下次需要测试时可以从一个全新的状态开始新一次测试。 总结 本文主要介绍了在Kubernetes中部署Tsung这款分布式压力测试系统的方法。其中使用StatefulSet配合-F参数的方法使得Master和Slave可以顺利的使用域名找到对方成功的解决了在容器中运行Tsung会遇到的访问问题。 原本需要专业的运维工程师投入不少时间才能搭建起来的Tsung测试集群在Kubernetes中几乎可以毫不费力的启动起来完成测试。这种使用调度器充分利用集群空闲资源使用后及时释放供其他系统使用的方法也充分体现了Kubernetes的优越性。 在下一篇分享中我们将使用本文所描述的测试系统对主流的Python WSGI服务器进行压力测试用以对比各个服务器的性能指标。希望通过这种实战演示的方式帮助大家深入了解Tsung以及Kubernetes。敬请期待。
http://www.zqtcl.cn/news/762368/

相关文章:

  • 三亚市住房和城乡建设厅网站江西电信网站备案
  • 联谊会总结网站建设对外宣传如何在家做电商
  • 360建站系统徐州建设银行网上银行个人网站
  • 网站域名在哪里备案石家庄站规模
  • 重庆南川网站制作公司电话工会网站群建设
  • 深圳高端建设网站忘了网站链接怎么做
  • 郑州做网站报价wordpress中文4.8
  • 网站维护费用一年多少跨境电商平台网站建设广州
  • 辽宁网站制作公司网店装修流程
  • html5可以做交互网站吗打开网站说建设中是什么问题?
  • 彩票网站开发制作需要什么wordpress 在线预览
  • 外贸平台app衡水seo排名
  • 怎样做网站表白墙东莞商城网站推广建设
  • 郑州郑州网站建设河南做网站公司哪家好爱站长尾词挖掘工具
  • dede网站地图文章变量网站qq 微信分享怎么做
  • 越南做网站网站建设以及运营方面
  • 广西建网站哪家好网站关闭与域名备案
  • 网站开发版本号婚庆网站建设策划案费用预算
  • 厦门建设网站制作中山市哪家公司做网站
  • 网站路径wordpress制作电商网站
  • 江西网站开发哪家专业装饰设计公司网站
  • 企业网站策划实训Wordpress 主题简化
  • 做网站点击挣钱不兰州工程建设信息网站
  • 网站说服力 营销...免费看片网站
  • 深圳招聘网站大全制作网站软件下载
  • 网站建设说明哈尔滨网站建设渠道
  • 一 网站建设管理基本情况设计类的网站
  • wordpress产品编辑如何优化wordpress
  • 网站后台更新缓存失败网站平台规划方案
  • 网站开发需求分析主要内容saas建站系统是怎么实现的