kernel: dstartio: I/O request repeatedly delayed; block number: %ld, vdn: %ld
This error may be caused by a hardware problem.
This error message is not dangerous and there is no data corruption connected with it unless it is reported in the error log together with other kernel messages that indicate corruption.
If this is an error message, it is a sign of inconsistencies or corruption relating to the asynchronous I/O capabilities of Adaptive Server Enterprise. In this case, the above error message is reported along with other error messages in the Adaptive Server error log.
If this message is accompanied by other error or kernel messages in the Adaptive Server error log, refer to the appropriate section of this manual (by error number or name) to correct the additional errors.
This can be an informational message (occurring by itself, any number of times). If this is a warning message, it is displayed by itself in the Adaptive Server error log. In this case, the message displays in the Adaptive Server error log when:
Adaptive Server is configured for a different rate of concurrent asynchronous I/O requests than the operating system. Every time an I/O request has to be re-queued in Adaptive Server’s I/O queues, there is a decrease in overall performance due to re-queueing overhead.
Adaptive Server is configured for a lower throughput rate of concurrent asynchronous I/O than it can handle.
Asynchronous disk I/O allows Adaptive Server to initiate a disk operation to continue processing other data while the disk operation is completed. This can improve performance and recoverability especially when the master device, the user databases, and transaction logs are on raw disk partitions. For more information on raw disk partitions, refer to the section “File system or raw partition” in the Adaptive Server Enterprise Migration Guide chapter “Making Database Administration Changes.”
The following I/O-related Adaptive Server configuration parameters and operating system parameters play a role when this error occurs:
disk i/o structures – the initial number of block I/O structures at Adaptive Server startup. This is an Adaptive Server configuration parameter.
max async i/os per server – the number of asynchronous I/O requests outstanding at one time for Adaptive Server. This Adaptive Server configuration parameter applies only to multiprocessor machines.
max async i/os per engine – the number of asynchronous I/O requests outstanding at one time for one engine (in the case of multiprocessor machines) and the maximum number of asynchronous I/O requests outstanding at one time for Adaptive Server (in the case of single processor machines). This is an Adaptive Server configuration parameter.
Asynchronous I/O operating system parameters.
Determine the current I/O-related Adaptive Server configuration parameter settings by running the following commands:
1> sp_configure "disk i/o structures" 2> go
1> sp_configure "max async i/os per engine" 2> go
1> sp_configure "max async i/os per server" 2> go
Use the instructions in the sections below to determine appropriate values and then use sp_configure to change the values of disk i/o structures, max async i/os per server, and max async i/os per engine. In general:
Set max async i/os per server to a value less than or equal to the total allowable I/O count for the system on which the server is running.
Set max async i/os per engine to a value less than or equal to max async i/os per server.
Configure the operating system for a higher number of outstanding asynchronous
I/Os using smit. Bring up the smit
aio screen by typing smit aio
at
the AIX prompt. Then, go to the “Change/Show Characteristics
of Asynchronous I/O” screen and raise the “maximum
number of REQUESTS” parameter to 4096.
This change will improve Adaptive Server performance. You will not need to restart the operating system for the change to take effect. For more information on asynchronous I/O, search for “asynchronous” using the info utility.
Also, raise the values of the Adaptive Server I/O-related configuration parameters to 4096 to match the “maximum number of REQUESTS” value in smit.
In Digital UNIX releases before version 3.0 (Digital OSF), the number of outstanding asynchronous I/Os was hard-coded in the operating system kernel in the AIO_MAX parameter (stored in a header file in /sys). Its default value was 64. For those releases, the Adaptive Server I/O-related configuration parameters should be set to 64 so that Adaptive Server can match the operating system's rate of concurrent I/O requests.
In version 3.0 and later releases, you can change the number of outstanding kernel asynchronous I/Os. Refer to the Adaptive Server Enterprise installation and configuration guides for details.
Also, raise the values of the Adaptive Server I/O-related configuration parameters to match the value of the kernel's maximum outstanding asynchronous I/O requests.
Depending on the operating system kernel, the maximum number of outstanding asynchronous I/O requests can be either 50 (on older HP-UX 8.x kernels) or 500 (on patched HP-UX 8.x kernels and default on HP-UX on 9.x kernels). this value is stored in the MAX_CONCURRENT parameter in /usr/include/sio/asynch. Adjust the Adaptive Server I/O-related configuration parameters to match MAX_CONCURRENT.
The error log example below shows the Adaptive Server start-up messages associated with the older 8.x asynchronous I/O driver and its limit of 50 asynchronous requests at one time. Once a later asynchronous patch has been applied or the new operating system version has been installed, this limit is increased to 500.
00: 92/06/04 14:38:07.10 server: Number of blocks left for proc headers: 351. 00: 92/06/04 14:38:07.36 kernel: basis_dioinit: Using older version of asynch I/O driver with “50” concurrent requests 00: 92/06/04 14:38:07.38 server: Opening Master database...
For other operating systems, check your operating system manuals for information about asynchronous configuration issues.
If problems persist, refer to the error documentation in this manual or contact Sybase Technical Support.
Refer to:
The section “File system or raw partition” in the Adaptive Server Enterprise Migration Guide chapter “Making Database Administration Changes”
Your operating system documentation on asynchronous I/O
If you call Sybase Technical Support, have the information on hand that is listed in “Reporting errors”, including the output from sp_configure for I/O-related parameters or listing of your configuration file.