精华内容
下载资源
问答
  • Redis QPS测试

    2018-11-27 14:31:00
    Redis QPS测试 1、计算qps: 1)redis发布版本中自带了redis-benchmark性能测试工具,可以使用它计算qps。示例:使用50个并发连接,发出100000个请求,每个请求的数据为2kb,测试host为127.0.0.1端口...

    1、计算qps:

    1)redis发布版本中自带了redis-benchmark性能测试工具,可以使用它计算qps。示例:使用50个并发连接,发出100000个请求,每个请求的数据为2kb,测试host为127.0.0.1端口为6379的redis服务器性能:

    ./redis-benchmark -h127.0.0.1 -p 6379 -c 50 -n 100000 -d 2

    ...

    ====== SADD ======

      100000 requests completed in 2.27 seconds

      500 parallel clients

      3 bytes payload

      keep alive: 1

     

    4.66% <= 1milliseconds

    14.15% <= 2milliseconds

    23.87% <= 3milliseconds

    33.59% <= 4milliseconds

    43.13% <= 5milliseconds

    52.69% <= 6milliseconds

    62.08% <= 7milliseconds

    71.43% <= 8milliseconds

    80.66% <= 9milliseconds

    89.10% <= 10milliseconds

    95.23% <= 11milliseconds

    98.76% <= 12milliseconds

    99.59% <= 13milliseconds

    99.78% <= 14milliseconds

    99.87% <= 15milliseconds

    99.95% <= 16milliseconds

    99.99% <= 17milliseconds

    100.00% <= 17milliseconds

    44150.11 requestsper second

    我们关注结果最后一行:每秒44150.11个请求,既QPS4.4万;但这里的数据都只是测试数据,测出来的QPS不能代表实际生产的处理能力;

     

    2)测算redis处理实际生产请求的QPS/TPS

    在实际生产中,我们需要关心这个指标,在我们的应用场景中,redis能够处理的最大的(QPS/TPS)是多少?测量redisQPS的方式有两种:

    估计生产的报文大小,使用benchmark工具指定-d数据块大小来模拟;
    使用redis-cli中info统计信息计算差值;redis-cli的info命令中有一项total_commands_processed表示:从启动到现在处理的所有命令总数,可以通过统计两次info指令间的差值来计算QPS:
     

    watch -n 60'redis-cli -a MROhwkCyaGZbCrMTLAg2  info|grep total_commands_processe >> qps2.txt && date >>qps2.txt'

     

    把每分钟的total_commands_processe记录到qps2.txt,打上时间戳得到数据两两相减,除以60秒。

     

    注意:这个实时数据,存在波峰波谷,要采样几次,每次一段时间,这样才比较准。所以,一般使用下面命令

    nohup watch -n 60'redis-cli -a MROhwkCyaGZbCrMTLAg2  info|grep total_commands_processe >> qps2.txt && date >>qps2.txt' > log 2>&1 &

     


    2、内存使用情况:

    redis是内存数据库,直接看info里的相关参数即可


    used_memory:832784 # Redis 分配的内存总量 
    used_memory_human:813.27K 
    used_memory_rss:1896448 # Redis 分配的内存总量(包括内存碎片) 
    used_memory_peak:832760  
    used_memory_peak_human:813.24K #Redis所用内存的高峰值

     

    3、redis连接数:

    redis是内存数据库,直接看info里的相关参数即可

    # Clients
    connected_clients:28

    posted on 2018-11-27 14:31 卧似长剑 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/chencanjian/p/10026215.html

    展开全文
  • 应用实例1、测试网站每秒所能承受的平均访问量(吞吐量,单位时间内的事物处理能力)http_load -parallel 5 -fetches 1000 urls.txt这段命令行是同时使用5个进程,随机访问urls.txt中的网址列表,总共访问1000次。...

    应用实例

    1、测试网站每秒所能承受的平均访问量(吞吐量,单位时间内的事物处理能力)

    http_load -parallel 5 -fetches 1000 urls.txt

    这段命令行是同时使用5个进程,随机访问urls.txt中的网址列表,总共访问1000次。运行之后的结果:

    1000 fetches, 5 max parallel, 6e+06 bytes, in 58.1026 seconds

    6000 mean bytes/connection

    17.2109 fetches/sec, 103266 bytes/sec(吞吐量)

    msecs/connect: 0.403263mean, 68.603 max, 0.194 min(响应时间)

    msecs/first-response: 284.133 mean, 5410.13 max, 55.735 min

    HTTP response codes:

    code 200 — 1000

    从上面的运行结果来看,目标网站仅仅能够承受每秒17次访问,不够强壮。

    2、测试网站是否能承受住预期的访问压力(大量用户并发访问,持续一段时间)

    http_load -rate 2 -seconds 300 urls.txt

    在300秒内保持一定的频率访问目标url。

    注:不要测试上线之后的网站,有可能被压垮

    展开全文
  • 1)redis发布版本中自带了redis-benchmark性能测试工具,可以使用它计算qps。示例:使用50个并发连接,发出100000个请求,每个请求的数据为2kb,测试host为127.0.0.1端口为6379的redis服务器性能:./redis-benchmark ...

    1)redis发布版本中自带了redis-benchmark性能测试工具,可以使用它计算qps。示例:使用50个并发连接,发出100000个请求,每个请求的数据为2kb,测试host为127.0.0.1端口为6379的redis服务器性能:

    ./redis-benchmark -h127.0.0.1 -p 6379 -c 50 -n 100000 -d 2

    ...

    ====== SADD ======

    100000 requests completed in 2.27 seconds

    500 parallel clients

    3 bytes payload

    keep alive: 1

    4.66% <= 1milliseconds

    14.15% <= 2milliseconds

    23.87% <= 3milliseconds

    33.59% <= 4milliseconds

    43.13% <= 5milliseconds

    52.69% <= 6milliseconds

    62.08% <= 7milliseconds

    71.43% <= 8milliseconds

    80.66% <= 9milliseconds

    89.10% <= 10milliseconds

    95.23% <= 11milliseconds

    98.76% <= 12milliseconds

    99.59% <= 13milliseconds

    99.78% <= 14milliseconds

    99.87% <= 15milliseconds

    99.95% <= 16milliseconds

    99.99% <= 17milliseconds

    100.00% <= 17milliseconds

    44150.11 requestsper second

    我们关注结果最后一行:每秒44150.11个请求,既QPS4.4万;但这里的数据都只是测试数据,测出来的QPS不能代表实际生产的处理能力;

    2)测算redis处理实际生产请求的QPS/TPS

    在实际生产中,我们需要关心这个指标,在我们的应用场景中,redis能够处理的最大的(QPS/TPS)是多少?测量redisQPS的方式有两种:

    估计生产的报文大小,使用benchmark工具指定-d数据块大小来模拟;

    使用redis-cli中info统计信息计算差值;redis-cli的info命令中有一项total_commands_processed表示:从启动到现在处理的所有命令总数,可以通过统计两次info指令间的差值来计算QPS:

    watch -n 60'redis-cli -a MROhwkCyaGZbCrMTLAg2  info|grep total_commands_processe >> qps2.txt && date >>qps2.txt'

    把每分钟的total_commands_processe记录到qps2.txt,打上时间戳得到数据两两相减,除以60秒。

    注意:这个实时数据,存在波峰波谷,要采样几次,每次一段时间,这样才比较准。所以,一般使用下面命令

    nohup watch -n 60'redis-cli -a MROhwkCyaGZbCrMTLAg2  info|grep total_commands_processe >> qps2.txt && date >>qps2.txt' > log 2>&1 &

    2、内存使用情况:

    redis是内存数据库,直接看info里的相关参数即可

    used_memory:832784 # Redis 分配的内存总量

    used_memory_human:813.27K

    used_memory_rss:1896448 # Redis 分配的内存总量(包括内存碎片)

    used_memory_peak:832760

    used_memory_peak_human:813.24K #Redis所用内存的高峰值

    3、redis连接数:

    redis是内存数据库,直接看info里的相关参数即可

    # Clients

    connected_clients:28

    展开全文
  • 在WEB服务器端,每日的访问量巨大。...这里使用ScheduledExecutorService实现一种简单的QPS测试代码。QpsProxy:import com.google.common.base.Preconditions;import org.apache.commons.lang3.math.Numbe...

    在WEB服务器端,每日的访问量巨大。在非生产环境需要对服务器进行压力测试,一般使用后台线程和Sleep方式来模拟线上的压力。这里使用ScheduledExecutorService实现一种简单的QPS测试代码。

    QpsProxy:

    import com.google.common.base.Preconditions;

    import org.apache.commons.lang3.math.NumberUtils;

    import org.slf4j.Logger;

    import org.slf4j.LoggerFactory;

    import java.util.concurrent.Executors;

    import java.util.concurrent.ScheduledExecutorService;

    import java.util.concurrent.TimeUnit;

    /**

    * 若Runable执行的时间超过 MAX_QPS / qps,则实际的QPS会低于实际的值。

    */

    public class QpsProxy {

    private final Logger logger = LoggerFactory.getLogger(QpsProxy.class);

    private final static int MAX_QPS = 1000;

    private ScheduledExecutorService scheduledExecutorService;

    private long qps = NumberUtils.LONG_ONE;

    private Runnable runnable;

    private long delay2Start = NumberUtils.INTEGER_ZERO;

    private int threads = 10;

    public QpsProxy() {

    }

    public ScheduledExecutorService getScheduledExecutorService() {

    return scheduledExecutorService;

    }

    public void setScheduledExecutorService(ScheduledExecutorService scheduledExecutorService) {

    this.scheduledExecutorService = scheduledExecutorService;

    }

    public long getQps() {

    return qps;

    }

    public void setQps(long qps) {

    Preconditions.checkArgument(qps < MAX_QPS , "设置的qps超过上限值:" + MAX_QPS);

    this.qps = qps;

    }

    public Runnable getRunnable() {

    return runnable;

    }

    public void setRunnable(Runnable runnable) {

    this.runnable = runnable;

    }

    public long getDelay2Start() {

    return delay2Start;

    }

    public void setDelay2Start(long delay2Start) {

    this.delay2Start = delay2Start;

    }

    public int getThreads() {

    return threads;

    }

    public void setThreads(int threads) {

    this.threads = threads;

    }

    public void start() {

    Preconditions.checkNotNull(runnable, "请设置执行的任务");

    long period = (long) Math.floor((double) MAX_QPS / qps);

    logger.info("间隔周期:{}ms", period);

    scheduledExecutorService = Executors.newScheduledThreadPool(threads);

    scheduledExecutorService.scheduleAtFixedRate(runnable, delay2Start,

    period, TimeUnit.MILLISECONDS);

    }

    public void stop() {

    Preconditions.checkNotNull(scheduledExecutorService, "任务未开始");

    scheduledExecutorService.shutdown();

    }

    }

    构建工具:

    import com.google.common.base.Preconditions;

    public class QpsProxyBuilder {

    private QpsProxy qpsProxy = new QpsProxy();

    public static QpsProxyBuilder newBuilder() {

    return new QpsProxyBuilder();

    }

    public QpsProxyBuilder withDelay2Start(long delay2TimeByMillisSeconds) {

    Preconditions.checkArgument(delay2TimeByMillisSeconds > 0);

    qpsProxy.setDelay2Start(delay2TimeByMillisSeconds);

    return this;

    }

    public QpsProxyBuilder withQps(long qps) {

    Preconditions.checkArgument(qps > 0);

    qpsProxy.setQps(qps);

    return this;

    }

    public QpsProxyBuilder withRunnable(Runnable runnable) {

    Preconditions.checkNotNull(runnable);

    qpsProxy.setRunnable(runnable);

    return this;

    }

    public QpsProxyBuilder withThreads(int threads) {

    Preconditions.checkNotNull(threads > 0);

    qpsProxy.setThreads(threads);

    return this;

    }

    public QpsProxy build() {

    return qpsProxy;

    }

    }

    测试代码:

    import com.qunar.hotel.qps.QpsProxy;

    import com.qunar.hotel.qps.QpsProxyBuilder;

    import org.junit.Test;

    import org.slf4j.Logger;

    import org.slf4j.LoggerFactory;

    public class qps {

    private final Logger logger = LoggerFactory.getLogger(getClass());

    @Test

    public void testBasic() throws InterruptedException {

    QpsProxy proxy = QpsProxyBuilder.newBuilder().withQps(100).withThreads(1).withDelay2Start(4000).withRunnable(new Runnable() {

    private int counter = 0;

    @Override

    public void run() {

    logger.info("{}-{}:{}", Thread.currentThread().getName(), System.nanoTime(), counter++);

    }

    }).build();

    proxy.start();

    Thread.currentThread().sleep(5020L);

    proxy.stop();

    }

    }

    展开全文
  • Golang的http服务器代码 package main import ( //fmt net/http ) func main() { http.HandleFunc(/, func(w http.ResponseWriter, r *http.Request) { w.Write([]byte(你好世界,我是golang)) }) ...
  • mongoDB官方网站下载:测试服务器为Dell E5410 的Debian linux 2.6,配置为:1、4核,2.33GHz2、内存3G3、SATA硬盘2Tweb服务器:tomcat5.5打压工具:Apache Bench监控工具:mongostat测试思路:1、因为MongoDB内置了...
  • MySQL官方网站下载:1、MySQL-server-5.5.28-1.rhel4.i386.rpm2、java驱动 mysql-connector-java-5.1.5-bin.jar测试服务器为Dell E5410 的Debian linux 2.6,配置为:1、4核,2.33GHz2、内存3G3、SATA硬盘2Tweb...
  • QPS-QPS每秒查询率(Query Per Second)-web服务器压力测试工具 分类: PHP2013-03-07 11:40 799人阅读 评论(0) 收藏 举报 目录(?)[+] QPS每秒查询率(Query Per Second) 每秒查询率...
  • MySQL官方网站下载:1、MySQL-server-5.5.28-1.rhel4.i386.rpm2、java驱动 mysql-connector-java-5.1.5-bin.jar测试服务器为Dell E5410 的Debian linux 2.6,配置为:1、4核,2.33GHz2、内存3G3、SATA硬盘2Tweb...
  • 测试服务器为Dell E5410 的Debian linux 2.6,配置为: 1、4核,2.33GHz 2、内存3G 3、SATA硬盘2T web服务器:tomcat5.5 打压工具:Apache Bench 监控工具:mysqladmin 测试思路: 1、使用自定义数据库连接池,最大...
  • 测试服务器为Dell E5410 的Debian linux 2.6,配置为: 1、4核,2.33GHz 2、内存3G 3、SATA硬盘2T web服务器:tomcat5.5 打压工具:Apache Bench 监控工具:mongostat 测试思路: 1、因为MongoDB内置了连接池,所以...
  • 一次qps测试实践(续)

    千次阅读 2018-01-23 21:56:42
    服务器A 4核 B 8核 nginx 部署在A,tomcat1 tomcat2部署在B(因为没第三台机器了,只能先这样看看效果) nginx worker_connections 51200 后台worker process进程的最大并发链接数 worker_connections ...
  • QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。每秒的响应请求数,也即是最大吞吐能力。 TPS Transactions Per Second 的...
  • 作为软件测试工程师,你应该要分清楚QPS和TPS的区别。QPS/TPSQPS(Queries Per Second):每秒查询率,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。TPS...
  • 目录结构 一.测试需求 二.测试步骤 1.添加线程组 ...需求:测试10000个用户并发连接websocket服务器QPS负载达到1200时的平均响应时间 1.添加线程组 Thread Group(线程组),主要包含以下...
  • 1)测试目标网站是fnng.cnblogs.com2)测试目的是该网站在负载达到20QPS时的响应时间。QPS解释QPS :QueryPerSecond每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的...
  • 测试中间件应用服务器、系统架构、数据库 1.3 重要性: 说明:软件客流大/使用量 多的话,必须进行能测试; 1.4 性能测试目的: 评估当前系统的承载能力 寻找瓶颈、进行优化 1.5 性能与功能焦点: 功能:...
  • 性能测试:TPS和QPS的区别 做测试,各种ps,jps,tps,qps...QPS:Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器(比如是读写分离的架构,就是读的服...
  • 1.QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,其即为QPS。对应fetches/sec,即每秒的响应请求数,也即是最大...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 642
精华内容 256
关键字:

服务器qps测试