Note: The monitoring and tests are done on G/Netviewer 9.4 environment. But I think it is also applicable for version 10.
After some in-depth monitoring of our G/Netviewer webserver for some days/weeks. We found a performance enhancement for G/Netviewer webserver. Our server has 4 cores and 8GB memory. On our environment there are 25 to 30 concurrent users working with G/Netviewer. When we measured the CPU time in the working hours, the statistics shown that the average CPU time was round 35% and users are complaining about performance. When we monitored the server, there are on average 5 mapserver.exe running and we specified that there can be 10 maximum, but it never reaches 10.
Also our statistics show there is almost no paralleled processing of the mapserver.exe. The data shows that mapservers are randomly fired after the other process is done. Mapserver1 processing something, then mapserver2, then mapserver1 again, then mapserver3, etc. You should expect when there are 4 mapservers.exe, those executables will fire all at once if 4 users doing a Zoom-action within G/Netviewer, but it doesn’t. Sometime we do see that 2 mapserver.exe do simultaneously fire. Or when a extra new mapserver.exe is starting then it will process the modificationlog table in parallel processing. So the server can upscale to 10 mapservers and we would expect 80% CPU time, but that is not what happening.
In our environment we do have two G/Netviewer groups (Database users) specified in the G3E_loginmapping table. (In G/Tech 10 this table is not used anymore and everything is stored in IAM database) A quarter of the total users is specified in the g3e_loginmapping table and are mapped to an advanced usergroup. All other users are mapped to default usergroup. So we have only two usergroups and two mapserver.exe processing parallel….hmm. What if we created more usergroups, would G/Netviewer do more parallel processing. The answer is YES.
The G/Netviewer webserver processing does work like a supermarket. The GNWebMgr.exe is the store manager, Mapserver.exe is a checkout lane and the a netviewer group is the cashier. In our situation we had only two cashiers working on two lanes. When the shop got more busier, the queue are getting larger and the manager opens another lane. But there are no extra cashiers, so the cashiers need to switch between lanes. When you define more groups in the g3e_loginmapping table you get more cashiers, so more parallel processing.
What you have to do is specify all frequent users in the g3e_loginmapping table and map those users to different groups. In the webcc.web_user table you van get information which users are logged in. But every time they login the Last_license_access date will be overwritten. So you can monitor this for example once per day, for one/two weeks. To get most frequent users and divide them over different groups.
We used to have the same performance issues under 9.43. The worker process simply just increases in memory and never throttles back down. As soon as the w3wp.exe reached 700MB memory, the system collapsed.
However, I was suprised that you could increase perfomance by mapping users to more groups. In our case, it was the other way around. We now have one single group als G3E_TOUSERNAME for all G/NetViewer application entries in G3E_LOGINMAPPING.
Fact is, there is no ultimate solution, the issue could only be little by little. The handling of legends do seem to play a major role, though. Apart from reduction to one single user group, we did following:
– Indexing client context database under SQLServer and periodical rebuild of these indexes
– Aggregation of all legends into a master legend making use of legend settings (new under 9.43)
– Deactivation of rarely used, load intensive Netviewer queries that caused huge increase of the worker process memory usage within a short period of time
– Allocation of users to a second web server
Hi,
I need to install GNetViewer 943.2001 into Windos2008R2 IIS7.
My previous installations on Windows2003 IIS6 now I need upgrade the server.
Please send me the instructions how to install on ISS7
Thanks
Albert Ender