Natural process on Linux is reaching 100%

Hello friends, i am having an issue on my Natural environment on Linux Red Hat Server, some times the process of the Natural is reaching 100% and the system is getting slower.

I imagine that one bad program its consuming all CPU, but, how can i get information about the programs running over the Natural on this time?

Tanks a lot and best regards.

I guess you’re using the command “top” to see the CPU-consuming process. Try “ps -ef | grep 1234” (while 1234 is the regarding Process-ID, to find out more details.

Example. The top-command shows an output like this:

Memory: 128G real, 3025M free, 32G swap in use, 164G swap free

 10756 user1      1  59    0 6448K 2672K sleep   30:34  0.02% top
 25469 user2      2  59    0   59M   47M sleep    9:13  0.00% natural
 25585 user3      2  59    0   43M   31M sleep    8:55  0.00% natural

To find out more details about PID=25469…

prompt> ps -ef | grep 25469
   user2 25469 29488   0   Dec 22 ?           9:13 natural bp=natb parm=xyz etid=25468 BATCH WH=ON ETID=e434 STACK=(PROGRAM;fin)

Hi Matthias thanks for your reply!!!

I can see the process info, but, i realy need to know what routines (programs or subprograms) are running at the time on natural environment.

Do you know how can i see a list of the programs that running on natural?

I don’t know any tool to show that. Sorry. For must purposes (in my cases) it’s enough to see the stack-parameter as shown above.

Maybe you can use the bufferpool-information to narrow down the problem… but I admit: that’s not really a good idea.

May be you have a look at the buffer pool. With natbpmon you can get values of a Natural object such as “current number of concurrent users”, “peak number of concurrent users” or “number of usages”.

Another idea is to use the debugger and have especially an eye on performance.

If you have the source code of this application you may use the Natural statement SET TIME. The SET TIME (or SETTIME) statement is used in conjunction with the Natural system variable *TIMD to measure the time it takes to execute a specific section of a program.