Multiple Instances
Posted in 1999
Topics: Server Administration
Being new to Informix I am not sure what all pros and cons are for having multiple instances of Informix. From the classes I kind of got the impression that when you run multiple instances you have to divide up your resources so that one instance may be holding (wasting) a resource that another instance might use. But, a 3rd party vendor, is saying that each application should have its own instance, that none of our instances would ever run out of resources. I'm not sure whether he is telling me this because it is easier for him to add his product if it is in its own instance but after he leaves I am going to have to deal with the operational issues of multiple instances. I welcome any stories, advice, concerns, or documentation to read. TIA from a DBA for all of 6 months Paul Crompton pcrompton@clerk-of-court.co.lee.fl.us * Paul EXT. 2270
Paul Crompton wrote: > > Being new to Informix I am not sure what all pros and cons are for having > multiple instances of Informix. From the classes I kind of got the > impression that when you run multiple instances you have to divide up your > resources so that one instance may be holding (wasting) a resource that > another instance might use. But, a 3rd party vendor, is saying that each > application should have its own instance, that none of our instances would > ever run out of resources. > > I'm not sure whether he is telling me this because it is easier for him to > add his product if it is in its own instance but after he leaves I am going > to have to deal with the operational issues of multiple instances. > > I welcome any stories, advice, concerns, or documentation to read. This is a tough one and partially a 'religious' issue so examine all advice carefully, mine included. I like one instance per server on a dedicated machine. The issues are indeed about resource sharing -vs- resource isolation. One instance can often take better advantage of system resources because if one app needs sort memory while others need data buffers and CPU cycles great! The counter argument is "what happens if both need buffers"? Then there will be thrashing of buffers as each app sucks up huge numbers of buffers for itself. If they were in separate instances there might be fewer buffers available for each but at least they would not interfere with each other. I find this one rather spurious. If two apps are thrashing 200,000 buffers then each will be thrashing their own 100,000 buffers. Multi-instance advocates counter "but perhaps one of them only needs 70,000 buffers and the other really needs 300,000 buffer to not thrash so at least the big guy will not affect the little guy". I have to counter that if that is the case, that the one instance needs more buffers than the other, then I would set them up that way with say 50,000 buffers for the little engine and 250,000 for the big guy (assuming of course that I cannot afford to assign more than 600MB to buffers) and they will both STILL be thrashing! So bottom line the real answer to this resource -vs- isolation problem is more memory and if I can add RAM and can afford to define 500,000 buffers then it no longer matters whether there is one instance or two. The thrashing goes away! My point is that with one instance at least if one app is VERY busy overnight and needs those 500,000 buffers but during the day the other is busiest needing most of the buffers also - separate instances does not solve the resource sharing problem but a single instance does. The only real solution to the isolation problem is separate server machines or more resources so I do not by separate instances as a solution to that either. That, if you'll permit the phrase from a middle aged Jew, is the gospel of instances according to Kagel. Art S. Kagel
I just read Art's response, and its quite informing. Here's a non-resource oriented reason for being forced to used more than one database instance on a server. I'm working with third party software that is written in Informix-4GL. The name of the database is hard coded in the 4GL code. Since the name of a database in an instance must be unique, *every* database must have it's own instance. For example we want a demo database, test database, and development database on our development server. To do this we are forced to create three instances, since the names of each of these databases must be the same. The solution is to modify the code so that the name of the database can be variable. However, it is not our product and not within our purview to alter the code. Ugh! Vic Glass Paul Crompton wrote: > Being new to Informix I am not sure what all pros and cons are for having > multiple instances of Informix. From the classes I kind of got the > impression that when you run multiple instances you have to divide up your > resources so that one instance may be holding (wasting) a resource that > another instance might use. But, a 3rd party vendor, is saying that each > application should have its own instance, that none of our instances would > ever run out of resources. > > I'm not sure whether he is telling me this because it is easier for him to > add his product if it is in its own instance but after he leaves I am going > to have to deal with the operational issues of multiple instances. > > I welcome any stories, advice, concerns, or documentation to read. > > TIA from a DBA for all of 6 months > > Paul Crompton > pcrompton@clerk-of-court.co.lee.fl.us > * Paul EXT. 2270
On Thu, 18 Mar 1999 15:57:54 -0500, "Art S. Kagel" <kagel@bloomberg.net> wrote: >Paul Crompton wrote: >> >> Being new to Informix I am not sure what all pros and cons are for having >> multiple instances of Informix. From the classes I kind of got the >> >> I welcome any stories, advice, concerns, or documentation to read. > <good advice about resource sharing snipped> For what it's worth (!), I agree wholeheartedly with Art's thoughts on this one. I would add that with multiple instances you will have to cope with multiple archive and logical log backup operations. If you are doing these to tape, you will need several tape drives, several sets of tapes and operators that you can trust not to get them all mixed up. For me, single instances are almost always the way to go. Richard Thomas Charles Russell Solicitors London, UK
Vic Glass wrote: > > I just read Art's response, and its quite informing. Here's a > non-resource oriented reason for being forced to used more than > one database instance on a server. > > I'm working with third party software that is written in > Informix-4GL. The name of the database is hard coded in the 4GL > code. Since the name of a database in an instance must be unique, > *every* database must have it's own instance. For example we want > a demo database, test database, and development database on our > development server. To do this we are forced to create three > instances, since the names of each of these databases must be the > same. The solution is to modify the code so that the name of the > database can be variable. However, it is not our product and not > within our purview to alter the code. > > Ugh! Indeed, ugh! You may not be able to alter the source, but you can insist that the vendor does provide the facility. It isn't hard to do, and I've outlined how to do it in this news group on a number of occasions. When SE was the only database engine, a fixed database name was reasonable - you could use DBPATH to specify which database the program should use out of a number of databases with the same name. Once OnLine became available (I'll quietly ignore Turbo), responsive vendors immediately provided the facility to use multiple database names to avoid having to have multiple instances. As your experience shows, it has taken a while for other vendors to catch on to this. > Vic Glass > > Paul Crompton wrote: > > > Being new to Informix I am not sure what all pros and cons are for having > > multiple instances of Informix. From the classes I kind of got the > > impression that when you run multiple instances you have to divide up your > > resources so that one instance may be holding (wasting) a resource that > > another instance might use. But, a 3rd party vendor, is saying that each > > application should have its own instance, that none of our instances would > > ever run out of resources. > > > > I'm not sure whether he is telling me this because it is easier for him to > > add his product if it is in its own instance but after he leaves I am going > > to have to deal with the operational issues of multiple instances. > > > > I welcome any stories, advice, concerns, or documentation to read. > > > > TIA from a DBA for all of 6 months > > > > Paul Crompton > > pcrompton@clerk-of-court.co.lee.fl.us > > * Paul EXT. 2270 -- Jonathan Leffler (jleffler@informix.com, jleffler@earthlink.net) Guardian of DBD::Informix v0.60 -- see http://www.perl.com/CPAN #include <disclaimer.h>