Re: IDS 10 erratic run times
Posted in 2005
A user reported erratic run times (loads, index builds, UPDATE STATISTICS) on IDS 10 under Solaris, believing performance became consistent when KAIO was "disabled" by pointing chunks at block special devices instead of character devices. Respondents pointed out that swapping to block devices is not how to turn KAIO off — it just cripples throughput — and that the correct method is setting KAIOOFF=1 in the server's startup environment (plus raising NUMAIOVPS to 2 x chunks or 6). Testing that way, and IBM support, confirmed performance on character devices with KAIO truly off was broadly equivalent, so block devices weren't the real fix; the underlying cause of the erratic times isn't resolved in the thread.
Auto-generated by DrWatson from the posts below — may be imperfect; read the full thread.
Topics: Performance & Tuning, Platform-Specific Issues
Neil, spotted this in this thread ... But, if we disable kaio (this is Solaris, so it's substituting block for character devices), we get a consistent performance every time. We have repeated this 20 or This is not how to disable KIO on any platform. Substituting block for character devices will introduce performance problems.
Neil, I spotted this too ... "CREATE CLUSTER INDEX" Now, from the original posts I had thought we we had eratic performance on a load. If we are doing repeated create cluster index on a table I would expect performance times to change especially if we don't drop the table and recreate it. a create cluster index will physically reorder the data on disk If the data is already in the right order then the sort process will take no time at all. This will significantly improve time to create the cluster index. Additionally if the table has been sorted once it may still already be in the memory cache the second time you run the create cluster.
"scottishpoet" <dryburghj@yahoo.com> wrote in message news:1127924651.415910.218520@z14g2000cwz.googlegroups.com... > Neil, > > spotted this in this thread ... > > But, if we disable kaio (this is Solaris, so it's substituting block > for > character devices), we get a consistent performance every time. We > have > repeated this 20 or > > This is not how to disable KIO on any platform. > > Substituting block for character devices will introduce performance > problems. Thanks Poet. How would you disable kaio on Solaris?
"scottishpoet" <dryburghj@yahoo.com> wrote in message news:1127925723.954279.292270@g43g2000cwa.googlegroups.com... > Neil, > > I spotted this too ... > > "CREATE CLUSTER INDEX" > > Now, from the original posts I had thought we we had eratic > performance on a load. If we are doing repeated create cluster index on > a table I would expect performance times to change especially if we > don't drop the table and recreate it. Thanks Poet. The original problem was that all sorts of processes - update SQL, data loads, index builds, UPDATE STATISTICS - have been showing erratic run times. Obviously in order to raise a meaningful case with IBM we need to find a reporducible test case that illustrates the problem. This we have done with a create cluster index, but we have easily have found some other example. So please don;t too hung up on the actual example: it's a general problem. All you say above is correct but misses the point: we get sporadic run-times with kaio enabled, and get consistent times with it disabled (ie using block instead of character devices). And in my related case, we get I/O rates of x pages/second when a restore is initiated with kaio and it takes 20 minutes. The same restore on the same Informix server on the same hardware initiated with kaio disabled - ie using block devices - runs at x/40 and takes 10 hours plus.
yes the performance on block decvices will be really poor. Informix uses character special devices. to disable KIO you set an environment variable, KIOOFF I think, or you use a cooked file. I don't believe KIO works with cooked files but I may be wrong in that respect. I have seen many systems even back in online 4 and 5 which has been "serious performance problem" and I have discovered one or all the devices has been block special devices. When we revert to character special the problem goes away. It may be there is a bottleneck somewhere and when you move to block special devices the bottleneck goes away becasue the throughput is so bad. using block special devices without setting the KIO environment variable will probably just use KIO on the block special devices. I don't really believe it is "turning KIO off" here that is resolving the eratic issue but the fact youare using block special devices and t introduces further performance problems.
fromthe online manual Kernel-Asynchronous I/O The database server uses KAIO when the following conditions exist: The computer and operating system support it. A performance gain is realized. The I/O is to raw disk space. Block special devices are still raw devices so we should continue to use KAIO here. Youneed to use cooked files to not use KAIO by default. The manual also says to use character special devices when youconfigure raw disk space. >From the IBM support site knowledge base : Turn off KAIO by setting KAIOOFF=1 in the UNIX user environment (informix or root) that starts the IBM Informix Dynamic Server instance. If you disable KAIO then you have to configure the ONCONFIG configuration file parameter NUMAIOVPS to (2 * number_of_chunks) or 6, whichever is greater. So I was wrong with KIOOFF Kernel-Asynchronous I/O The database server uses KAIO when the following conditions exist: The computer and operating system support it. A performance gain is realized. The I/O is to raw disk space.
Neil Truby wrote: > "scottishpoet" <dryburghj@yahoo.com> wrote in message > news:1127924651.415910.218520@z14g2000cwz.googlegroups.com... > >>Neil, >> >>spotted this in this thread ... >> >>But, if we disable kaio (this is Solaris, so it's substituting block >>for >>character devices), we get a consistent performance every time. We >>have >>repeated this 20 or >> >>This is not how to disable KIO on any platform. >> >>Substituting block for character devices will introduce performance >>problems. > > > > > > Thanks Poet. > > How would you disable kaio on Solaris? > > Set KAIOOFF=1 in the server's environment before startup. Art S. Kagel
"scottishpoet" <dryburghj@yahoo.com> wrote in message news:1127943930.029805.160100@g44g2000cwa.googlegroups.com... > yes the performance on block decvices will be really poor. Informix > uses character special devices. > > to disable KIO you set an environment variable, KIOOFF I think, or you > use a cooked file. I don't believe KIO works with cooked files but I > may be wrong in that respect. > > I have seen many systems even back in online 4 and 5 which has been > "serious performance problem" and I have discovered one or all the > devices has been block special devices. When we revert to character > special the problem goes away. > > It may be there is a bottleneck somewhere and when you move to block > special devices the bottleneck goes away becasue the throughput is so > bad. using block special devices without setting the KIO environment > variable will probably just use KIO on the block special devices. I > don't really believe it is "turning KIO off" here that is resolving the > eratic issue but the fact youare using block special devices and t > introduces further performance problems. Yes, I believe you are right, thank you. This is also the answer I got from IBM Tech Support. Running with kaio truly disabled as you suggest - it's KAIOOFF=1 as you and others later pointed out - on the character devices gives broadly equivalent performance to that using kaio.