前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >压测中测量异步写入接口的延迟

压测中测量异步写入接口的延迟

作者头像
FunTester
发布2020-04-03 16:35:14
7870
发布2020-04-03 16:35:14
举报
文章被收录于专栏:FunTester

在服务端性能优化的时候,有一种方案叫 “异步写入”。就是把本来要写入数据库的功能放到异步来做,跟异步查询转同步的区别在于,异步查询是要等结果的,而异步写入则可以不等返回结果,甚至直接把写入任务丢到一个专门的任务队列中。

在对于实时性要求并不高的业务来讲,这是一个非常值得推荐的方法,比如用户消费了一笔金额场景中,对于用户消费信息的记录以及消费带来的积分提升、会员等级提升都可以异步来实现。日常接触最多的异步应该是日志和打点系统,几乎没有见过非异步实现的方案。

异步写入带来的另外一个问题就是 “延迟”,一般开发会给出一些延迟的参数值,但是在性能测试过程中这个值可能会非常大,甚至超出用户的可接受范围。这个时候就需要测试 延迟在不用压力情况下的数值大小,以便给出最好的服务负载数据。

下面分享一个检测用户更改个人信息的接口的延迟测试方案:

代码语言:javascript
复制
package com.okayqa.teacherpad

import com.fun.utils.RString
import com.okayqa.teacherpad.base.OkayBase
import com.okayqa.teacherpad.function.UserInfo

class T extends OkayBase {

    public static void main(String[] args) {
        def base = getBase()
        def info = new UserInfo(base)
        def total = []
        def diff = []
        100.times {
            def uname = RString.getString(5)
            def result = info.updateInfo(1, uname)
            int i;
            if (isRight(result)) {
                def mark0 = getNanoMark()
                while (true) {
                    def mark00 = getNanoMark()
                    def userinfo = info.getUserInfo()
                    def mark01 = getNanoMark()
                    diff << mark01 - mark00
                    if (userinfo.getUserInfo().getString("uname") == uname) break;
                    if (i++ > 5) break
                }
                def mark1 = getNanoMark()
                total << mark1 - mark0
            } else {
                fail()
            }

        }
        //求平均值的两种方法
        def var = diff.sum() / diff.size()
        def average = total.stream().mapToInt().average();

        output "单次修改信息延迟约${average - var / 2}"
    }
}

上面的参数可以根据实际大小来调整,一边压测一边另起进程测试写入接口的延迟情况。


  • 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档