Determine CPU/Memory usage for long running processes ?

  • 1 November 2006
  • 4 replies
  • 1 view

Badge +4
I have hundreds of long running processes which will be active for an year or more.

Do these processes make an impact on K2 server?
Does the performance of K2 Server decreases if I have more no. of long running processes?

How much CPU/Memory resources will these processes consume?

Understand that my questions are very vague.
Any inputs are highly appreciated.

4 replies

Badge +11
Hi,

I can not give you "cast-in-stone" facts but IMHO - without a doubt it will impact performace negatively.

Remember, all Active processes are kept in the K2 transaction database. The more active processes in K2 database, the bigger the size of the K2 database, the longer it takes to maintain indexes and the longer it takes to search for specific values in the db.

Also, when K2Server starts, all running process instances are loaded into memory - exactly how much memory it occupies depends on the number of processes and the size and types of data stored within these process instances.

The K2Log database was specifically added for reporting purposes so that reporting does not interfere with normal K2Server activity on the K2 database. An attempt to keep the K2 transaction database "lean".

HTH,
Ockert
Badge +4
Thanks for your response.

My sample process flow is as follows..

1. User is assigned a task. he keys in target completion date for this task and submits thru infopath form.

2. Later based on target completion date, reminder is sent to user prompting him to key in the actual completion date.

3. User keys in actual completion date along with remarks.

Problem here is, target completion date can last beyond 10 - 18 month from current date. This keeps the process running in waiting state till target completion date.

I am afraid that these long running processes will eat up my server resources.

My approach for problem is to build a custom solution which identify such process which are in waiting state and start/stop them accordingly based on target completion date.

Does this approach help to load/unload process instance from memory?
Does stopping a process help us to unlaod process instance from memory ?

Kindly advice.
Badge +11
Spoke to some of the developers...
I was wrong, Active process instances (the same as Stopped process instances) are NOT automatically loaded into memory. It is only RUNNING process instances which are loaded into memory i.e. process instances that are waiting for code to execute or waiting for objects to be created etc.

HTH,
Ockert
Badge +4
Hi ockert,

thanks for the clarification.

If that the case, I will build a custom solution to identify such process which are in waiting state and start/stop them accordingly based on target completion date.

Reply