The following ESAMON display shows dasd performance of a range of devices during experiments with minidisk caching. The advantage of using ESAMON for this experiment is that you can watch the data during the experiment and quickly evaluate performance and modify your experiment as you learn.
The problem being addressed here was high response times for the disks that could be attributed to very long connect times, which in turn created very high device busy.
In the display under response times, there are 5 components:
Response Time: This is total of the I/O components. Service Time: Total of the components, excluding the queue time delays. This is the value used for device busy. In today's technology, 3 to 5 ms is common. Pend Time: This is the protocol time between the channel and the S/390. It is normally less than .3 seconds. Disc Time: Disconnect time is the time that the storage controller spends on seek time and rotational delays. Caching of data in the controller reduces disconnect time. Normally, the first time data is accessed, disconnect time will be in the 10-20 ms range. Connect Time: This is the time the controller is connected to the channel to transmit data. Normally for a 4K block, this should be less than 2 ms on almost all technologies today.
Experiments:
Step 1:
Boot a linux server with default minidisk cache (MDC) enabled.
This ended at 11:31. Note device busy of 90% and more?
and the service times of 24-26 ms? These numbers are above
normal expectations. Step 2: Disable MDC and rerun. Note disconnect,
connect times and device busy are all much lower. And the
I/O rate (SSCH, or Start Subchannels per second) is much
higher. Step 3: Re-enable MDC and rerun. Note the disconnect time
is still lower, but connect time and device busy are high again.
And the I/O rate is lower. Step 4: Boot an alternate linux with MDC disabled. Disconnect
times were high, but the connect time was very low.
Screen: ESADSD2 xxxxxxxxxxxxxxxxxx ESAMON V2.2 05/04 11:14-13:10
1 of 3 DASD Performance Analysis - Part 1 DEVICE 1007-100c 9672 xxxxx
Dev Device %Dev
Analyzing disconnect time:
Disconnect time is impacted in today's technology mostly by cache. If the data has already been accessed and resides in the cache then the disconnect time should be close to zero. In the experiments, when a new linux was brought up, the disconnect time was high. But the 2nd and 3rd time the data was accessed, the disconnect time was very low.
Analyzing connect time:
At the point where data may be read from the rotating disk, controllers have different technologies. Some do a read through, meaning the controller will reconnect immediately to the channel and the data will be transmitted at the disk speed, between 4 and 5 MB per second in today's technology. Some controllers will read the data into cache and then send it over the channel at high speed, up to 17MB/sec. Obviously, the latter will have slight longer disconnect times, but very short connect times - and will have higher throughput potential.
The very long connect times in these experiments is because minidisk cache by default will read in a full track whenever any data on a track is accessed. And it appears that this storage controller does a read through, so is transmitting data at disk speeds.
MDC Track caching has proven to degrade performance on many
applications including data base, shared file system, and now
Linux. Two alternatives exist:
1) Turn off MDC - but this loses many benefits provided to
guest servers running under VM.
2) Convert the linux minidisks to use block cache instead
of track cache. This has to be done manually for each minidisk
either in the directory or with the CP SET MDCACHE command.