想知道你的服务器性能怎样吗?

简介: 想知道你的服务器性能怎样吗?

0.jpg

开发完了自己的服务器,是不是想知道他的响应速度够不够快、有多抗压、能承受多大的访问量呢?嗯,没错,我也很好奇,所以这两天玩了玩测试的东西,这里给大家分享一下。


Artillery



想做压力测试当然要有相应的工具,于是第一步我就去 npm 上搜了一下,结果发现工具挺多,可惜的是大部分都已经停止更新和维护了,而目前还在维护的并有一定使用者的发现了 loadtest 和 artillery 这两个,最后选择了 star 数最多的 artillery (其作者目前很积极,差不多每条 issue 都有人回答吧)实战一下。


安装:

npm install -g artillery


测试:

artillery quick --duration 30 --rate 10 -n 20 https://artillery.io

测试时长 30 s,每秒 10 条请求,20 个用户,测试了下 artillery 自己的官网。

看看下图的结果:640.jpg


总共 30*10*20 = 6000 次请求,没错,全部正常完成,如果有错误发生或丢包等情况会在最后提示,请求到响应的时间消耗也很明显的可以看出来,min、max、median、p95、p99分别表示最小、最大、平均、完成95%、完成99%请求或发出请求到响应完成的时间长度,最后本次测试的记录也会在当前工作目录下自动生成一个 json 文件。


更多配置亦可编写 yml 文件然后直接执行此文件,感兴趣的话可以去官网看看详细的资料,这里之所以不再赘述是因为我更喜欢另一种测试工具。


ab



好吧,我承认向传统势力低头了,ab 就是 apache 的一款测试工具,历史也算是很悠久了。


安装:

MacOS 自带,不用安装,其它系统怎么安装?嘿,我管不着,谁让我是用 Mac 的人。


测试:

ab -c 1000 -t 10 https://baidu.com/

并发数 1000,测试时间 10 s,没错测测百度玩玩。

看看下图的结果:640 (1).jpg

好吧,感觉每条数据都有价值。

  • Concurrency Level:  并发数
  • Time taken for tests: 测试所用时间
  • Complete requests: 完成的请求
  • Failed requests:  失败的请求
  • Requests per second: 吞吐量=完成的请求/测试所用时间
  • Time per request: 两个名称相同,第一个表示完成整个请求平均时间
  • Time per request: 第二个表示服务器处理请求的平均响应时间

后面一堆百分比表示完成这个比例的请求所花费的时间。

吞吐量越大服务器性能越好,当然这与硬件有很大的关系,至于请求相关的时间当然是越短越好。

测试完了发现 ab 的数据更整洁,另外 ab 的测试结果可以通过 -w 指定位置输出 html 格式的静态文件,当然更多测试相关的参数设置还是参考官网吧。


ab 的并发数设置问题



如果你在测试的时候并发数设置的较大,那么你可能会碰到这种问题:

socket : Too many open files(24)

这是因为系统本身默认的 open files 数值过小导致的,可以通过以下指令修改:

ulimit -n 10000

这里设置为10000(必须比系统允许的最大值小)。


怎么查看系统的最大值:

$ sysctl kern.maxfiles
$ sysctl kern.maxfilesperproc

如果最大值你还嫌小的话,也可以配置(数值自己设置即可,这里只是示例):

$ sudo sysctl -w kern.maxfiles=1048600
$ sudo sysctl -w kern.maxfilesperproc=1048576

压力测试对分析性能瓶颈还是很有帮助的,关于测试就写这么多吧

目录
相关文章
|
存储 监控 测试技术
【游戏】服务器性能测试(三) 性能指标
一、引言 在做游戏服务器性能测试的时候,我们需要通过一些指标来判断服务端是否存在性能问题,由于绝大多数的服务端都是架设在Linux服务器上,因此本篇是以Linux系统为前提,简单介绍常用的性能指标。 二、服务器指标 现如今的游戏服务器一般为分布式架构如图1。一个区的服务端由多个节点组成,通过这些节点来完成复杂的业务功能交互以及扩大人数承载。并不是每个节点都会占用一台物理机,通常是一个区的节点都放在一台物理机上(多区公用的除外)。这样每个节点进程就不能完全独占CPU,内存,网络等资源。而进行服务器性能测试也就是确保这些节点能够在一台机器上满足预定的设计要求。
1462 0
【游戏】服务器性能测试(三) 性能指标
|
6月前
|
监控 测试技术 Apache
如何测试服务器性能?
通过以上步骤,您可以全面评估服务器的性能,找出潜在问题,并采取措施来提高服务器的性能和稳定性。这对于确保服务器在实际生产环境中能够高效运行非常重要。
340 1
|
算法 前端开发 应用服务中间件
高并发环境如何有效缓解带宽压力
高并发环境如何有效缓解带宽压力
|
监控 网络协议 Cloud Native
服务器性能如何优化?(建议收藏)
服务器性能如何优化?(建议收藏)
1195 0
|
测试技术
开启irqbalance提升服务器性能
操作系统 性能调休   公司有次压测存在一个问题:CPU资源压不上去,一直在40%已达到了性能瓶颈,后定位到原因,所在的服务器在压测过程中产生的中断都落在CPU0上处理,这种中断并没有均衡到各个CPU,导致单个CPU过载而形成瓶颈。
6739 0
|
存储 弹性计算 缓存
阿里云服务器1M带宽实际下载速度及最高并发连接数测试
阿里云服务器1M带宽实际下载速度有多少?1Mbps带宽的云服务器能够支撑多少并发数?来说说阿里云服务器1M能干嘛,阿里云1M带宽实际下载速度及最高并发数:
|
存储 弹性计算 运维
有哪些因素会影响云服务器访问速度?
对一个网站来说,网站的访问速度十分重要,是网站友好体验中最基本的一项,云服务器的速度是可以反映出设备的质量问题的,如果想要有更快的网站访问速度。那么,就需要了解影响云主机访问速度的一些因素。
602 0
|
消息中间件 缓存 应用服务中间件
高并发下怎么优化能避免服务器压力过大?
用户多,不代表你服务器访问量大,访问量大不一定你服务器压力大!我们换成专业点的问题,高并发下怎么优化能避免服务器压力过大? 1,整个架构:可采用分布式架构,利用微服务架构拆分服务部署在不同的服务节点,避免单节点宕机引...
1345 0
|
Java 测试技术 调度
关于服务器性能的一些思考
一、服务器性能 平常的工作中,在衡量服务器的性能时,经常会涉及到几个指标,load、cpu、mem、qps、rt,其中load、cpu、mem来衡量机器性能,qps、rt来衡量应用性能。 一般情况下对于机器性能,load、cpu、mem是越低越好,如果有一个超过了既定指标都代表着可能
1917 0
下一篇
无影云桌面