• kbmMW 5.08.01压力测试报告


     上图为客户端测试结果,运行14小时,无异常报告。基于洞主封装的HttpsysTransport,基于ClientQuery完成25万多次数据库访问操作,含查询并对查询结果进行修改及增加新记录,然后提交操作。客户端64线程同时访问,基于kbmMW Scheduler实现的定时线程,每10秒发起一次访问。(朋友说线程少,主要原因这个Server还在生产中,多了影响客户端App的反应速度,影响人员正常操作)。

    附压力测试的内容:

    procedure TMainForm.query;
    var
      bsf: TkbmMWBinaryStreamFormat; // 建立独立实现,确保线程安全
      q: TkbmMWClientQuery;
      i: Integer;
      msg: string;
    begin
      bsf:=TkbmMWBinaryStreamFormat.Create(nil);
      q:=TkbmMWClientQuery.Create(nil);
      try
        try
          q.QueryService:='QueryService';
          q.QueryServiceVersion:='1.0';
          q.SessionName:='test';
          q.TableName:='t1';
          q.KeyFields:='f1';
          q.TransportStreamFormat:=bsf;
          q.query.Text:='select top 100 * from t1';
          q.Open;
          while not q.Eof do
          begin
            q.Edit;
            q.FieldByName('f2').AsString:=RandomRange(1, 100).ToString;
            q.Post;
            q.Next;
          end;
    
          for i := 0 to 9 do
          begin
            q.Append;
            q.FieldByName('f1').AsString := kbmMWGenerateShortGUID;
            q.FieldByName('f2').AsString := RandomRange(1, 100).ToString;
            q.FieldByName('f3').AsString := RandomRange(1, 100).ToString;
            q.Post;
          end;
          q.Resolve;
          // finally
          // q.Unlock;
          // end;
        except
          on E: Exception do
          begin
            // ApplicationShowException(E); //显示异常,避免应用闪退
            msg:=E.Message;
            TThread.Queue(nil,
              procedure
              begin
                mmo1.Lines.Add(msg);
              end);
          end;
        end;
      finally
        bsf.DisposeOf;
        q.DisposeOf;
      end;
    end;

     上图为服务端运行截图,系统正常运行,无异常产生,内存占用正常,线程数正常。测试通过!

    无异常产生截图。

    停止客户端测试,退出正常,无泄漏。

    停止服务端,退出正常,无泄漏。

    从本次测试结果看,非常完美与稳定!可以说kbmMW 5.08.10是一个可以信赖的版本。

    另外还要提及,本次测试是基于uniDAC Direct DB,即直联数据库方式联接MSSQLServer,说明现在我的服务端稳定支持直联数据库了!

    Delphi版本:10.3.1

    kbmMW版本:5.08.10

    继续增加测试:

    开启三客户端,每客户端64线程,用64*3=192线程模拟用户操作。连续运行超过12小时,晚6点到早8点。上图为停止服务器截图。

    由于数据库性能原因,出现已超过了锁请求超时时段。错误,如下图:

    下图为客户端截图:

    每客户端完成近20W次操作,共近60次操作。本次测试出现错误,为数据库返回的错误信息:已超过了锁请求超时时段。

    完成本次测试后,服务端与客户端都正常,无异常反应。进一步说:服务端内存占用正常,线程占用正常,所提供服务正常,可以停止,重启服务,退出服务端正常。

    又是一次完美测试!

  • 相关阅读:
    内置的包装类
    子类继承父类的哪些成员
    JAVA笔记140-使用this语句解决构造器重载相互调用问题
    Java学习
    AngularJs2
    Angular
    检测是否所有的栏位都已经填充了内容了。(可以用来判断动态放置的东西和外加的框是否一致)
    上下各有一个框,框里有元素(点击下面的元素,显示到上面的框里面去,按一定顺序排放)
    Nashorn 在JDK 8中融合Java与JavaScript之力
    2014年Facebook的开源成就
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/10514336.html
Copyright © 2020-2023  润新知