Informix 5 Performance Issues
Posted in 1997
My company is having performance problems on an application, and I would like to check out some of the "solutions" that have been given to us by various sources. The client is running Informix 5.2 on a Sequent 790 with 16-586 (60 MHZ) processors and 760 Meg of memory. According to the Informix monitoring tools, 90-95% of the reads are being serviced from cache and there are few page faults, lock waits, etc. In addition, we are doing tremendous numbers of reads (sometimes 100 million per day). Unix monitoring tools show the machine as 100% CPU utilized, with low levels of page faults, swaps, etc., acceptable disk utilization (e.g., 10-30%, depending on the disk), load factors of 2.0-3.0 (i.e., 2-3 processes waiting for each processor), and 100+ Meg of memory as "free memory". There are 12 or 15 application processes that account for 80%+ of the CPU utilization. Each of these elephants uses 120+ CPU seconds per run (many use 500+ CPU seconds per run) and are run many times per day (e.g., one of the processes, which averages 500+ CPU seconds per run, is run 20-40 times per day). These elephants are SQLTurbo's that have been kicked off by users from on-line screens and run as on-line processes (yes, we know, that wasn't a very good design and we're in the process of trying to correct that problem). When we examine the ratio between CPU time and real (elapsed) time, we find that these elephants tend to grab a processor and run with it (i.e., the CPU time goes up in lock step with the real time). Where this is not the case, they are still relatively close (e.g., CPU time goes up 40-50 seconds for every 60 second increase in real time). From profiling, we do know that as much as 50% of the CPU time spent by these programs is in areas of I/O (mainly reads). We have been told by a consultant that a move to Informix 7 would benefit us because (a) Informix 7 would reduce the number of connects (and therefore processes) associated with the elephants, and (b) it would allow multi-threading in the database. Our DBA agrees that this might provide some benefit, but doubts very strongly that this would be significant given the facts stated above. He is arguing for an increase in the number of processors (plus some dramatic redesign of the database and the application). In fact, the DBA is arguing that we remove the 16-586 processors and replace them with 32-486 processors (50MHz). His logic is that, while each individual process will run 17% slower, in total things will run faster because the extra processors means we won't have processes waiting for 6-15 minutes before they get to run. We have maxed out the Sequent machine on 586 processors, so we can't add more of those. The questions I have are: 1. Forgetting all the other benefits of Informix 7, will we get any significant benefit from v7 due to reducing the number of connects and multithreading. 2. Is the DBA's logic sound? Will we get an overall improvement from having more processors even though they are individually slower. 3. If the DBA is correct, will going to 32 processors overwhelm Informix 5? Can it handle all the requests that will come from these processors, or will it become the bottleneck. 4. If we go with the 32 processors and Informix becomes a bottleneck, will v7 help because of its multi-threading. Sorry for the long-winded explanation and multi-part question, but I'm really getting desperate and the CFO is on my back for answers. ------------------ Having given up my search for the truth as hopeless, I'm now looking for a few good fantasies