Reliability & Performance

On a client with 300 Service users and 6 Million Mail addresses we have some performance & stability challenges.

I would like to ask the community:

(1) The App Server has 16 Core and 32GB, which seems alright. But the server runs out of memory and around 100 Ticket.exe processes are open. Anybody can recommend something? At the moment we need to restart IIS 1-4 times a DAY.

Would changing the session state from inproc to SQL improve that behaviour?

(2) In general it seems that Application server processes take quite some time and SQL Server needs to wait to deliver results back.

Any recommendations to improve on this end?

RE: Reliability & Performance

Hi Klaus,

It is not always easy to give simple answers to these cases, as they usually require more detailed investigations. But I will at least give it a try :-)

The fact that you have hundred ticket.exe processes seems wrong. Normally, a ticket.exe should take about 1 second to process a request. A normal user does a request perhaps every 30 seconds on average (I would actually expect even more seldom -  writing replies and reading messages, fetching coffee and eating dougnuts takes time). If we use 30 seconds, that means you should need 10 ticket processes to keep things afloat. If you get lots of more processes, I am guessing you have bottlenecks in your system. You need to check the database, if it is queuing query requests. Have you made any customizations for this installation that could be hammering the database? Perhaps, if the customer has some very large tables, it could be an indexing issue.

We have some new customers who have about 2500 user agents in Service. I think 300 should not be a problem. You just need to investigate the issue and find the bottleneck.


Av: Sverre Hjelm 20. nov 2019

RE: Reliability & Performance

well I would say we have 300 heavy users, they are worth 5 standard users each which calculates to 1.500 normal users.

just kidding, we already enabled log for queries > 5 sec and created indexes, this helped a lot , would you set the threshold to > 1sec as an example? And yes, we do have modified screens in CS.

The way it was done is storing the statements and run though the optimizer on sql server and let him do the changes, is that also what you would be doiing? I'm a bit hesitant as the performance of an application is not just the indexes and in this case it seems that sql has the result already, but the worker processes are not ready taking taking the result...

Av: Klaus Feierlein 20. nov 2019

RE: Reliability & Performance


Of course i took into account your german efficiency :-) 

I think you should set your treshold lower than 5s. Most queries should take <100ms. For one single page load in Service, e.g. viewing a request, we do perhaps 10-20 database queries. What you can try is to run .../rms.fcgi?action=performance. It will measure the performance of the database, the disk, netserver and cpu. Do the same thing on e.g. OneDB, and compare the values. It will give you an indication of the performance of their system.

Using the SQL optimizer seems ok. Is the SQL server running on the same server as NetServer and the Service executables? If not, how is the network between them? What is the CPU load on the servers?


Av: Sverre Hjelm 20. nov 2019