Project and Gateway becomes very slow


I recently configured a project which has the around 96,000 tags.
There are about 12000 tags from 40 PLCs which are communicated thorough Modbus.
The remaining are memory tags, and expression tags.
Details : In the project ,there are 150 UDT instances per PLC and each instance has 16 tags. 2 are data from PLC and 14 are memory and expression tags.

Thus a total 150 x 16 x 40 = 96000 tags.

I haven’t changed the default settings.

There are screens which display the values of the data read from the PLC, 750 per window.

I find that the project in the client has becomes very slow and unresponsive and the Gateway webpage is very very slow, and sometimes hangs.
I checked the Console and the gateway CPU is at 100%, always.

Looking forward to a solution.

That’s not really enough information to answer the question. Is the computer wimpy? 96000 tags would be quite a load for an old Core2Duo running gateway, database, and client all on one box. If you have 8-core Xeons, one each for gateway, database, and client, 96000 tags would be reasonable.
You mention not having changed any defaults. I’m pretty sure that means you haven’t given either the gateway or the client enough RAM to handle 96000 tags. I’d start there. Both the gateway and the client have diagnostic pages that show how much memory they are using vs. how much the settings are allowing them to use.

The gateway is running on an Intel Zeon HP Blade Server.
RAM is 6GB.
Java Heap size is 2GB.
It runs Ubuntu 12.04, 64 bit.

The client machine is a core i5 with 4GB RAM, running Windows 7.

The Gateway is consuming around 1700 MB.

The database is a different server, with 4GB RAM, Intel Zeon HP Blade Server running Windows Server 2008. I use MySQL.

Give java on the gateway as much memory as you can, and monitor it. Java memory usage varies considerably minute to minute, and free memory is very important for performance.
You also don’t say what memory the client is allowed to use in the project settings, or how much it is actually using from minute to minute. Give java on the client as much memory as possible.
Monitor gateway memory usage as you enable and disable some of your devices (or all of them). Look for patterns of performance as you add more and more load to your gateway. Then open more and more windows on the client. Monitor memory and performance as you add more and more visual load to the client. You will find performance dropping off as memory consumption climbs. At some point, performance will plummet as memory consumption approaches the max allowed.
Then go back and retest with different scan class speeds and see where the breaking point is then.
All of this is hardware dependent, so you might want to run some tests on other hardware, both gateway and client, to figure out what you’ll really need to continually display 96000 tags.