MTS Performance Problem? 
Author Message
 MTS Performance Problem?

Hi,

We seem to be having some performance issues.  Our ASP application (on NT
Server #1) sends XML to an ASP page on NT Server #2. This calls a function
via MTS on the same machine. It returns the result of the function call (in
XML) to  server #2. Server #2 then sends this to Server #1 where it is
examined and processed. There are eight different functions (DLLs) which are
run in this way from the application.

Both of these machines are NT 4 Servers using IIS4, and they both have dual
processors.

Performance is fine when just one person is using the application. However
when two sessions are running and both try to call these functions
simultaneously, the performance degrades two fold and so on. I have worked
out, using timing methods, that it is the functions in MTS which are taking
so long to run (or maybe they are queuing up?). I think this may be a DLL
threading issue, but I am not sure. The functions are developed in VB 6 by
another company.

Can anyone suggest what might be going on or how the delays can be reduced?
We were planning to have several hundred people use the site at once. Is
this an impossible aim?

Help greatly appreciated,
Hannah



Mon, 18 Aug 2003 18:29:00 GMT  
 MTS Performance Problem?

The goal of supporting 100's of concurrent users is attainable
with MTS. However, requires a person/team that understands
concurrency related issues to develop an effective MTS DLL
(regardless of the language used).

Based on your observations, the chances of getting there with
the current objects / database design are not very good. The
symptoms you describe point to a serialization problem that
results in execessive blocking in the back end resources (such
as the database). If serialization is the root cause, the timing
characteristics will degrade rapidly as the load increases.

I worked on a systems integration project that "took advantage"
of a commercial MES (manufacturing execution system) that had
been developed for MTS. Unfortunately, the development team
did not really understand MTS or distributed computing. The
objects that the 3rd party company had developed peaked at
10 users per server - even adding additional servers required
increasing the timeout value for distributed transactions (which
I don't recommend as it simply makes the problem worse).

My team was contracted by the MES vendor to rewrite its MTS
objects and resolve the concurrency issues. Note that this came
as a result of our mutual customer withholding payment and
threatening to throw the MES product out.

You might want to have a heart to heart talk with your vendor.

Good luck,

Michael D. Long


Quote:
> Hi,

> We seem to be having some performance issues.  Our ASP application (on NT
> Server #1) sends XML to an ASP page on NT Server #2. This calls a function
> via MTS on the same machine. It returns the result of the function call
(in
> XML) to  server #2. Server #2 then sends this to Server #1 where it is
> examined and processed. There are eight different functions (DLLs) which
are
> run in this way from the application.

> Both of these machines are NT 4 Servers using IIS4, and they both have
dual
> processors.

> Performance is fine when just one person is using the application. However
> when two sessions are running and both try to call these functions
> simultaneously, the performance degrades two fold and so on. I have worked
> out, using timing methods, that it is the functions in MTS which are
taking
> so long to run (or maybe they are queuing up?). I think this may be a DLL
> threading issue, but I am not sure. The functions are developed in VB 6 by
> another company.

> Can anyone suggest what might be going on or how the delays can be
reduced?
> We were planning to have several hundred people use the site at once. Is
> this an impossible aim?

> Help greatly appreciated,
> Hannah



Mon, 18 Aug 2003 21:54:39 GMT  
 MTS Performance Problem?
Thanks Michael,
your comments have been most enlighening....

Hannah

Quote:

>The goal of supporting 100's of concurrent users is attainable
>with MTS. However, requires a person/team that understands
>concurrency related issues to develop an effective MTS DLL
>(regardless of the language used).

>Based on your observations, the chances of getting there with
>the current objects / database design are not very good. The
>symptoms you describe point to a serialization problem that
>results in execessive blocking in the back end resources (such
>as the database). If serialization is the root cause, the timing
>characteristics will degrade rapidly as the load increases.

....
....


Mon, 18 Aug 2003 23:49:22 GMT  
 MTS Performance Problem?
Hi!

Mutli-threading is not such a good thing as you think. Let say 1 process
runs 5 seconds. 2 processes will run 12 seconds. 3 will run 18 seconds etc
ect. Why? There is no way with single processor to speed up programs even
when multiple processes. What should be done, should be done, with single
processor 5*3 = a5 seconds + time to switch between processes. Multiple
processes does not means that they're running simultaneously really. They
really run one by one piece, switching between them takes some additional
time. THus total time degree. So what the benefit you say? Well let assume
you have 5 users to be processed and 6-th user running small and quick
routine that lasts 0.5 seconds. Without multi-threading 1 user will be
processed within 5 seconds, another withing 10 seconds because waiting for
first user etc etc. The last user will be processed by 25 seconds (!). Our
6-th user will be processed withing 25.5 seconds. As you see, the last user
will wait for others even for very little request. With multi-threading the
last user will be processed within 0.5*6 = 3 seconds + time to switch
between processes. Great improvement compare to 25.5 seconds!
Multi-threading also could be improved by some OS improvements like caching
that reduces some work on resources allocation/deallocation, that MTS does
very well so 0.4 seconds for last request will be used from cach, so call
will really last 0.1*6 = 0.6 seconds. Great, huh? Long requests will still
be long anyway, but they will not longer spoil work for all other short
requests.

However, to use full power of MTS you have to see of VB DLLs are written
correctly for working under MTS. If they did not written to work under MTS
from the design (from start), better don't use them under MTS. When such DLL
don't use MTS functions to work with Just In Time Activation and resources
sharing/stateless working etc etc, it will probably have no any benefit from
running under MTS. Just read articles on MS site for MTS. There are some
great articles also in the MS journals on web.


Quote:
> Hi,

> We seem to be having some performance issues.  Our ASP application (on NT
> Server #1) sends XML to an ASP page on NT Server #2. This calls a function
> via MTS on the same machine. It returns the result of the function call
(in
> XML) to  server #2. Server #2 then sends this to Server #1 where it is
> examined and processed. There are eight different functions (DLLs) which
are
> run in this way from the application.

> Both of these machines are NT 4 Servers using IIS4, and they both have
dual
> processors.

> Performance is fine when just one person is using the application. However
> when two sessions are running and both try to call these functions
> simultaneously, the performance degrades two fold and so on. I have worked
> out, using timing methods, that it is the functions in MTS which are
taking
> so long to run (or maybe they are queuing up?). I think this may be a DLL
> threading issue, but I am not sure. The functions are developed in VB 6 by
> another company.

> Can anyone suggest what might be going on or how the delays can be
reduced?
> We were planning to have several hundred people use the site at once. Is
> this an impossible aim?

> Help greatly appreciated,
> Hannah



Tue, 19 Aug 2003 17:09:11 GMT  
 
 [ 4 post ] 

 Relevant Pages 

1. Performance problem with MTS and VB COM

2. VB6 dll Performance Problem under MTS

3. VB and VC++ dll performance w/in MTS

4. MTS performance issue?

5. Poor performance of MTS Componant

6. MTS Performance

7. (ADO + Oracle)*MTS = Poor Performance

8. DCOM vs MTS/COM+ on scalability and performance

9. Poor performance of MTS Componant

10. Collection , MTS and performance.

11. MTS Performance

12. Looking for MTS SDK and MTS Spy

 

 
Powered by phpBB® Forum Software