Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations IamaSherpa on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Performance

Status
Not open for further replies.

EscapeUK

Programmer
Jul 7, 2000
438
GB
My system performance is gradually getting worse and I have a feeling it could be to do with MTS. When the app was first setup we had also sorts of app probs. After much investigation we saw in task manager that one of the mtx.exe processes kept on grewing until none of the users could log onto the app anymore. This was fixed and everything seemed to be working fine. However over the past couple of months the performance has got worse and worse resulting in the server being rebooted a few times.

Could this be the MTS prob again?

Other info: the app is vb6, the server is NT4 sp6, the database is SQL7 sp2 and i think we are using MTS 2.

Any help or ideas would be great....

 
Its hard to say without seeing your actual program or your application architecture, but there are a few things to consider when using MTS.

1) Make sure that all of your objects are truly
stateless.

2) Look to see if you are sticking a lot of data into
SPM that is not getting cleared out. If you are,
then try and find a way to clear out SPM or don't
use it at all.

3) Check all of you object interfaces to make sure that
all data is being passed ByVal and that only simple
data types are being passed aroung (i.e. Integer,
Long, String, etc.) Passing complex structures such
as objects between processes (remember that each MTS
package is a seperate process) and across the wire
(in a DCOM call) will hinder performace. If you are
doing this, then you will need to find a way to
marshal your data. If you want more info on this,
just say so, and I'll post some examples.


These are just some ideas an if some of these thoughts seemed overly obvious, then I apologize, but as I said, I do not know exactly what you are doing.
 
How can I tell if the slowness id down to MTS, server or the DB
 
You mentioned that you have had to reboot your server . . . does the application's performance improve after the MTS Server reboot? If it does, then I would guess that the problem was in the MTS layer. If that didn't help, then it could still be in MTS or the DB. What DB are you using on the backend?
 
We are using SQL 7 with sp2 on NT with SP6. It is a bit of a nightmare trying to identify what would be causing this. It could be the network (but i doubt it). It might be something to do with the NT box (but I doubt it). It could be the VB app, SQL server or MTS.

Any tips on trying to find what is causing this.
 
Are you doing "New" or "CreateObject" inside your code? There can be memory leaks when you use "New" to instantiate object variables.

Chip H.
 
After the server was rebooted the performace was great...

Does this mean it is MTS
 
It could mean MTS. It sounds as thought you may have a memory leak somewhere. Track how the memory is being used. When you first boot the server, check the memory being used and then watch it for a couple of days and if it just keeps going up, then something is grabbing resources and not releasing them. This could be data being stuffed into SPM as I had mentioned before or it could be your SQL server . . . it is hard to say just yet, but check out the memory and see if it is leaking somewhere.
 
I'm interested in how you were able to identify and fix the initial problem you stated. "After much investigation we saw in task manager that one of the mtx.exe processes kept on grewing until none of the users could log onto the app anymore. This was fixed and everything seemed to be working fine." I am experiencing something very similar to this, and any help you can give would be great. However, when the app hangs I do not see any mtx.exe processors with a large amount of memory, but SQL Server is usually consuming a large amount.
Thanks,
Dave.
 
Even i am interested in knowing how you fixed your initial problem as we are also facing a similar issue.
 
Did you both check to see how objects were being instantiated? What language are you using? VB has a known problem if you use "Dim X as New clsMyObject" to instantiate your objects.

I wouldn't worry too much about SQL server taking up a lot of memory. It's default option is to use all available RAM for caching. Which is one reason why MS doesn't recommend running a database and any other service (IIS, MTS) on the same machine.

Chip H.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top