I have made a number of configuration and code changes today that should improve the performance of EMS overall. I’ve already had some good feedback and hopefully the boat will remain stable.
In particular, our users should notice performance gains when searching for and drilling into customers, service orders and work orders.
Here’s a list of some, but not all, of the optimizations:
- added indexes to all the common tables (the ones with the most records) to cover the most common fields
- increased the memory allocated to the query engine
- increased the caching limits
- modified startup parameters in MySql to allow for a bigger buffer and dictionary store
- increased total key and sort buffers
- scheduled daily worker process recycling in the application pool for IIS
- scheduled worker process recycling after every 5000 requests (was at 35000)
- reduced the number of applications in the EMS pool
- stopped unnecessary Windows services and set them to manual startup
- changed any queries marked as long running by MySql to include a where clause limiting the number of records returned (specifically for queries that end users don't see, like when the code is only used to template out the columns).
That should help us hold out for the short term.
Now…off to the real work…