当尝试使用JMeter模拟事件流并将其用作siddhi上的源时,它会工作一段时间,但最终会因RAM过度使用而停止执行程序。
我尝试用数据库执行代码,没有数据库,使用分区逐个获取事件。
这是流代码:
@Source(type = 'http',
receiver.url='http://172.23.3.22:8007/insertSweetProduction',
basic.auth.enabled='false',
@map(type='json', @attributes( tipoDato='$.tipoDato', fecha='$.fecha', valor='$.valor', servicio='$.servicio')))
define stream insertSweetProduction (tipoDato string, fecha string, valor double, servicio string);
这是接收器流:
@Sink(type='file',
@map(type='json'),
@attributes( tipoDato='$.tipoDato', fecha='$.fecha', valor='$.valor', servicio='$.servicio'),
file.uri='/dev/null')
define stream fileSweetProduction (tipoDato string, fecha string, valor double, servicio string);
这是执行从一个流复制到另一个流的查询:
@info(name='query2')
from insertSweetProduction
select tipoDato,fecha,valor,servicio
insert into fileSweetProduction;
预期的结果是wso2worker将显示所有事件都被处理并插入到接收器流中。在JMeter上,我模拟1个用户在1小时内引入6000个事件,看起来内存最终过度使用,模拟停止。尝试使用分区,内存使用率大大提高,但最终仍以失败告终。我只能想到这是一个编码问题,但似乎无法找到任何可能导致这种情况的问题。
//对不起英语不好,不是我的第一语言//
建议的堆大小为2 Gb [1]。你分配给工人档案多少钱?
[1] https://docs.wso2.com/display/SP430/Installation+Prerequisites