0

当尝试使用 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 个事件,看起来内存最终过度使用并且模拟停止。尝试使用分区和内存使用率提高了很多,但仍然以失败告终。我能想到的是这是一个编码问题,但似乎找不到任何可能导致这种情况的东西。

//对不起英语不好,不是我的第一语言//

4

1 回答 1

0

推荐的堆大小为 2 Gb[1]。你为工人档案分配了多少?

[1] https://docs.wso2.com/display/SP430/Installation+先决条件

于 2019-04-24T13:43:06.453 回答