Russ,

As Jeff points out lack of available threads could be a factor flow
slower processing times but this would manifest itself by you seeing
that the processor isn't running very often.  If it is that the
process itself when executing takes much longer than on the other box
then it is probably best to look at some other culprits.  To check
this out you can view the status history and look at the average
number of tasks and average task time for this process.  Does it look
right to you in terms of how often it runs, how long it takes, and is
the amount of time it takes growing?

If you find that performance of this processor itself is slowing then
consider a few things.
1) Does it maintain some internal state and if so is the data
structure it is using efficient for lookups?
2) How does your heap look?  Is there a lot of garbage collection
activity?  Are there any full garbage collections and if so how often?
 It should generally be the case in a well configured and designed
system that full garbage collections never occur (ever).
3) Attaching a remote debugger and/or running profilers on it can be
really illuminating.

JOe

On Mon, Oct 3, 2016 at 11:26 AM, Jeff <jtsw...@gmail.com> wrote:
> Russel,
>
> This sounds like it's an environmental issue.  Are you able to see the heap
> usage on the production machine?  Are there enough available threads to get
> the throughput you are observing when you run locally?  Have you
> double-checked the scheduling tab on the processor config to make sure it
> is running as aggressively as it runs locally?
>
> I have run into this sort of thing before, and it was because of flowfile
> congestion in other areas of the flow, and there were no threads available
> for other processors to get through their own queues.
>
> Just trying to think through some of the obvious/high level things that
> might be affecting your flow...
>
> - Jeff
>
> On Mon, Oct 3, 2016 at 9:43 AM Russell Bateman <
> russell.bate...@perfectsearchcorp.com> wrote:
>
>> We use NiFi for an ETL feed. On one of the lines, we use a custom
>> processor, *VelocityTemplating* (calls Apache Velocity), which work very
>> well and indeed is imperceptibly fast when run locally on the same data
>> (template, VTL macros, substitution fodder). However, in production it's
>> another matter. What takes no time at all in local runs takes minutes in
>> that environment.
>>
>> I'm looking for suggestions as to a) why this might be and b) how best to
>> go about examining/debugging it. I think I will soon have remote-access to
>> the production machine (a VPN must be set up).
>>
>> Thanks,
>>
>> Russ
>>

Reply via email to