Multiple Informix Instances with 9.4 UC4 version
Posted in 2006
Topics: Performance & Tuning, Platform-Specific Issues
I have gone through the posts since 1997/8 and it seems that it was strongly advised to avoid running multiple instances on the same box, some very educational replies by Art S Kagel. This also seems to be the advice of Informix in its performance tuning manual. We are planning to deploying 3 databases in an AIX box with 32 GB mem and 8 CPU. Two of the databases are very processing intensive especially at night, where batch jobs are run, the 3rd database is a much smaller database. We are in a debate of how these should be deployed The options are : 1) One LPAR, 3 instances, one for each database a total of 32GB mem and 8 CPU. 2) Two LPAR, 2 instances, one for each of the processing intensive database and the less intensive processing database will be imported together with one of the large one, 16GB mem and 4 CPU per LPAR How Informix manages resources between several instances? What are the prons and cons of the above configurations? Thanks Alex
Kalimera, different Informix instances are completely independent from each other and do not even know of each other. Therefore they would (potentially) compete for resources. You can of course limit the CPU and memory usage of an IDS instance, e.g. by running it with a number of CPUVPs that is less than the number of physical CPUs on the machine. That way you can also "share" the resources of a machine between several instances. However, such "load balancing" is rather coarse grained and therefore probably not desirable. I'm not sure how you (will) configure the LPARs on the AIX level. It might be possible to impose limitations there as well, though it is equally questionable whether these limitations would be desirable, as they are probably even less dynamic then limitations of the IDS instance level. I would probably try to ask the question the other way round: By separating the databases to run on different instances, you are then able to perform certain administrative tasks on one instance (i.e. database) while the other instances (i.e. other databases) are still fully operational. If you run all databases in one single instance, then taking down that instance for administrative tasks will take all databses off-line. Administrative tasks that require downtime can be as simple as doing a version upgrade, or can be as complex as doing a restore after a disk crash or an accidential drop of a table or database ... Based on the importance of above things I would figure out, how to combine or separate databases on instances. And with that schema I would then find a way to get the most out of the resources (performance wise). Regards, Martin -- Martin Fuerderer IBM Informix Development Munich, Germany Information Management informix-list-bounces@iiug.org wrote on 24.04.2006 13:10:54: > > I have gone through the posts since 1997/8 and it seems that it was > strongly advised to avoid running multiple instances on the same box, > some very educational replies by Art S Kagel. This also seems to be the > advice of Informix in its performance tuning manual. > > We are planning to deploying 3 databases in an AIX box with 32 GB mem > and 8 CPU. Two of the databases are very processing intensive > especially at night, where batch jobs are run, the 3rd database is a > much smaller database. We are in a debate of how these should be > deployed > > The options are : > > 1) One LPAR, 3 instances, one for each database a total of 32GB mem and > 8 CPU. > > 2) Two LPAR, 2 instances, one for each of the processing intensive > database and the less intensive processing database will be imported > together with one of the large one, 16GB mem and 4 CPU per LPAR > > How Informix manages resources between several instances? What are the > prons and cons of the above configurations? > > Thanks > Alex > > _______________________________________________ > Informix-list mailing list > Informix-list@iiug.org > http://www.iiug.org/mailman/listinfo/informix-list
I think you can manage. Just make sure the 2 CPU intensive databases
are affinitized to different CPU's. Also, if you can try staggering the
busy periods of the databases. You can even reassign CPUs based on
current load. Start out 4 on each busy with only 3 affinitized let 1
float. Then give the small database 1 CPU (the last 1 left, notice I
skipped one which is generally reserved for the operating system.) If
you can stagger the load you could steal the floating CPU from each
database depending on need. So you would end up with 1 instance with 5
(3 fixed, 2 floating) and one with 3 (3 fixed.) Of course you may not
even need this for each database check the onstat -g rea frequently. If
you have ready threads you don't have enough CPU allocated to an
instance. If you don't have ready threads then you do have enough CPU.
Of course can you just run the one instance with multiple instances? If
you have table conflict can't you just use different databases. If you
have multiple databases within one instance can't you just make dure
that unique names are used by each application for its databases:
app1_reference
app2_reference
app3_reference
app1_main
app2_main
app3_main
This way you could tune things easier.
"bozon" <curtis@crowson1.com> wrote in message news:1145887344.522637.32710@u72g2000cwu.googlegroups.com... >I think you can manage. Just make sure the 2 CPU intensive databases > are affinitized Affinitized? WTF?! What *are* these people doing to our beautiful language ...?
Thank you all for your value able inputs Alex