美文网首页
如何做服务器压测-入门级

如何做服务器压测-入门级

作者: 琙灵 | 来源:发表于2017-12-13 15:29 被阅读0次

今天心血来潮,想做下压力测试,以前重来没有试过

工具

  1. wrk,根据官方的介绍

wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi->core CPU. It combines a multithreaded design with scalable event notification systems such as epoll and >kqueue.

wrk是一个现代的HTTP基准测试工具,能够在单个多核CPU上运行时产生显着的负载。它将多线程设计与可
扩展事件通知系统(如epoll和kqueue)相结合。

总之这是一个http测试工具,用法可以自行上网查询

  1. pm2,根据pm2的介绍我们可以使用,pm2 monit来查看性能数据,或者使用keymetrics(pm2的在线可视化性能检测工具)来监测性能,使用方法自行搜索

概念

在开始测试之前,我们需要了解一下 系统吞吐量(TPS)、用户并发量、性能测试概念和公式,我们关心的也大多都是并发量,tps,和响应时间这3者,wrk中也正好有对应三者的测试结果

image.png

我们用wrk测试了一下,可以看到在300的并发量下,持续测试10s的时间一共产生了1w个请求,平均响应时间是266ms,但是最大的已经超过了2s,tps是1k左右,但是也可以看到159个左右的请求连接超时
同时我们自己使用express搭建一个简单的服务器,使用pm2来看看硬件性能的使用情况


image.png

可以看到cpu已经满载运行,内存使用了126m
压测结束后


image.png
cpu和内存瞬间降低,表示了我们的服务器身体还是挺好的

开始测试

目标

首先我们需要定下目标,和环境,目前我使用分配了i7-4710mq的4线程和内存的4g给虚拟机,我们需要express默认主页的百万日pv,根据系统的平均并发用户数和并发数峰值如何估算这文章的算法,我们如果要实现100w的日pv那么我们需要服务器的至少要会接到15个请求每秒左右并且响应时间要小于50ms(这个是我从淘宝首页看到的)才正常但是我们的页面十分简单,我们要求平均20ms内响应90%响应时间定为36ms,那么我们服务器需要处理的并发量就是45.
总的来说,我们需要在45的并发下达到平均响应时间20ms,90%响应时间为36ms

初次测试

image.png

我们在45并发下发现我们的平均响应时间为34多ms,每秒处理1k请求,超过我们的需求

优化

当前我们是处于单进程,我们需要使用pm2 内置的负载均衡,开启多线程


image.png

我们开启了4个进程,可以看到现在的响应时间很接近20毫秒了

总结

由此做了个初略的结论,在百万级别的pv下nodejs还是可以支持的住的

参考

  1. https://huoding.com/2017/05/31/620?utm_source=tuicool&utm_medium=referral
  2. http://www.chinaz.com/web/2016/0817/567752.shtml

相关文章

  • 如何做服务器压测-入门级

    今天心血来潮,想做下压力测试,以前重来没有试过 工具 wrk,根据官方的介绍 wrk is a modern HT...

  • 压测

    压测流程规范: 1. 压测机器申请 压测域名: 询问运维人员 压测机器: 看公司使用的服务器 例如:服务机器(...

  • 分布式压力测试-代码篇

    说明 主要用途是想用多机压测服务器端 可以组合任何平台,任意语言,任意压测方法,任意电脑等对服务器进行压测 设计思...

  • 游戏技术精华分享之游戏服务器压测

    游戏技术精华分享之游戏服务器压测 压测概述 早知道早幸福——从压测工具谈并发、压力、吞吐量 当压测遇见奥运 ——游...

  • jmeter分布式压测练习(Windows)

    1 压测的接口: www.baidu.com 2 压测的服务器(目标机) 百度的服务器 3 相关配置: 3.1主控...

  • MySQL压测②--tpcc安装与使用

    IP架构 sysbench部署服务器:172.17.100.107 压测服务器:172.17.100.100(虚拟...

  • MySQL压测①--sysbench安装与使用

    IP架构 sysbench部署服务器:172.17.100.107 压测服务器:172.17.100.100 My...

  • 【服务器压测】

    安装 检测 ab参数说明 有关ab命令的使用,我们可以通过帮助命令进行查看。如下: 下面我们对这些参数,进行相关说...

  • kafka-flink性能测试规划(上)

    1.压测方案 1.1 压测目的    本次性能测试在正式环境下单台服务器上Kafka处理MQ消息能力进行压力测试。...

  • CoreDNS篇7-性能压测

    本文主要用于介绍如何编译安装queryperf来对DNS服务器进行压测,以及CoreDNS常见的几种配置下的压测性...

网友评论

      本文标题:如何做服务器压测-入门级

      本文链接:https://www.haomeiwen.com/subject/kxcnixtx.html