DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: delphixeyong
今日帖子: 59
在线用户: 13
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/20 23:33:10
标题:
关于RTC+FireDAC压力测试 浏览:2343
加入我的收藏
楼主: 服务器:Windows 10 Rtc642+FireDAC(RAD10.1.2)
测试机:ubuntu apache benchmark
测试数据库及表:SQLite Country表大概15字段/240条目

测试代码:FireDac(开启线程池)获取数据,由RTC转换为Json Web显示
FQuery.SQL.Text := 'SELECT * FROM Country';
FQuery.Active := True;
DelphiDataSetToRtc(FQuery, rtcDS);
Result.asDataSet['result'] := rtcDS;
Write(Result.toJSON);

1、RtcHttpServer1.MultiThreaded:= False的情况下:正常
apache benchmark:ab -n 10000 -c 1000 http://192.168.50.1:9000/getdata
此帖子包含附件:
PNG 图像
大小:6.8K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/20 23:35:40
1楼: 2、但是开启RtcHttpServer1.MultiThreaded:= True情况下:都不正常
ab -n 100 -c 10 http://192.168.50.1:9000/getdata
ab -n 100 -c 20 http://192.168.50.1:9000/getdata
ab -n 1000 -c 50 http://192.168.50.1:9000/getdata

每次都是过完第一次用户数,都开始假死了。

比如 -C 10 的,会同时发送10个请求,第11请求开始就假死;
     -C 500的,在第501个请求就假死,之前的500个请求正常。
 
服务端出现假死。
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/21 2:47:51
2楼: 自行解决:

1、自己太傻了,用SQLite来测试,改用MSSQL2000即可。

2、改用SQL2000数据库的时候,出现了无法获取数据问题,后来才发现FireDAC组件的出现占线!打开FetchOptions.Mode:=fmAll即可

真的是太多东西要学了。艹
此帖子包含附件:
PNG 图像
大小:23.5K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/21 3:29:53
3楼: 我也是无聊来测试一下:

1.RTC的多线程究竟快了多少。
2.FireDac的线程池效能又怎样。

看来效果挺好的。另外如果根据2:8定律,就以这个单独业务算,可以负荷5000用户以上。
不知道我理解的对否?

1000用户并发请求,测试完对比发现几个情况
1.内存飙升快。而且几分钟也不会降下来,没空等它久点
2.RTC线程好像释放不完整一直有线程在挂着
3.firedac的FDManager获取连接数量永远是1,不清楚连接池真正起来没。
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/21 11:30:45
4楼: 昨晚搞的太晚,脑子浆糊了。早上起来理清思路,把问题都解决了:
(而且改好后,根本与SQLite无关)

1.内存飙升快。而且几分钟也不会降下来,没空等它久点
  
2.RTC线程好像释放不完整一直有线程在挂着
  自己代码问题,修正后解决(产生原因是FireDac线程池引起)
3.firedac的FDManager获取连接数量永远是1,不清楚连接池真正起来没
  自己代码问题,原来是只利用一个FDConnection,后来改用动态创建正常了

以下是测试数据,同样按10000个总请求,不同的并发数量进行测试:
PS:默认FireDac线程池大小50;SQLite Country表大概15字段/240条目
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/21 11:33:47
5楼: 并发:10
此帖子包含附件:
PNG 图像
大小:22.6K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/21 11:34:01
6楼: 并发:50
此帖子包含附件:
PNG 图像
大小:22.7K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/21 11:34:12
7楼: 并发:100
此帖子包含附件:
PNG 图像
大小:23.8K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/21 11:34:22
8楼: 并发:1000
此帖子包含附件:
PNG 图像
大小:25.5K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/21 11:59:15
9楼: 向各位活跃在盒子的中间件大牛致敬:全能、星5、樵夫、咏南等等。
特别是参考全能的界面。。呵呵。
此帖子包含附件:
JPEG 图像
大小:169.1K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/21 12:00:14
10楼: 特别是参考全能的界面。。呵呵。
此帖子包含附件:
JPEG 图像
大小:242.3K
----------------------------------------------
-
作者:
男 edwinyeah (Edwin) ★☆☆☆☆ -
盒子活跃会员
2018/4/21 16:59:40
11楼: 才 109 request 每秒啊?
上次测试 mORMot 的blog(博客)例子,本机和远程windows VPS都四千多每秒呢。
----------------------------------------------
-
作者:
男 cdsy (成都4友) ▲△△△△ -
注册会员
2018/4/21 17:46:27
12楼: mORMot也是很牛的中间件,和RTC各有所长,主要是作者水平太高,代码写得有点反人类。
----------------------------------------------
-
作者:
男 chinaren007 (erewr) ★☆☆☆☆ -
普通会员
2018/4/21 21:11:50
13楼: 牛b
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/22 1:03:08
14楼:
edwinyeah



我只是入门而已,而且测试是FireDac带SQLite。
如果只是测试RTC的话,单台测试机,可以看下图,而且还可以同调整线程池大小
此帖子包含附件:
JPEG 图像
大小:84.6K
----------------------------------------------
-
作者:
男 edwinyeah (Edwin) ★☆☆☆☆ -
盒子活跃会员
2018/4/22 11:17:52
15楼: @nickemma,
上面的留言如有冒犯请见谅,没有其它的意思,只是一个直观反应,我并没有用过FireDAC和RTC。

关于sqlite,如果写操作的话,请确认开启事务模式。就单机而言,一般情况下sqlite比其它数据库更快。
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/22 12:14:23
16楼:  @edwinyeah 

我真的是RTC新手,并没有说什么冒犯不冒犯的。哈哈

既然您提出来,我也就感兴趣去测一下罢了。

官方测试,就RTC通信而言,好像可以达到1.6W吧。或许这个会不会跟操作系统有关。
----------------------------------------------
-
作者:
男 edwinyeah (Edwin) ★☆☆☆☆ -
盒子活跃会员
2018/4/22 12:49:36
17楼: 虽然没有用过,RTC的历史我有一定的了解,十年前就感慨,它的远程函数调用,简直太方便了,也并不怀疑其性能。

如果你能科学上网,这个是国外的一个REST方面的性能测试,涉及两个Delphi的REST框架,分别是官方的DataSnap和开源的mORMot,不过没有涉及RTC,但是跟其他语言的主流框架有比较,很有参考价值:https://robertocschneiders.wordpress.com/2012/11/22/datasnap-analysis-based-on-speed-stability-tests/
----------------------------------------------
-
作者:
男 qb_good (马六甲海峡) ▲△△△△ -
禁用账号
2018/4/22 12:54:03
18楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
----------
作者:
男 abencat (远离delphi的人) ★☆☆☆☆ -
盒子活跃会员
2018/4/24 9:09:11
19楼: 代码发布出来 让我们这些小白都学习一下
----------------------------------------------
老了,做不动开发了,delphi作为爱好吧
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/4/24 9:46:09
20楼: @abencat  

通信部分在RTC官网的classroom里面有
至于FireDac线程池在emb的官网也有
----------------------------------------------
-
作者:
男 yayongm (昵  称) ★☆☆☆☆ -
盒子活跃会员
2018/4/27 14:54:24
21楼: 小项目用Delphi的话,花点儿时间折腾折腾还是有效果的。
如果是大项目,还是赶紧出门右转吧。
具体到性能测试这块,还是去
http://www.techempower.com/benchmarks/
看看吧。看完自然有数。
----------------------------------------------
弱小和无知不是生存的障碍,傲慢才是!
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/5/1 19:18:39
22楼: @yayongm

编程只是一个爱好,并非专业软件人员。
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/5/1 19:20:41
23楼: 上段时间各路中间件大神打架,我也去了瞅瞅了。

自己也上个图,最近做好的“打开表”功能。
此帖子包含附件:
PNG 图像
大小:438.9K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/5/1 19:21:05
24楼: “打开表”功能,图2
此帖子包含附件:
PNG 图像
大小:495.7K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/5/6 11:09:47
25楼: 继续记录更新:
完成文件上传、下载功能。自动判断文件如果为图片类型,则放入服务器图片目录,并自动生成相应的缩略图,否则放入普通Upload目录。
此帖子包含附件:
JPEG 图像
大小:410.5K
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/5/9 12:57:36
26楼: 继续更新:做好批量插入功能
此帖子包含附件:
JPEG 图像
大小:460.9K
----------------------------------------------
-
作者:
男 hyidasoft (hyida) ▲▲▲△△ -
注册会员
2018/7/18 14:28:58
27楼: QQ留个,请教下
----------------------------------------------
-
作者:
男 ivvn (奔腾的心) ▲▲▲▲▲ -
注册会员
2018/7/18 17:15:36
28楼: 求图标
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/7/18 17:31:10
29楼: @hyidasoft
不是我不愿留,是很久没上QQ了。
这两年都在带二胎,编程只是有空耍耍。

你留言帖子,我有空反而会上来看看,如果能力所及都会解答的。
----------------------------------------------
-
作者:
男 hezi4delphi (iDelphi) ▲▲△△△ -
注册会员
2018/7/18 22:29:10
30楼: 请问lz做这个用途是什么, 自用? 商业销售? 免费开源?
----------------------------------------------
-
作者:
男 nickemma (N.E) ▲▲▲▲△ -
注册会员
2018/7/19 9:53:11
31楼: @hezi4delphi
  自用。至于商业销售,从没有考虑过,盒子上面太多大神的中间件,我代码肤浅根本不入流。
  在盒子上面记录一个过程,也算是自己学习的一个脚印。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行78.125毫秒 RSS