Checklist when performance has degraded recently

Theatre Manager performance should not degrade over time given a constant set of environmental conditions. Meaning, if I have the same number of users doing the same amount of work at at given time, then each user should see performance remain at the same level.

Sometimes we are asked to identify why Theatre Manager has slowed down, or is slow after it has been installed. In almost all cases, the issue is not Theatre Manager, but some setting that has changed on the network, on the computer, or on the server. The following list contains the 'usual culprits'. Please check to see if you have been affected by one of them should you experience an abrupt change in behavior with Theatre Manager.

Finally, we are not expecting problems to occur. Usually things just run. But sometimes it is possible for things to awry and a checklist of possible culprits is useful.

Things to look at on a Workstation

This kind of trouble shooting is often on a comparative basis. You want to start looking at a workstation if running TM on the server works fine, or if TM runs fine on one workstation, but not another. Things to look at in this case are:
  • Does Theatre Manager run fine if it is the only application turned on? If so, look to other applications causing the problem and the solution might simply be a case of adding ram.
  • Look at ram usage anyway and the applications that are running. If many applications are running, you may find you need a minimum of 4 gigs of ram just to smooth out performance of the workstation. This is especially important if those other applications can be chatty or active in the background. For example, if you have Theatre Manager, Word, Excel, Outlook or Mail, a browser looking for RSS feeds, youTube, music playing in the background, etc. etc. and all in use at the same time, you may just need ram. If you have windows 7 or 8, sou will need more ram.
  • If you are streaming high bandwith video (like YouTube) at the same time as selling tickets, it is reasonable that it might affect performance of a machine while the streaming is going on
  • Does TM receive data from the server reasonably fast, but does opening windows take a long time. If so, look to the type of processor. Theatre Manager uses the floating point processor to handle some screen interface elements. That means if you are running a Celeron, it could be slow - because Celerons do not have floating point. The minimum recommended machine is core 2 duo. Please refer to the standard machine to see if you meet those requirements

Things to look at in the Network

Finding performance issues on a network can be tricky because many factors are at play. Resolving these usually involved swapping things around to try to isolate the problem. Things we've seen in the past include checking:
  • if performance for all clients got bad at the same time:
    • check the ethernet card and settings on the server. Make sure that you are not dropping packets and that you are always connected at the speed you expect to connect to the network at.
    • Did you update virus software on the serve and neglect to exclude the database directory?
  • Swap the wire from the server to the hub to see if that makes a difference
  • Swap the port on the hub to another port to see if that makes a difference
  • If only one workstation suddenly went slower, then check the ethernet card settings for speed and performance. It could be it is bad.
  • Check the cable and change it to see if that helps
  • Take the slow machine to a location where a machine runs fast, and plug it into its network port to see if that makes a difference. If so, it could indicate a problem of wiring in the wall or at the post on the router where the line terminates.
  • Try switching the port on the router for the computer to see if that makes a difference
  • Did you add any more network traffic? Does the performance change during the day and happen to coincide with other events. We had one University notice that tickets sales got slow each time classes got out and students used the internet. Another venue indicated that performance slowed down when all the actors were backstage using YouTube and doing mail. In both cases, the solution was to put the high bandwidth network users on a segregated (and controlled) network.

In all cases, it is important to go into troubleshooting mode to narrow down with component might be contributing to the problem. Eg:

  • Turn all components off but TM to see if that makes a difference
  • Try things at the server and move progressively away from the server to see if that makes a difference
  • Swap wires or ports to see where that makes a difference. If swapping a wire at the server changes everything - you have your answer. If swapping a port makes the difference, then tells you there is a router issue
  • Compare machines. All machines with the same issue tends to suggest the problem is at the server. One machine with the issue tends to suggest the machine of network port
  • Move the problem machine to a non-problem location. That will tell you if the problem is in the machine or not

Things to look at on the Server

Virus Software on the Postgresql Server

If postgres is implemented on a stand alone machine (per PCI requirement 2.2.1), we recommend that you DO NOT install virus software on the PostgreSQL Server. It is the single biggest factor that can affects performance.

If file sharing or user access is permitted to the database server and you install virus software, never allow virus scanner to scan the actual postgres database directories because virus scanners severely affect performance when many files are changed rapidly.

Refer to this link for disabling windows 10 defender

If you must install Virus Software, specifically exclude:

  • any TCP/IP traffic on ports 5432
  • anything contained in the PostGres database folders. This is generally:
    • C:\Program Files\Postgresql -or-
    • C:\Program Files (x86)\Postgresql -or-
    • \Library\Postgresql
  • Under OSX and Linux, the need for virus checking on the Postgres server is generally not required as the database server is often a stand-alone machines
  • If you really must scan the database folder, it is acceptable to run a once per day scan on the database folder - but only if scheduled late at night.

Other Factors Affecting Database Performance

  • Make sure auto update (Microsoft) or software update (OS-X) is completely turned off. Those features should never be run automatically. Microsoft is famous for delivering them often and restarting servers. Its just bad news. Plan your service outages and do them all - say - once a month or every second Monday. Downloads of large patches in the background might be a problem, or restarts after an upgrade may have affected Postgres's buffer pools so it needs to run a bit to get faster and determine commonly used database pages.

    Windows Automatic Updates is now found in Services in Windows 10. Read the following to see how to completely disable the update process.

  • Look to any service that you might have added or changed recently. For example, if you installed another program on the server, does that take resources that affect the original installation. If so, then you may need to re-configure that application, remove the application or reconfigure the postgres server. For example, Microsoft Exchange server is known to suck the resources out of a machine and it is always recommended (even by Microsoft), that it be placed on its own server.
  • Check for available disk space on the server. If you have less than 20% disk space left, then you might want to get rid of some old data or backups. Postgres uses the operating system to do page swapping and if there is no space left, you will see performance degradation because you filled up the dad drive. Old database backups might simply be accumulating and you may wish to save older ones and delete them from the server
  • Check the performance monitor (Windows or OSX) to see where your resources are going. If CPU is being consumed, see who is using it. If disk I/O is going crazy, that could be a clue
  • It is possible that a parameter was set up incorrectly for the Macintosh or Windows server. If other items are not found to cause the problem, please contact support and we can look at the postgres database parameters for you.
  • There some platform specific considerations to look at for:
    • OSX such as airport, spotlight, disable power saving, and time machine
    • Windows such as indexing and shadow copies