
首先要对比的是CPU、内存、硬盘、网络带宽这些功能。
此外,IP数量也是重要的一点,因为有些服务器是有免费送IP的。
最后比较看看服务器升级这一项目,比如,在唯云服务器创建和升级一台云服务器不到10秒,这个数值还是比较快的。1、一个50人的公司所需的服务器的配制标准,还要看你公司网络准备构建的形式,如果是采用“服务器/工作站”的形式架构,对服务器的要求并不太高,如果是采取“服务器/终端”的形式运行,则对服务器的要求更高些。
如果采取服务器/工作站的形式,每台客户端工作站都有较好配制的CPU,有硬盘,则服务器配制可以是:
CPU:1颗至强32G(2M二级缓存),内存:1G/ECC
硬盘:160G,建议选用DELL服务器,这种档次的服务器,从网上订构,dell送货上门,只要8000元人民币。
如果采取服务器/终端的形式运行,客户机上无盘,都使用服务器上的资源,建议使用双至强CPU,2G的内存,320G的硬盘。这要10000多元。
2、选择一台服务器要参考的性能指标有:运行的稳定性和可靠性、运行速度、内存大小、硬盘存储量。
3、中小企业选用服务器的特点和选构原则:适用性,必须能满足公司需要。可靠性,服务器运行必须稳定可靠,否则会影响公司运转。前瞻性,必须考虑到形势的发展,未来5年设置不会被淘汰,且能适应企业发展的需要,但不能为了追求时髦购买过高档次的服务器,这会导致浪费,再过几年,会有性价比更好的服务器出产。经济性,在考虑性价比时,选择最优最惠产品。问题一:性能测试应该做哪些准备 环境搭建:这个根据实际规划,我在企业内做过的性能测试搭建的环境都是和用户上线使用的实际环境一样的。
数据准备:个人感觉是整个工作里第二耗时的,需要真实模拟用户数据,这个不是单单的创建几个帐号就完事的,每个用户基本都会有不太一样的配置,实际 *** 作的时候部署数据的脚本都写到手软。
脚本编译:选择性能工具编译性能脚本,你需要跑什么业务流程就编译什么样的脚本。
脚本执行:用规划好的用户数执行脚本,这个一般持续很长时间,时间太短不足以暴露服务器等的性能瓶颈,性能测试中最耗时的就是这个步骤。
收集日志:在执行脚本完成后收集到的能客观反应系统性能的日志、报表文件,比如LR的报告、数据库的AWR日志等等。
分析结果:分析收集到的日志、报表,找出性能瓶颈或是得出性能指标结果。这个一般需要对数据库或者底层非常了解的专业人士来分析,一般测试人员只需要提供收集到的报告就差不多了。
生成报告:将上面所有的性能测试活动整理总结,输出测试报告。
问题二:如何做好性能测试? 你好,首先很欣赏你的这种态度。我在TestBird 招聘新人的时候,也有很多小朋友觉得自己有多了解工具运用,有多熟练步骤过程,自我感觉很不错。
其实,我却想说,性能测试的重点不在性能测试工具的学习上。
当然,你也通过分析系统的压力点、LR录制脚本,设置用户,做压力,分析结果,整理测试报告。完成了性能测试的整个过程。那么我说这个性能测试报告是有效的,但它不一定是有用的。
为什么呢?因为在性能测试报告中,在你所在的环境中,你是测出了这样的效果。并未掺假,全部真实的记录。
为什么说它不一定是有用的,你了解系统架构么?知道数据库、中间件、前端程序的运行方式和处理机制么?了解网络协议么?了解 *** 作系统么?熟悉开发系统的语言么,如java JVM的内在机理知道么?这些都是系统运行的一部分,都在影响着系统的性能。如果不了解这些,你如何做出有价值的有参考意义的性能测试。
所以,学会这些性能测试工具很好,但是这仅仅是第一步。性能结果只是一些数据而已,知道你在做什么,为什么要做这些,做完后能给出有价值的东西,才是后面要慢慢修炼的。
问题三:移动客户端的性能测试如何做? 。就当练习了。。大家看了不要喷我。。现在很多测试人员做移动端测试,可能主要还是关注功能和自动化测试。性能测试可能大多是按照每个人的体验来做报告,是不是比较快,或者比较慢。当然也不乏有很多的测试人员会回复我说,性能测试都是服务器的,移动端根本就不需要性能测试。我实在觉得可笑。 不过我毕竟一直在创业公司,而且就我一个人,所以了解可能有限,我这里就说下我之前碰见的,所知道的,目的只是抛砖引玉。 另外,我这里也不去说什么MAT,instruments了,这种固有查找内存的工具大家自己google吧。 客户端的性能从系统层面,电量消耗,网络流量,内存泄漏等都是被关注,或者说用户最最关注的点。 实例一,3rd 应用的性能测试。应用本身的响应时间可以通过call 应用intent来查看,设备纯环境,设备低内存等各种情况下进行同样此数的call,进行对比。或者与同行业同性质的应用进行对比测试。我相信很快就能够有结论了。除了应用本身,还需要对于应用本身某些特别的功能进行响应测试。比如测试一个list,测试的方法为onkeydown之后查看这个listindex(0)是否高亮,是否正常的界面跳转了,那么分别进行计时(精确ms)。同样的,我们在空list以及有几百条list的情况进行这样的case test,那么就会有一个性能的结果出来。 实例二,假设你测试微薄客户端,那么你肯定是需要进行一个list上下滑动的性能测试。我们需要使用脚本语言shell或者python去call server api来仿造数据反馈到移动设备上,否则你不可能自己手动去发几百条weibo然后再测试。测试的时候需要关注两个问题,一个是list在各种情况下是否滑动流畅,一个是当list中有很多的的时候load的速度也是一个很大的测试点。这个load可以直接检查imageview什么时候load出来pic,什么时候显示在界面上,计算时间。这里其实很多应用是webview,或者数据是存在服务器端的,这个时候无论是平时的测试还是压力,还是性能,数据的修改,其实还是多使用脚本ping api比较好,能够很好的去辅助达到性能测试的效果。 实例三,比如要测试一个优酷的视频软件,那么视频的播放的时候,首先保证网络的情况下,各种分辨率各种码率的视频接入时间是需要关注。然后在播放,也就是和网络不停的通信的同时,那么需要通过tcp dump和wireshark工具来检查网络访问是否正确,视频的卡顿,视频的花屏等除了硬件兼容之外,可以通过抓包来判断其性能。如果丢包率高那么自然视频卡,体验不好,性能也就不会好。 其实以上只是一些很基础,现在很多公司也已经在这个基础上改良测试了。不过也是一些思路,让更多的企业和测试关注移动客户端的性能。不要一提到性能脑中只有LR等这些Server测试。
问题四:为什么要进行性能测试 原因有三:
川 开发者的水平各有不同,有的写出来的东西性能高,有的低,所以需要统一测试一下。
2 编程工具本身也有性能问题,用这样的工具开发出来的软件也要确认一下是否达到了需求所要求的性能指标,比如响应时间应该控制在多少秒以内。
3 性能测试,强度测试都是为了测试系统的稳定性,稳定性好,软件的质量就好,买的钱就多。
问题五:如何进行Web服务的性能测试 贴一篇我们内部的文章:
随着浏览器功能的不断完善,用户量不断的攀升,涉及到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 如果超过了这>>
问题六:网站性能测试主要有哪几种方法 我知道的性能测试主要有:压力测试,负载测试,容量测试,发性能测试,兼容性测试(不同的 *** 作系统和不同的浏览器)。测的时候应用在客户端的性能、应用在网络上的性能和应用在服务器端的性能都要进行测试的。
希望能帮到你。
问题七:怎么才能做性能测试工程师? 性能测试实际上确实需要些功底儿,但是也并不是非得一两年之后才去做。
我给你列几条性能测试工作中的建议,你可以自己温习一下,然后去面试,具体的经验需要实际的工作才能得到,然而你扎实的基础知识才识支撑你走下去的动力。
1,最直接也是最表面的建议,适用于面试:Loadrunner, >负载(load)是linux机器的一个重要指标,直观了反应了机器当前的状态。
来看下负载的定义是怎样的:
In UNIX computing, the system load is a measure of the amount of computational work that a computer system performs The load average represents the average system load over a period of time It conventionally appears in the form of three numbers which represent the system load during the last one-, five-, and fifteen-minute periods(wikipedia)
Unix refers to this as the run-queue length: the sum of the number of processes that are currently running plus the number that are waiting (queued) to run
Free memory is the amount of memory which is currently not used for anything This number should be small, because memory which is not used is simply wasted
Available memory is the amount of memory which is available for allocation to a new process or to existing processes。
df
查看磁盘使用情况,通常看磁盘大小和inode使用率:
磁盘性能分析
r/s 和 w/s:每秒磁盘读写的次数。这两个值相加就是 tps。
rkB/s 和 wkB/s:每秒磁盘读写的数据量。
avgrq-sz:平均每次读写磁盘扇区的大小。
avgqu-sze:平均 IO 队列长度。队列长度越短越好。
await:平均每次磁盘读写的等待时间(ms)。
svctm:平均每次磁盘读写的服务时间(ms)。
%util:一秒钟有百分之多少的时间用于磁盘读写 *** 作。
1)%util:衡量 IO 的繁忙程度
这个值越大,说明产生的 IO 请求较多,IO 压力较大,
我们可以结合 %idle 参数来看,如果 %idle < 70% 就说明 IO 比较繁忙了。
2)await:衡量 IO 的响应速度
通俗理解,await 就像我们去医院看病排队等待的时间,
这个值和医生的服务速度(svctm)和你前面排队的人数(avgqu-size)有关。
如果 svctm 和 await 接近,说明磁盘 IO 响应时间较快,排队较少,
如果 await 远大于 svctm,说明此时队列太长,响应较慢,
这时可以考虑换性能更好的磁盘。
带宽:表示链路的最大传输速率,单位通常为 b/s (比特 / 秒)
延时:表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟
在不同场景中,这一指标可能会有不同含义
比如,它可以表示,建立连接需要的时间(比如 TCP握手延时)
或一个数据包往返所需的时间(比如 RTT)
PPS:是 Packet Per Second(包 / 秒)的缩写,表示以网络包为单位的传输速率�丢包率:丢包百分比
重传率:重新传输的网络包比例
连接数状态:TCP 各状态连接数量
TIME_WAIT状态存在有两个原因。
第一个是防止来自一个连接的延迟段被误解为后续连接的一部分。
连接处于2MSL等待状态时到达的所有流量都将被丢弃。
该TIME_WAIT状态的第二个原因是
可靠地实现TCP的全双工连接终止。
如果最后的ACK被丢弃,那么端点2将重新发送最后的FIN
单机最大连接数理论限制
系统用一个4四元组来唯一标识一个TCP连接: �{local ip, local port, remote ip, remote port}。 �
因此本地端口个数最大只有65536,端口0有特殊含义,不能使用,
这样可用端口最多只有65535,
所以在全部作为client端的情况下,
最大tcp连接数为65535,这些连接可以连到不同的server ip
1、系统最大打开文件数
sysfsfilesmax //系统最大文件句柄数
/proc/sys/fs/file-max
2、单进程最大文件描述符
echo 2000000 > /proc/sys/fs/nr_open
sysctl -w fsnr_open=100000000
3、某个用户下的某个进程的文件打开数
ulimit –n [num]
ulimit -n unlimited
/etc/security/limitsconf
worker soft nofile 102400
worker hard nofile 409600
linux内核通过进程标识值(process identification value)-PID来标示进程,
PID是一个数,类型位pid_t, 实际上就是int类型
查看
可以使用cat /proc/sys/kernel/pid_max来查看系统中可创建的进程数实际值
修改
1、ulimit -u 65535
2、我们在Linux还需要设置内核参数kernelpid_maxsysctl -w kernelpid_max=65535
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)