cancel
Showing results for 
Search instead for 
Did you mean: 

MII Performance issues

Former Member
0 Kudos

Hi experts,

Recently we began noticing performance drops in our MII system. I have trouble locating the bottleneck and would like your input.I have read lots of articles and discussions about best practices etc.

The webpages periodically call transactions which all together seem to take a lot of time to load. When calling a transaction on button click it often takes 5-15 seconds before the transaction executes. This is no Issue in QAS.

Our Production server has 24 logical cores and 28 MB RAM. The memory reaches amounts of up to 80% but the CPU's don't go much higher than 30%.

It does not seem to be a network related issue either.

When i check the schedular most transactions run under 1 second. These only include the sceduled transactions, not the ones called from applets.

Is there any way to get a list of transactions and how much time they / how often they run? Is there anyway to monitor the database (SQLSERVER 2008) to check if this might be the bottleneck? Any other paths I should look into?

Any help is greatly appreciated as this is becomming a major issue.

Thank you,

Philippe

Accepted Solutions (1)

Accepted Solutions (1)

former_member185280
Active Contributor
0 Kudos

These are the steps I would follow. Its off the top of my head, Its been a while since I had to do it, and I don't have all the docs handy and things change across Netweaver/MII versions anyway but maybe it will point you in the right direction. I think there is a document on the SDN concerning MII performance. Maybe other can chime in with good links to some details. I do still strongly recommend bringing someone in that has some exp though. In a day or two a good resource (even remotely)  should be able to solve the issue assuming it is a Netweaver tuning problem.

  1. Minimise transaction logging.
    You already seem to have this taken care of.
  2. Minimise Netweaver Loggin.
    This is separate from the MII Transaction logging infrastructure. Go into the logging configuration for Netweaver and Set ALL loggin to 'Error' (not just the MII traces).
  3. Give Netweaver more memory.
    Make sure Netweaver is configured to use the memory available on the server. By default Netweaver is configured to only use some fraction (1/2? 1/3? I don't remember) of the servers memory. So the server may have a lot of ram but NW may only be grabbing 12gig or whatever.
    Keep in mind that you still need some left over for SQL and the OS.
  4. Give NW more threads.
    There is a setting called "Max application threads" which is self explanatory and is usually set pretty low by default.
  5. Give the NW ICM? web dispatcher more threads.
    This is another setting that my memory is foggy on so anyone please chime in but there is a setting for the number of threads the "web" manager has to do its business of handing http requests to MII and then passing them back to the client.
  6. Pool size settings.
    Check the pool sizes for you server connections(SQL, JCo etc.). These typically aren't an issue but you never know.
  7. NW Java Garbage collection settings.
    Highly unlikely but bad Garbage collection settings in the JRE can cause issues. This is a dark art. Get an Expert.

Regards,
Christian

0 Kudos

Hi Christian,

Nice set of steps to follow.  Thanks for providing them.

Mike

olivier_thiry
Participant
0 Kudos

Hello,

I'm joining this discussion, as we also encounter MII performance issues on our production system...

We have a lot (really a lot!) of transactions exposed as web services which are called by our shop floor system (every production machines have a POD to report production, downtimes, etc in SAP ME via MII transaction)

But for some reasons, the performance is degrading continously... What we noticed is that when we restart the server (for example after a new installation), the performance are really good, but starts quickly to degrade. We suspect a kind of memory problem (cache ? Wrong garbage policy ?), but we are a little bit blind and don't really know where to check. I'm not a MII or NW expert, only the developper.

Any suggestions others than what's above ? Is there a way to clean all caches without restarting ?

We are using MII 12.1.9.2 and NW 7.11.6.0

Thanks

Olivier

Former Member
0 Kudos

Hello,

Have you considered implementing Wily Introscope for your MII system. The good point is you can monitor and check historical values of different KPIs in a nice dashboard e.g. Garbage Collection, memory utlization, CPU, thread utilization etc. Based on your observation you can identify the root cause and tune.

Thanks,

Samik

olivier_thiry
Participant
0 Kudos

Hello,

We had Wily in place for a while, but doesn't really help us, and we decided to stop this service as it was also consumming a lot of resources...

I was able to optimize some top-consumming BLS applying this process :

http://scn.sap.com/community/manufacturing/mii/blog/2013/01/25/optimizing-bls-performance-of-large-x...

This helped a little bit, but it seems anyway we reached the limit of the servers, and we are now investigating with our infrasctructure team to upgrade the servers...

Regards

Olivier

Former Member
0 Kudos

Hello Olivier, just out of the blue, I'd check 3-4 things which by quickly looking were not in the list of things:

- the size of your tables: both custom and nw tables, and ensuring that the XMII_TRANSACTION table is not in the millions of records, which could adversely affect the performances. Just setup a job deleting those record periodically (limit the numbers of record deleted though)  or wait for a scheduled production downtime.

- if you call your transaction through url with the runner, then the logging should be defined in the url add &LogType=Error, this could cause the XMII_TRANSACTION Table to log data, and this parameter is not overridden by the default in MII configuration page.

- Check by doing a join between XMII_FILE and XMII_PATH that you don't have a folder filling up by some test files which are consistently created by the developer for debug

- Ensure that any file stored in the database are regularly cleaned, if they are required. A past behavior of MII was to load all files stored in the database into the memory in order to increase the performance. This has an adverse effect only 20 mins after a reboot of the server because it is not immediately triggered and would cause you memory to fill up quite quickly.

Hope it helps,

Cheers,

Arnaud

olivier_thiry
Participant
0 Kudos

Thanks Arnaud, I will ask our infrastructure team to check those points.

Regards

Olivier

Answers (2)

Answers (2)

0 Kudos
olivier_thiry
Participant
0 Kudos

Hello,

Thanks for the docs.

I have question about "usage monitoring"... I guess this will gather statistics like if we were using the "&LogStatisticsToDb=true, right ? If yes, how can we then retrieve those data's and how to clean them when finished ? I want first to try on our consolidation system before trying on live server. I think this will help us to identify the bottleneck in our top-consummer BLS.

Regards

Olivier

Former Member
0 Kudos

Hello Olivier, you can look at the table XMII STATS TRX but you will need to do a look up with the path and file id, look also at the XMII STATS FILES.

Regards,

Arnaud

olivier_thiry
Participant
0 Kudos

Hello,

I still don't know how to gather the stats info from the table... I have access to all XMII_STATS* table, I see some entries in the FILE table, nothing in the TRX table, which looks to me the more interesting... Any idea why ?

I also used the BLSManager&Mode=Stats&ID=xxx url based on a transaction shown in the transaction manager in the period I did activate the usage monitoring, but nothing displayed too...

I'm a little bit lost with this feature and to understand how it works...

Thanks

Olivier

0 Kudos

Hi Philippe,

What version of MII are you running?  Please include the SP and build.  Also what version and SP of NW are you running if you are 12.X?

Thanks, Mike

Former Member
0 Kudos

Hi Michael,

MII 12.2.3 Build(179). Not sure where I can find the Netweaver version?

0 Kudos

Hi Philippe,

The simplest way would be to ask the NW admin or BASIS person.  I think you can also get it from the NWA screen, but you may not have access to it (security folks tend to be a bit restrictive).

Do you have logging turned on?  You may want to change the settings as it can fill up the database eventually.

Look at your Transaction Manager settings which record execution records of each transaction.  If you have lots of logging of large xml documents, that can also add to storage. 

You may also want your DBA to take a look at the underlying NW database and in particular the MII related tables.

Regards, Mike

Former Member
0 Kudos

Hi Michael,

Unfortunatly there is no BASIS person currently on the project. We changed the logging policy last week from 'ALWAYS' to 'ONERROR'. This helped some bit, especially the RAM usage lowered.

I am the DBA for the MII related tables. I don't see a performance issue when running queries directly on the database.

I think the problem might be the amount of transactions that run at the same time.We have around 20 workcenters each with a webpage. Every 15 seconds these pages refresh multiple data in grids. This can easily result in some 100 transactions run every minute.

These are very small transactions though that take under 100ms to run normally.

0 Kudos

Hi Philippe,

What are your settings for Transaction Manager?  With that many transactions being tracked, it might be the source of your performance issues.

Regards, Mike

Former Member
0 Kudos

All transactions have:

log level: on error

persist: on error

When I open the Transaction manager it says "No transactions to display found".

Anyway, these transactions aren't triggered by netweaver but by the webpages so I'm not sure how the transaction manager is related?

0 Kudos

Given that you are not seeing errors and it is probably only  24 hour retention, it does not look like the Transaction Manager is having any effect.  I will see if I can get someone more technical to review with you. 

Regards, Mike

0 Kudos

Hi Philippe,

Have you reviewed these documents?  http://wiki.sdn.sap.com/wiki/display/xMII/Guidelines

This should have the performance checks listed for you.  Look for the most recent change by Mike Solwecki, then the best practices.

Regards, Mike

Message was edited by: Michael Appleby