Performance issues with GMS 18.1.x.

  • 7023925
  • 11-Jun-2019
  • 14-Jun-2019

Environment

GroupWise Mobility Service 18
GroupWise 18

Situation

There were several improvements made in SP1 of GMS 18.1.x version, so if you are not on build number 483 (SP1 build), first download it and apply.

Resolution

However, if you still see delays in items delivery to your device despite you are already on 483 build or later, you might want to delete existing index file. Please, check following steps:

1. Login into PSQL:

psql -U datasync_user mobility
<enter a pwd when prompted>

2. Check device images table:

\d deviceimages

and if you see in the indexes section following index:

trgm_deviceIdextReferenceMap_idx

then this is a source of your problem and you must perform the following steps to drop it of & recreate it:

drop index "trgm_deviceIdextReferenceMap_idx";

create index "trgm_deviceidextreferencemap_idx" on deviceimages using gist ((deviceid||' '|| extreferencemap) gist_trgm_ops);

Once that is done, restart GMS service. This should help the performance.

Sometimes it can happen that you do not see this index on your GMS server and still have slow performance. The index is created only when your GMS is using PSQL version 9.6.
Just upgrading GMS to newer version, or by higher ISO build number or by patching SLES12 server to SP4 does not make automatically GMS start using newer PSQL version.
You might see first signs of this problem in upgrade GMS logs or directly on a screen when you patch the GMS software. There might be lines like in example bellow:

Thu, 02 May 2019 17:08:37 INFO Updating database schema: "DROP INDEX \"trgm_deviceIdextReferenceMap_idx\";"
Thu, 02 May 2019 17:08:37 INFO Failed to update database schema. Please see readme file for manual steps.
Thu, 02 May 2019 17:08:37 INFO Updating database schema: "CREATE INDEX IF NOT EXISTS trgm_deviceidextreferencemap_idx ON deviceimages USING gist ((deviceid || ' ' || extreferencemap) gist_trgm_ops);"
Thu, 02 May 2019 17:08:37 INFO Failed to update database schema. Please see readme file for manual steps.

So if your GMS is still on 9.4 version (you can see what version is GMS using directly from step 1 when you login into PSQL and connect to the mobility database), you will need to follow these steps:

1. upgrade postgresql to 9.6 by running the pgUpdate94to96.sh script (/opt/novell/datasync/)
2. zypper in postgresql-contrib
3. sudo -u postgres psql mobility -c "CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS btree_gist"
4. psql -U datasync_user mobility ... enter password when prompted
5. CREATE INDEX "trgm_deviceidextreferencemap_idx" ON deviceimages USING gist ((deviceid || ' ' || extreferencemap) gist_trgm_ops);

Then restart GMS.
Note, running GMS without this index present can still cause higher load on the CPU (permanently up to 100%). After creating this index the CPU load typically drops bellow 50%. The CPU load is also naturally determined by other factors (a number of user and how intensively they use GMS).