浅学Jmeter性能测试:使用代理服务器录制脚本
右上角设置->高级->系统->打开您计算机的代理设置->连接->局域网设置->勾选“为LAN使用代理服务器”->地址输入:127001->端口输入:8888->勾选‘’对于本地地址不使用代理服务器->确定。
PS:设置代理时要关掉抓包工具,因为它也是一个代理服务器。
注:jmeter自带代理服务器
1、设置代理
启动Jmeter->测试计划->右键添加“非测试元件”->选择HTTP代理服务器->设置端口:8888->Test Plan Creation-> 目标控制器选择“后面创建的自定义线程组”。
2、创建线程组存放脚本
测试计划->右键添加“Threads”->选择“线程组”-> 自定义线程组名称 ->保存。
3、提前设置过滤
通常会碰到录制完脚本后查看Jmeter有多余的请求,我们可提前设置过滤去掉不需要的请求。
在HTTP代理服务器页面,点击"Requests Filtering",找到“排除模式”后添加并输入多个正则表达式 ,每行一个(\php 或 \js 或 \png 或 \gif 或 \txt )。设置完成后,再重新启动代理录制脚本即可。
PS:话说之前学到的正则表达式终于用上了~
4、录制脚本
在jmeter代理服务器里“启动”服务器->弹出窗口点击ok->操作浏览器里目标网页->结束录制需要的模块后,点击jmeter“停止”,在Jmeter里查看脚本。
5、优化脚本
录制完成后,可能还存在一些漏网之鱼,可根据实际需要增删请求或配置。
PS:删除了多余的请求;配置了监听器-查看结果树后,有些请求失败了,添加了cookie管理器后全都请求成功。
注:B/S录制完脚本一定要添加cookie管理器
6、浏览器增加证书(如果有需求访问Https,无可省略)
右上角设置->高级->隐私设置与安全性->证书->受信任的证书颁发机构->导入->在jmeter文件夹 bin 目录下 选择证书(只要开启过代理服务器,都会生成证书)。
录制完成后,一定要记得关闭代理服务器,否则上不了网。问题来了,如何取消代理服务器的设置呢?
右上角设置->高级->系统->打开您计算机的代理设置->连接->局域网设置->取消勾选“为LAN使用代理服务器”->确定。
贴一篇我们内部的文章:
随着浏览器功能的不断完善,用户量不断的攀升,涉及到web服务的功能在不断的增加,对于我们测试来说,我们不仅要保证服务端功能的正确性,也要验证服务端程序的性能是否符合要求。那么性能测试都要做些什么呢?我们该怎样进行性能测试呢?
性能测试一般会围绕以下这些问题而进行:
1 什么情况下需要做性能测试?
2 什么时候做性能测试?
3 做性能测试需要准备哪些内容?
4 什么样的性能指标是符合要求的?
5 性能测试需要收集的数据有哪些?
6 怎样收集这些数据?
7 如何分析收集到的数据?
8 如何给出性能测试报告?
性能测试的执行过程及要做的事儿主要包含以下内容:
1 测试评估阶段
在这个阶段,我们要评估被测的产品是否要进行性能测试,并且对目前的服务器环境进行粗估,服务的性能是否满足条件。
首先要明确只要涉及到准备上线的服务端产品,就需要进行性能测试。其次如果产品需求中明确提到了性能指标,那也必须要做性能测试。
测试人员在进行性能测试前,需要根据当前的收集到的各种信息,预先做性能的评估,收集的内容主要包括带宽、请求包大小、并发用户数和当前web服务的带宽等
2 测试准备阶段
在这个阶段,我们要了解以下内容:
a 服务器的架构是什么样的,例如:web服务器是什么?是如何配置的?数据库用的是什么?服务用的是什么语言编写的?;
b 服务端功能的内部逻辑实现;
c 服务端与数据库是如何交互的,例如:数据库的表结构是什么样的?服务端功能是怎样操作数据库的?
d 服务端与客户端之间是如何进行交互的,即接口定义;
通过收集以上信息,测试人员整理出服务器端各模块之间的交互图,客户端与服务端之间的交互图以及服务端内部功能逻辑实现的流程图。
e 该服务上线后的用户量预估是多少,如果无法评估出用户量,那么可以通过设计测试执行的场景得出这个值;
f 上线要部署到多少台机器上,每台机器的负载均衡是如何设计的,每台机器的配置什么样的,网络环境是什么样的。
g 了解测试环境与线上环境的不同,例如网络环境、硬件配置等
h 制定测试执行的策略,是需要验证需求中的指标能否达到,还是评估系统的最大处理能力。
i 沟通上线的指标
通过收集以上信息,确定性能测试用例该如何设计,如何设计性能测试用例执行的场景,以及上线指标的评估。
3 测试设计阶段
根据测试人员通过之前整理的交互图和流程图,设计相应的性能测试用例。性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数量测试,网络性能测试,服务器性能测试,具体编写的测试用例要更具实际情况进行裁减。
用例编写的步骤大致分为:
a 通过脚本模拟单一用户是如何使用这个web服务的。这里模拟的可以是用户使用web服务的某一个动作或某几个动作,某一个功能或几个功能,也可以是使用web服务的整个过程。
b 根据客户端的实际情况和服务器端的策略,通过将脚本中可变的数据进行参数化,来模拟多个用户的操作。
c 验证参数化后脚本功能的正确性。
d 添加检查点
e 设计脚本执行的策略,如每个功能的执行次数,各个功能的执行顺序等
4 测试执行阶段
根据客户端的产品行为设计web服务的测试执行场景及测试执行的过程,即测试执行期间发生的事儿。通过监控程序收集web服务的性能数据和web服务所在系统的性能数据。
在测试执行过程中,还要不断的关注以下内容:
a web服务的连接速度如何?
b 每秒的点击数如何?
c Web服务能允许多少个用户同时在线?
d 如果超过了这个数量,会出现什么现象?
e Web服务能否处理大量用户对同一个页面的请求?
f 如果web服务崩溃,是否会自动恢复?
g 系统能否同一时间响应大量用户的请求?
h 打压机的系统负载状态。
5 测试分析阶段
将收集到的数据制成图表,查看各指标的性能变化曲线,结合之前确定的上线指标,对各项数据进行分析,已确定是否继续对web服务进行测试,结果是否达到了期望值。
6 测试验证阶段
在开发针对发现的性能问题进行修复后,要再执行性能测试的用例对问题进行验证。这里需要关注的是开发在解决问题的同时可能无意中修改了某些功能,所以在验证性能的同时,也要关注原有功能是否受到了影响。
想看原文或者有测试其他相关的问题可以关注下 搜狗测试 微信公众号,我们上面有不少关于性能测试分享~
不想被设备供应商牵着鼻子走的信息主管,在购买服务器前需从自身角度出发,通盘考虑业务、技术、投资成本、节能环保等各方面因素,确定最合适的需求。 服务器选购不当会带来很多
尴尬:
――服务器用了一段时间后需要增加网络接口,却发现插槽数量不够;
――CPU急需扩容时被告之早期的型号已经停产,买原来型号的CPU比新购一台设备还贵;
――服务器电源风扇这样的“配角”失灵,没有冗余备份造成宕机。
所有这些,都是信息主管最头疼、最不愿意遇到的事情。服务器是搭建企业应用系统硬件平台的核心设备,它必须在安全性、可靠性、灵活性、可扩展性等方面都具有优势,但更高的要求预示着更高的服务器采购成本。如何能够选择适合企业需要的服务器,更好地保护企业投资?信息主管需从业务、技术、投资成本、节能环保等角度综合考虑。
第一技
需求越细越好
服务器按运行的软件和承担的功能不同可以分为数据库服务器、应用服务器、网管服务器、邮件服务器、文件服务器、DNS服务器、计费认证服务器等。采购方可以根据应用软件用户数、数据量、处理能力的要求,将多个功能部署在同一台服务器上,或者将同一个功能按照特定规则(如: 不同模块、不同的用户群等等)分别部署在多台服务器上。对一个特定用户而言,不同应用系统的重要性不尽相同,系统越重要,对其硬件平台的稳定性、可用性要求也就越高。
如果单位已经部署了应用系统,在服务器扩容前应对现有系统进行评估,可以用资源监视程序或管理软件监控一段时间,记录系统资源消耗的峰谷情况,再结合拟新增加的应用和对系统今后一定时期负荷的增长预测,确定是通过扩容还是新购机器来实现。
一般按处理能力和市场定位将服务器由低到高分为入门级、工作组级、部门级、企业级等几个级别。采购方应根据应用系统处理能力需求来选择不同级别的服务器以及服务器具体性能指标。
第二技
服务器需“开膛”选
服务器的选购,并不仅仅是确定一个品牌、一个型号这么简单,要综合考虑服务器的组成部件性能。
CPU和内存
CPU作为计算机系统的核心,其主频、缓存、数量、技术先进性决定了服务器的运算能力,这些指标的提高,会增强系统性能,但并非线性提升,具体要参考一些测试指标以及实际应用的情况。Unix服务器中,CPU能否支持混插、热拔插将直接影响系统的可用性。扩大内存能够减少系统读取外部存储,提升系统处理性能。实践中需要根据不同的应用系统选择CPU与内存的配比,对耗用内存比较大的应用软件和数据库,需要配置更大的内存。
一些中高端Unix服务器中,厂商将CPU槽和内存槽位按一定比例组合集成在一个处理板上,安装CPU和内存的处理板作为一个整体,能够支持热拔插,从而提高了系统扩容升级和维护的方便性、灵活性。
对于中高端小型机,部分型号可以支持分区技术,能通过软硬件配合将系统划分为多个独立的服务器,用于部署不同的应用,IBM逻辑分区甚至能将一个物理CPU分成多个逻辑CPU。
硬盘
服务器内置硬盘用于安装和存放系统软件、应用程序以及部分数据,可以选择支持内置硬盘较多的服务器来存储数据或者作为文件服务器,不够存储的部分再通过购买磁盘阵列解决。硬盘的主要技术指标包括容量、转数及支持的技术。为提高磁盘系统稳定和可靠性,厂商一般会通过RAID技术来增加磁盘容错能力。服务器支持的硬盘主要有SCSI、SAS、SATA等, SATA支持的硬盘容量大,但硬盘转速低,性能不及SCSI和SAS盘; SAS和SCSI的稳定性和转速高,但容量相对小一些。
I/0扩展
服务器一般都会集成一定的网络接口、管理口、串口、鼠标键盘接口等,能满足一些基本的应用。但实际应用中可能需要更多外设连接,采购方就需要通过扩展槽增加适配卡来实现。如增加冗余网络接口卡(或增加光纤网卡)、磁盘阵列卡、远程管理卡、显卡、串口卡等等,这些适配卡的选择因网络连接方式、双机、存储系统连接方式、管理需要等需求不同而有所区别。
电源和风扇
对于一些扩容能力较高的服务器,增加一定数量的组件后系统功耗增加,采用多个电源的方式提高了系统的灵活性。另外,电源是有源电子部件,往往还内嵌有风扇这样的“易损件”,它的故障几率也是很高的,加之一些关键业务系统需要双路供电,所以常常采用冗余设计方式来提高系统的可靠性和可用性。
操作系统
各厂商PC服务器对于Windows系统都能够很好支持; 对于Linux系统,服务器厂商会对主流Linux品牌主要版本进行测试并公布支持性,未经测试的品牌及版本需要用户通过其他渠道确认(如Linux系统供应商的成功案例),一般主要涉及驱动程序和补丁包。
Unix服务器的情况比较复杂,主流Unix服务器都绑定自己的Unix系统,厂商之间的软硬件不能交叉安装,所以选择一个品牌的服务器,也就选定了操作系统,如基于SUN SPARC CPU的服务器安装Solaris,IBM Unix服务器安装AIX,HP Unix服务器安装UX。其中IBM P5/P6系列服务器现已支持SUSE Linux和Redhat Linux,基于安腾芯片的HP Integrity服务器能支持Windows和Redhat Linux。
第三技
测试服务器性能
在确定了服务器所要承担的应用之后,采购方应确定采用什么档次和配置的服务器。
如果已经部署了应用,仅仅为了扩容,或者所部署的应用在其他地方有成功案例,则可以结合应用的规模和技术要求进行对比分析,确定新购服务器的档次和配置。例如: 一个10万用户的计费系统使用1台A服务器,服务器CPU、内存等资源利用率正好不超过设计的限额,在相同业务逻辑情况下,现在需要实现一个能够支持20万用户的计费系统,则新购机器处理能力必须达到现在的两倍,那么,我们可以采用两台同样配置的服务器或者采用配置高于以前两倍的服务器。
对于一些定制或者新开发的应用系统,服务器选择就需要借助一些基准测试指标。就是服务器的工业标准基准测试,如TPC、SPEC、SAP SD、Linpack和HPCC等。这些基准测试,可以从处理器性能、服务器系统性能、商业应用性能直到高性能计算机性能等方面,给出一个量化的评价指标供用户选择。这些测试采用不同的模型和测试方法,关注的重点也有区别,所以,选做参照时一定要结合自己的应用需求。针对企业应用常用的参照指标有TPC和SPEC的测试结果。
TPC-C是事务处理性能测试委员会(TPC)设计的一种测试计算机处理能力的基准测试。它是基于联机事务处理模型,测试结果以系统每分钟能够处理的订单或交易量来表示,也就是tpmC。TPC-C能够对服务器的CPU、内存、I/O等各部分综合性能全面考察,所以常用于服务器整体性能的评价,特别是用做数据库服务器选择的参照。TPC-C的指标及所对应的软硬件平台都可以从www省略 网站查询。
SPECjbb(Java业务基准)是SPEC的一个用于评估服务器端Java的性能的基准,为Java用户提供用于评测服务器系统运行Java应用程序能力的最客观、最具代表性的基准。在为基于Java的应用系统选择服务器时,用SPECjbb值是一个很好的参照。SPECjbb测试不涉及I/O。SPECjbb指标及所反应的软硬件环境可以从www省略网站查询。
因为多方面的原因,各厂商不会对每个型号的设备都进行基准测试,所以经常会采用和已测机器相近的型号和配置的机器来估测其他机器的测试指标, IBM的P系列还提供了RPerf相对性能值来计算TPCC值。
在实际工作中,如果有条件,建议联系软硬件供应商能够搭建一个仿真的测试环境,或找到类似的应用案例,将会使选型更迅速和有效。
第四技
合理预留服务器
升级扩容能力
在做系统设计或者设备选型时,有时很难准确估算软件系统负荷,所以都会预留一定的余量或者扩容能力。供应商也会尽量推荐性能更高、扩容能力更强的机器。但从经济性、实用性角度来看,并非预留扩容能力越高越好。
就CPU而言,对于不支持CPU混插的PC服务器和低端小型机,鉴于CPU更新换代频繁,等到需要扩容的时候,也许已经停产无从购买; 如果能买到,以备件的方式,价格一般也会很贵,笔者就遇到过服务器扩容4CPU成本高于购买4CPU新机器价格的案例。所以建议选择一个合适的型号,CPU尽量一步到位。举例来说,如果觉得一颗CPU可能满足不了要求,那就一次性购买配有两颗CPU的服务器; 反之,如果觉得一颗CPU肯定能够满足目前的需要,那么建议直接购买支持一颗CPU的服务器。如果将来服务器不堪系统负荷,可以采用购买一台新的机器运用负载均衡技术扩容系统处理能力; 或者购买更高性能的服务器,而将该服务器用来安装其力所能担的应用系统。对于支持CPU混插的中高端小型机,那就根据对将来业务发展的估计和经费预算,预留大一些的扩容能力。
对于内存,由于槽位限制,为了预留扩容能力,建议尽量选用容量更大的内存条。一般单条容量大的内存,折合到单位容量的价格也高。
对于数据量不大的中小企业,往往采用服务器硬盘而不是盘阵存储数据,在这种情况下需要选择支持硬盘数量和容量比较大的服务器,并根据数据模型估算硬盘扩容余地,还需配置RAID卡。
第五技
应用软件与服务器兼容是关键
对于新增加的应用系统,需要评估应用软件与硬件平台及操作系统能否兼容; 在对现有系统升级扩容时,如果打算更换服务器平台,就必须考虑应用软件迁移移植成本。
在一种操作系统平台上开发运行的应用软件,更换一种新的操作系统平台,需要对现有代码进行重新编译、测试。如果应用软件与操作系统关联度比较大,可能面临修改软件甚至重新开发的情况,对于一些大型软件,将是一项复杂的任务。
第六技
别忽视与机器级别和CPU数量相关的软件成本
采购方在选择服务器时,常常希望购买高配置、高级别的设备,以便提高系统的性能、预留将来的扩容能力。然而,按照软件供应商的商务规则,包括数据库、双机软件、中间件软件、开发软件等等在内的许多软件的价格,要求与服务器CPU数量(有些软件按CPU核数量)或服务器档次直接挂钩,更多CPU、更高的机器档次,将会支出更高的软件费用,有时服务器增加一个CPU,所增加的软件成本将超过硬件增加的数倍。
所以,在满足适当扩容需求的前提下,可以通过选择更高性能的处理器来降低CPU数量和机器级别,合理降低软件系统的投资。
第七技
合理订购服务及续保
服务不仅影响设备的采购成本和未来的运行维护成本,还会影响到服务器上应用系统的业务可靠性。
服务器出厂一般都带有基本服务,如一年或者三年的返修和5天×8小时电话支持。用户可以根据自身需要,购买更高级别的服务,不同厂商对服务级别定义不大一样,有的厂商分为5天×8小时服务,7天×24小时服务,有的厂商定义为金、银、铜,不同级别的服务享有不同的响应速度、备件返修速度、返修时限以及现场支持、电话热线支持、软件升级级别。对于Unix服务器,硬件和软件服务购买的年限和级别不一定相同。在服务器选择时,需要根据自身需要购买相应服务,同时需要让供应商提供设备服务的详细说明。另外,一般购买的服务都是以设备出厂日期计算(考虑到设备运输和渠道因素,有些厂商有一定的后延,如3个月),这些因素都会影响到设备的拥有成本。
随着近年来IT系统的快速发展,各企业都采购了大量的服务器设备,而这些设备自带或购买的服务已经到期,如果需要继续接受原厂或者渠道的保修和技术支持,需要为这些设备续买服务,类似于给设备买保险。设备的续保费用与设备的型号、设备的详细配置、服务级别、原厂服务还是代理提供服务等因素相关,如果设备在购买合同签订时已经超出保修期,部分厂商还要收取设备检测费。原厂和代理通过设备序列号确认该设备的保修期。对于一些停产时间过长的设备,会出现不能继续购买服务的情况。
第八技
重视节能及环保
对于一台7天×24小时运行的服务器,如果能耗差100瓦,一年下来电耗差为876度。对于一个有10台机器的机房,每年将增加电耗8760度。每年几千块钱对于一个企业也许算不上什么,但对于能源紧缺的中国,数十万、数百万的设备,如果都能把电节省下来,长此下去,其经济价值和社会意义也不可小觑。
随着人们健康意识和环保意识的增强,环保标准RoHS规范遵从将作为人们选择电子产品的一个重要因素。RoHS是实现电子电气类产品中有毒有害物质的控制(禁止使用和减量化)的法律规范性文件。服务器在IT系统中被大量部署,如果不能很好地控制有毒有害物质,将对IT系统管理维护人员以及我们生活的环境造成损害。符合该规范的要求,将成为企业服务器选型的基本标准。(作者系亚信科技资深工程师)
链接
选择Unix小型机还是PC服务器
Unix小型机与PC服务器本质的差别是处理器,Unix小型机的CPU一般采用精简指令集计算机(RISC)技术,如SUN的SPARC系列CPU,IBM的Power系列CPU,HP的PA系列CPU等,而PC服务器的CPU是基于复杂指令计算机(CISC)技术,如Intel的处理器和AMD的处理器。
基于RISC架构的服务器采用精简指令系统,与Unix搭档,能有效提高系统处理能力和效率,加之各厂商一贯将其定位于中高端应用,在硬件设计上对可靠性、扩容能力、灵活性、管理方便性方面进行优化,所以它适用于对大型数据库系统、大型计算系统、大型应用软件和稳定性可靠性要求非常高的关键业务系统,如银行证券的交易结算系统,电信计费账务系统,大型企业的ERP系统等等。但其代价是相对昂贵的成本支出。
基于CISC架构的PC服务器,因为采用复杂指令系统,所以其处理效率和稳定性弱于Unix小型机。在安装微软的Windows操作系统时,虽然安全性和稳定性受到不少质疑,但它能够实现更友好的人机界面,可管理性强、操作和维护简易、软硬件兼容性好,而且具有价格优势。对于可以牺牲一些稳定性和效率的非关键业务和中低端应用,采用PC服务器具有更高的性价比。当然,随着技术的发展,PC服务器及Windows操作系统在性能、稳定性、安全性等方面也不断提高和完善,加之PC服务器还可以支持现在流行的Linux、SCO Unix、Solaris for x86等Unix操作系统,所以其应用范围也非常广泛,特别是在中小企业市场占有绝对的优势
MPM模块常见的相关参数包括: MaxSpareServers、MinSpareServers、ServerLimit、StartServers、ThreadsPerChild、MaxConnectionsPerChild 、MaxRequestWorkers、ListenBackLog、ListenCoresBucketsRatio、MaxMemFree和ReceiveBufferSize 。
该指令设置空闲子进程的最大数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。只有在非常繁忙机器上才需要调整这个参数,此参数设的通常不能设置过大,直到空闲线程的数量小于该数量为止。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成“MinSpareServers+1”。
对于worker和event来说,该荐默认值为 MaxSpareThreads 250。
对于mpm_netware默认为 MaxSpareThreads 100。
mpmt_os2的工作与mpm_netware。对于 mpmt_os2默认值10。
▲ 注意:
MaxSpareThreads值的范围受到限制。Apache httpd将根据以下规则自动更正给定值:
● mpm_netware该值需要大于 MinSpareThreads。
● 对于worker和event,该值必须大于或等于 MinSpareThreads和 ThreadsPerChild的和。
表示处理请求峰值的最小空闲线程数。不同的MPM处理此指令的方式有所不同。
worker模块和event模块该项默认值为 MinSpareThreads 75。如果服务器的空闲线程数小于所设置的值,则会创建子线程,直到空闲线程数大于我们所设置的最小空闲线程数。
如果服务器中没有足够的空闲线程,则将创建子进程,直到空闲线程的数量大于number为止。如果ListenCoresBucketsRatio 启用,可能会创建其他进程/线程。mpm_netware模块的默认值为 MinSpareThreads 10,对于 mpmt_os2模块默认值为5。
对于preforkMPM来说是通过MaxRequestWorkers来配置的,因为preforkMPM是一个子进程只生成一个线程。对于worker和eventMPM来说会通过ThreadLimit和MaxRequestWorkers两个参数来配置其最大值。MaxRequestWorkers指令可以在服务器重启过程中修改。
使用这个指令时必须特别注意的是,ServerLimit的值不能设置的比实际的使用的值高出太多,如果设置的值过大,则会分配很多我们并不需要使用的内存。如果将ServerLimit和MaxRequestWorkers都设置为高于系统可以处理的值,则Apache httpd可能无法启动,或者系统可能变得不稳定。
▲ 注意: 一般来说ServerLimit最大的值可以设置到20000,这是由服务器限制的,如果需要设置为更大的值,那么需要修改mpm源文件中的MAX_SERVER_LIMIT值。
StartServers指令用于设置启动时创建的子服务器进程的数量。通常会根据 MinSpareThreads、 MaxSpareThreads、 MinSpareServers、MaxSpareServers来动态调整StartServers的值。
缺省值因MPM而异。worker和event默认为StartServers 3,prefork默认为5,mpmt_os2 默认为2。
该指令表示设置每个进程创建的线程数,服务器启动时先是创建子进程数,再创建线程,如使用mpm_winnet模块,则只会生成一个子进程,那么该指令设置应该需要大于服务器处理的最大负载,如果使用worker模块,会生成多个子进程,则线程总数应大于服务器的负载。
mpm_winnt该指令的缺省值为25。其它的MPM缺省值ThreadsPerChild是 64。
ThreadsPerChild设置的值不能超过ThreadLimit的值。如果配置了更高的值,它将在启动时自动减小并记录警告日志信息。
MaxConnectionsPerChild这个指令主要是设置单个子进程最多可以处理的连接数。如果子进程伺服的连接数达到这个最大值,那么该子进程就会被杀掉。如果将MaxConnectionsPerChild的值设置为 0,那么表示该子进程可以处理无限多和连接数。将MaxConnectionsPerChild为非零的值,可以限制由于内存泄漏导致进程消耗太多内存量的问题。
MaxRequestWorkers指令主要是用于设置服务器同时处理的最大连接数,如果超过所设置的值,那么就会出现排队的现象,最大排队值是由ListenBacklog 指令来设置,在排队过程中,只有当一个请求结束后才会释放出子进程给其它的连接服务使用。
对于这非线程服务的MPM模块(如prefork),MaxRequestWorkers指令将转换为服务器最大的子进程数,即ServerLimit的值。MaxRequestWorkers指令默认值为 256。
对于会产生多线程类的MPM模块(如event 或worker),MaxRequestWorkers指令将用来限制服务器客户端的连接连接数。混合的MPM,默认的ServerLimit值为16,默认的ThreadsPerChild值为25,在这种情况下设置MaxRequestWorkers指令的值必须大于16乘以25的积。
在2313版之前MaxRequestWorkers指令以前的版称之为MaxClients。
ListenBackLog指令用于设置连接数队列长度,默认值为511,一般情况下我们不需要对这个指令进行设置或调整,但如果某些系统受到TCP SYN攻击时,可以适当的增加这个值。
这个选项有两个核心内容要搞清楚, 一是在线CPU核数;二是监听桶。
首先我们介绍什么是在线CPU核数。kernel使用4个bitmap,来保存分别处于4种状态的CPU core:possible、present、active和online。其中online就是表示在线的CPU核数。在/sys/devices/system/cpu目录下有一个文件online记录着当前所有在线的CPU核数。
linux操作系统在初始化的时候会调用开启smp多核。cpuhotplug可以根据cpu负载的情况,自动开核,做到性能与功耗的平衡。最后空闲的cpu会进入cpuidle状态。 cpuhotplug原理如图10-6所示 。
要研究监听桶那么就必须先理解TCP连接的过程,以及TCP连接与套接字的关系。
TCP连接过程如图10-7所示。
listen函数是用来监听已经通过bind()函数绑定了addr+port的套接字。监听之后,套接字就从CLOSE状态转变为LISTEN状态,这个套接字就可以对外提供TCP连接的窗口。connect()函数则用于向某个已监听的套接字发起连接请求,也就是发起TCP的三次握手过程。
那么TCP连接与套接字有什么关系呢每个TCP连接不管是客户端还是服务器端都会关联一个套接和该套接字所指向的文件描述符。当服务器接受到ACK消息后,则表示三次握手已经完成,客户端和服务器端的TCP连接已经建立好了。TCP连接建立好后,这个TCP连接会放在listen()打开的established queue队列中等待accept的消息,此时TCP连接关联的套接字是listen套接字和指向文件的描述符。
当established queue队列中的TCP被accept()接受后,就会关联accept()所指定的套接字,并分配一个新的文件描述符,也就是说经过accept()后,这个连接和listen套接字已经没有任何关系了。
一般情况下一个addr+port只能被一个套接字绑定,也就说是addr+port不能重用,不同套接字只能绑定在不同的addr+port上。
监听套接字的线程都是抢占式监听,在同一时刻监听套接字上只能有一个监听线程在监听或者说在使用,当这个监听线程接收到请求后,会让出监听的资格,此时其它的监听线程会去抢这个监听权,但同时只能有一个线程抢到监听权。 其工作过程如图10-8所示。
正常情况下addr+port只能被一个套接字绑定,如果将地址和端口重用,那么组合起来就是套接字重用,在现在的linux内核中支持地址重用,socket选项SO_REUSEADDR,支持端口重用的socket选项SO_REUSEPORT。设置了端口重用选项后,再去绑定套接字,相当于一个实例绑定了两个或多个addr+port。对于监听进程/线程来说,每次重用的套接字被称为监听桶(listener bucket),即每个监听套接字都是一个监听桶。以httpd的worker或event模型为例,假设目前有N个子进程,每个子进程又包含一个监听线程和N个工作线程。 其工作过程如图10-9所示 。
使用了地址重用和端口重用技术,就相当于同一个addr+port绑定多个套接字。 如图10-9 一个监听桶下面绑定了三个套接字,同时会有三个线程来监听三个套接字,但每个套接字还是与地址未重用和端口未重用一样的逻辑都是抢占式的方式来获取监听权。
地址重用和端口重用带好的好处就是可以减轻监听时互斥锁的争抢,避免“饥饿问题”,提高监控效率,并且可以更好的实现负载均衡,但这个也受限于CPU的核心,如果只是单核的CPU,那么地址重用和端口重用并没有什么优势,因为线程数不够。
现在可以明白ListenCoresBucketsRatio这个选项的含义了,即设置在线CPU核数与监听桶的比例。
在MPM线程中,每个线程都有自己的分配器,该参数表示不调用free()函数进行释放内存时,
允许每个分配器保持的最大空闲内存数。如果设置为零时表示该阀值不受限制。
用于设置TCP接收数据时缓存区的大小,如果设置为0则表示以操作系统的这个值为准。
以上是MPM模块中涉及到的常见的指令设置。
1、首先你要弄游戏的服务器端,然后配置网络连接,接下来要配置服务器端使用的数据库,最后把相应的服务器应用程序按步启动,待都能正常连接数据库并开始提供服务了,就可以用客户端连接了。
2、:本机架设,如果就是局域网朋友之间或者自己玩那么本机就可以。2:如果是朋友在不同的地方就要用到服务器,这个就需要成本了,一般都是去租用。游戏私服这个就不考虑了毕竟会引起侵权的问题。
3、进入“控制面板”。双击“添加或删除程序”。单击“添加/删除Windows组件”。在“组件”列表框中,双击“应用程序服务器”。双击“Internet信息服务(IIS)”。
4、配置IIS服务器,在桌面计算机选中单击鼠标右键,选中管理。进入到计算机服务管理器。
5、我要求的服务器必须要满足如下条件:低功耗,如intelu类结尾的cpu,最好核显硬转码。能转码播放蓝光iso和大部分4k视频。在线下载字幕。靓丽的可自动更新**资料库。
6、游戏服务器架设是在特定服务器上架设特定游戏咯一般有游戏版本,懂基本配置方法,就可以架设网络游戏了。现在这个年代游戏架设已经不是难事了。有点基本知识普通人也可以自己架设游戏了。
关于服务器,硬件配置,和温度环境要求是怎么样的
环境的话,一般就是需要注意物理环境。即温度、电源、地板、防火系统。
作为机房(电脑学习室/数据中心),它的物理环境是受到了严格控制的,主要分为几个方面:即温度、电源、地板、防火系统。
温度
说到温度,一般用的都是空调了。空调用来控制数据中心的温度和湿度,制冷与空调工程协会的“数据处理环境热准则”建议温度范围为20-25℃(68-75℉),湿度范围为40-55%,适宜数据中心环境的最大露点温度是17℃。在数据中心电源会加热空气,除非热量被排除出去,否则环境温度就会上升,导致电子设备失灵。通过控制空气温度,服务器组件能够保持制造商规定的温度/湿度范围内。空调系统通过冷却室内空气下降到露点帮助控制湿度,湿度太大,水可能在内部部件上开始凝结。如果在干燥的环境中,辅助加湿系统可以添加水蒸气,因为如果湿度太低,可能导致静电放电问题,可能会损坏元器件。
电源
机房的电源由一个或多个不间断电源(UPS)和/或柴油发电机组成备用电源。为了避免出现单点故障,所有电力系统,包括备用电源都是全冗余的。对于关键服务器来说,要同时连接到两个电源,以实现N+1冗余系统的可靠性。静态开关有时用来确保在发生电力故障时瞬间从一个电源切换到另一个电源。
地板
机房的地板相对瓷砖地板要提升60厘米(2英尺),这个高度随社会发展变得更高了,是80-100厘米,以提供更好的气流均匀分布。这样空调系统可以把冷空气也灌到地板下,同时也为地下电力线布线提供更充足的空间,现代数据中心的数据电缆通常是经由高架电缆盘铺设的,但仍然有些人建议出于安全考虑还是应将数据线铺设到地板下,并考虑增加冷却系统。小型数据中心里没有提升的地板可以不用防静电地板。计算机机柜往往被组织到一个热通道中,以便使空气流通效率最好。
防火系统
机房的防火系统包括无源和有源设计,以及防火行动执行计划。通常会安装烟雾探测器,在燃烧产生明火之前能够提前发现火警,在火势增大之前可以截断电源,使用灭火器手动灭火。在数据中心是不能使用自动喷水灭火装置的,因为电子元器件遇水后通常会发生故障,特别是电源未截断的情况下使用水灭火情况会变得更糟。即使安装了自动喷水灭火系统,清洁气体灭火系统也应早于自动喷水灭火系统启动。在数据中心还应该安装防火墙,这样可以将火源控制在局部范围内,即便是发生火灾也可以将损失减到最低。
zabbix服务器需要怎么样的硬件配置配置方式:
1 完成自定义监控脚本的编写(windows或linux脚本)
脚本要求:(1)既然是监控,那必然要有输出结果值(字符串,数字皆可)
(2)必须要求zabbix用户有执行权限,当然可以直接设置所有用户都有执行权限(chmod 777 脚本文件)
(3)若脚本需要传入参数,按照参数传入的顺序,在脚本中可用$1-$9来引用传入的参数
2 找到zabbix agent的配置文件zabbix_agentdconf,修改如下两个参数
UnsafeUserParameters=0 => UnsafeUserParameters=1并去掉前面的注释符
UserParameter= => UserParameter=aaabbb[], /usr/local/script/monitorsh $1 $2 …
说明:aaabbb[] ---zabbix服务器添加监控信息时需要用到的key值,
格式:aaabbb[](例:systemfilesize[])
/usr/local/script/monitorsh ----监控脚本绝对路径
为了便于灵活监控,有时脚本需要传入参数,此参数可从zabbix服务器端传入,所有参数按顺序分别从$1-$9表示
注:(1)若无需传入参数,则红色部分可省略
(2)该自定义脚本可由zabbix服务器控制收集数据的频率(如:每30s运行一次),无需再添加计划任务
(3)以上参数请根据实际情况填写,并注意去除参数前注释符(#)
(4)注意在key值和后面的脚本之间有个逗号隔开
至此,自定义监控脚本zabbix agent端配置结束
3 测试
测试命令: /usr/local/bin/zabbix_agentd -t key[参数]
示例:/usr/local/bin/zabbix_agentd -t systemfilesize[/etc/atxt,abc,…]
4 监控脚本举例:
脚本名称:/usr/local/script/monitorsh
脚本内容:echo `date +"%F %T"`
脚本要求:必须在控制台输出值,该值将作为返回值返回给zabbix服务器端
魔方云的服务器硬件配置怎么样?搭建纯SSD架构的高性能企业级云服务器,采用高端Intel Haswell CPU、高频DDR4内存、高速Sas3 SSD闪存作为底层硬件配置。
怎样估算oracle服务器的硬件配置Dell PowerEdge T710
标准配置
TPCC:239,392
代理服务器的硬件配置公司用最好还是用专业级的服务器,打电话给相关电脑服务器供应商很容易了解行情。否则,找台内存大点儿的机器,速度快点儿的机器也凑合着用。
联想rd350服务器怎么查硬件配置
因为阵列卡等设备的原因,在服务器上检测硬盘不太方便,如果是sata盘,拔下直接上台式机检测。
我用的是小鸟云的服务器,挺不错。
打水服务器的配置要求是怎样的打水服务器通常是指虚拟服务器业务,多在境外。 打水的服务器,一般都是需要高配置,一般为Q84OO以上,i3 i5 17是目前市面上的打水服务器的最佳选择。
小提示:目前,打水虽然有风险,但是还是有利可图的,但是要方法得当,如果你打两个月都赚不到点钱,建议不要再打,因为可能你不合适做打水,正如不是个个人都能炒股赚到钱一样。
邮件服务器250用户 需要怎么样的硬件配置 需要多大的硬盘容量?dell R310 X3430/4G/500G2 sata/raid1 这个配置用于邮件服务器足够了,软件推荐用:《科信KXmail邮件系统》,可以查下!
选购服务器硬件配置要注意什么?服务器硬件配置要稳定高效,千万不要选购一些太便宜的服务器配件,如果服务器运行时因为配置问题出现什么问题,损失就很大了,如机箱一定要选择好点的,国产有家叫IOK的机箱还可以,你去了解下。什么EMC啊 防震效果 听说都是不错 而且最大的好处是可以定制 客户喜欢咋整就咋整
怎么配置服务器硬件300个web站点,说多也不多,说少也不少了。在这个阶段,可以先用这款双路四核的服务器,标配一颗至强E5620四核处理器,英特尔5500芯片组服务器主板,2G DDR3 REG ECC内存,SSD 80G固态硬盘,双千兆网卡,性能可以说是相当不错,带100万广告联盟没问题。如果以后访问量增加,可以扩展到两颗处理器,达成8颗处理核心,16条处理线程(在任务管理器的cpu格子窗口能看到16个- -~~~相当变态),内存可以增加到24GB!
0条评论