Re: ide drives performance issues, maybe related with buffer cache.

From: insecure
Date: Fri Aug 15 2003 - 13:36:47 EST


On Friday 15 August 2003 18:39, John Newbie wrote:
> >How do you copy files? cp? dd? Midnight Commander? ;)

Use dd if you want to eliminate 'small buffer' problem.
With dd you can control buffer size with bs=NNN.
I found that mc is rather suboptimal...

OTOH kernel have to take care of that...
Hmm let me test it on my 2.4.21 box:

hda: 234441648 sectors (120034 MB) w/2048KiB Cache, CHS=14593/255/63, UDMA(66)
hdc: 87930864 sectors (45021 MB) w/2048KiB Cache, CHS=87233/16/63, UDMA(33)

# hdparm /dev/hda;hdparm /dev/hdc
/dev/hda:
multcount = 16 (on)
I/O support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 0 (off)
geometry = 14593/255/63, sectors = 234441648, start = 0

/dev/hdc:
multcount = 16 (on)
I/O support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 5473/255/63, sectors = 87930864, start = 0

# hdparm -Tt /dev/hda
/dev/hda:
Timing buffer-cache reads: 128 MB in 0.88 seconds =145.45 MB/sec
Timing buffered disk reads: 64 MB in 2.33 seconds =27.47 MB/sec

# hdparm -Tt /dev/hdc
/dev/hdc:
Timing buffer-cache reads: 128 MB in 0.92 seconds =139.13 MB/sec
Timing buffered disk reads: 64 MB in 2.91 seconds =21.99 MB/sec

Copying ~600M iso from hdc to hda, Midnight Commander:

# nmeter t4 b
21:17:41.0126 bio 0 0
21:17:42.0125 bio 0 0
21:17:43.0125 bio 0 0
21:17:44.0124 bio 32k 0
21:17:45.0124 bio 7.8M 204k
21:17:46.0127 bio 9.5M 0
21:17:47.0122 bio 12M 0
21:17:48.0122 bio 12M 0
21:17:49.0121 bio 7.0M 0
21:17:50.0121 bio 7.5M 216k
21:17:51.0120 bio 15M 4096
21:17:52.0120 bio 13M 13M
21:17:53.0119 bio 10M 15M
21:17:54.0118 bio 9.5M 16M
21:17:55.0118 bio 9.7M 15M
21:17:56.0118 bio 9.5M 7.1M
21:17:57.0116 bio 9.5M 0
21:17:58.0117 bio 12M 10M
21:17:59.0115 bio 9.8M 15M
21:18:00.0179 bio 12M 13M
21:18:01.0114 bio 5.1M 18M
21:18:02.0114 bio 10M 148k
21:18:03.0113 bio 10M 72k
21:18:04.0118 bio 14M 9.9M
21:18:05.0112 bio 11M 16M
21:18:06.0112 bio 8.3M 17M
21:18:07.0111 bio 5.1M 12M
21:18:08.0112 bio 14M 0
21:18:09.0110 bio 11M 9.9M
21:18:10.0111 bio 11M 13M
21:18:11.0109 bio 9.5M 17M
21:18:12.0108 bio 6.6M 16M
21:18:13.0110 bio 8.2M 0
21:18:14.0107 bio 10M 0
21:18:15.0107 bio 9.3M 9.9M
21:18:16.0108 bio 3.2M 22M
21:18:17.0105 bio 12M 736k
21:18:18.0106 bio 13M 0
21:18:19.0104 bio 10M 17M
21:18:20.0100 bio 8.6M 26M
21:18:21.4004 bio 8.7M 4096
21:18:22.0104 bio 6.1M 212k
21:18:23.0098 bio 8.8M 0
21:18:24.0198 bio 13M 13M
21:18:25.0201 bio 9.0M 20M
21:18:26.0097 bio 13M 13M
21:18:27.0196 bio 15M 16M
21:18:28.0195 bio 7.0M 12M
21:18:29.0195 bio 16M 640k
21:18:30.0200 bio 16M 11M
21:18:31.0094 bio 15M 16M
21:18:32.0193 bio 8.3M 20M
21:18:33.0192 bio 4.5M 14M
21:18:34.0192 bio 17M 0
21:18:35.0191 bio 13M 14M
21:18:36.0191 bio 10M 17M
21:18:37.0190 bio 5.6M 14M
21:18:38.0190 bio 10M 236k
21:18:39.0189 bio 3.0M 0
21:18:40.0190 bio 3.6M 0
21:18:41.0188 bio 3.3M 0
21:18:42.0188 bio 3.7M 19M
21:18:43.0187 bio 3.5M 12M
21:18:44.0186 bio 3.0M 0
21:18:45.0186 bio 3.0M 0
21:18:46.0186 bio 10M 1.8M
21:18:47.0185 bio 15M 9.9M
21:18:48.0184 bio 11M 17M
21:18:49.0184 bio 3.7M 16M
21:18:50.0183 bio 13M 400k
21:18:51.0183 bio 13M 10M
21:18:52.0182 bio 6.9M 19M
21:18:53.0181 bio 180k 8.2M
21:18:54.0181 bio 4096 236k
21:18:55.0180 bio 0 0
21:18:56.0179 bio 0 0
21:18:57.0179 bio 0 0
21:18:58.0179 bio 0 0

Ok, now with dd bs=50M:

# nmeter t4 b
21:21:26.0096 bio 0 0
21:21:27.0200 bio 0 0
21:21:28.0095 bio 1.7M 0
21:21:29.0195 bio 8.6M 0
21:21:30.0194 bio 9.0M 0
21:21:31.0194 bio 14M 352k
21:21:32.0276 bio 11M 0
21:21:33.0093 bio 4.7M 4096
21:21:34.0204 bio 2.5M 760k
21:21:35.0091 bio 9.7M 0
21:21:36.0191 bio 16M 248k
21:21:37.0190 bio 15M 1.8M
21:21:38.0198 bio 5.7M 7.1M
21:21:39.0189 bio 5.3M 20M
21:21:40.0233 bio 10M 14M
21:21:41.0094 bio 10M 10M
21:21:42.0243 bio 10M 16k
21:21:43.0091 bio 11M 20k
21:21:44.0222 bio 2.2M 12M
21:21:45.0090 bio 7.3M 18M
21:21:46.0205 bio 12M 16M
21:21:47.0088 bio 10M 5.7M
21:21:48.0188 bio 11M 28k
21:21:49.0187 bio 9.2M 1.4M
21:21:50.0191 bio 2.3M 18M
21:21:51.0186 bio 11M 15M
21:21:52.0187 bio 11M 14M
21:21:53.0185 bio 12M 2.0M
21:21:54.0196 bio 12M 48k
21:21:55.0184 bio 385k 18M
21:21:56.0185 bio 12M 16M
21:21:57.0183 bio 10M 15M
21:21:58.0184 bio 11M 420k
21:21:59.0182 bio 10M 0
21:22:00.0222 bio 5.0M 1.3M
21:22:01.0081 bio 136k 22M
21:22:02.0181 bio 2.2M 17M
21:22:03.0180 bio 10M 316k
21:22:04.0181 bio 11M 4096
21:22:05.0179 bio 12M 0
21:22:06.0179 bio 12M 8.8M
21:22:07.0178 bio 1.7M 12M
21:22:08.0177 bio 0 25M
21:22:09.0176 bio 5.2M 8.2M
21:22:10.0176 bio 10M 0
21:22:11.0176 bio 9.1M 0
21:22:12.0176 bio 10M 108k
21:22:13.0174 bio 9.2M 4.0M
21:22:14.0193 bio 6.2M 4.2M
21:22:15.0175 bio 8.7M 20M
21:22:16.0174 bio 13M 16M
21:22:17.0172 bio 16M 10M
21:22:18.0183 bio 11M 108k
21:22:19.0171 bio 0 24M
21:22:20.0175 bio 128k 17M
21:22:21.0170 bio 16M 0
21:22:22.0170 bio 17M 0
21:22:23.0170 bio 16M 7.0M
21:22:24.0168 bio 100k 25M
21:22:25.0168 bio 24k 24M
21:22:26.0175 bio 32k 10M
21:22:27.0167 bio 12M 12k
21:22:28.0257 bio 16M 10M
21:22:29.0066 bio 14M 14M
21:22:30.0165 bio 5.5M 19M
21:22:31.0164 bio 296k 364k
21:22:32.0164 bio 14M 0
21:22:33.0163 bio 2.6M 0
21:22:34.0163 bio 3.2M 0
21:22:35.0163 bio 4.3M 0
21:22:36.0163 bio 3.3M 172k
21:22:37.0164 bio 3.5M 0
21:22:38.0164 bio 3.2M 4096
21:22:39.0160 bio 2.8M 0
21:22:40.0160 bio 8.8M 0
21:22:41.0159 bio 3.6M 208k
21:22:42.0159 bio 7.6M 22M
21:22:43.0158 bio 15M 14M
21:22:44.0167 bio 13M 11M
21:22:45.0157 bio 13M 180k
21:22:46.0158 bio 21k 13M
21:22:47.0156 bio 5.1M 18M
21:22:48.0156 bio 7.5M 20M
21:22:49.0155 bio 100k 11M
21:22:50.0154 bio 0 0
21:22:51.0154 bio 4096 204k
21:22:52.0153 bio 0 0
21:22:53.0153 bio 0 0
21:22:54.0152 bio 16k 0
21:22:55.0152 bio 0 0
21:22:56.0151 bio 32k 116k

Hmm... lets try dd if=/dev/hdc of=dummy.iso count=12 bs=50M
in order to rule out 'source file is fragmented' theory...

# nmeter t4 b
21:24:45.0090 bio 0 0
21:24:46.0198 bio 0 0
21:24:47.0193 bio 0 0
21:24:48.0193 bio 0 244k
21:24:49.0195 bio 0 0
21:24:50.0192 bio 0 0
21:24:51.0191 bio 9.6M 0
21:24:52.0191 bio 21M 0
21:24:53.4651 bio 18M 884k
21:24:54.0486 bio 6.6M 520k
21:24:55.0185 bio 22M 0
21:24:56.0211 bio 20M 0
21:24:57.0091 bio 10k 18M
21:24:58.0183 bio 10M 14M
21:24:59.0183 bio 11M 11M
21:25:00.0182 bio 11M 7.9M
21:25:01.0182 bio 16M 0.9M
21:25:02.0190 bio 16k 14M
21:25:03.0181 bio 9.1M 16M
21:25:04.0181 bio 5.5M 22M
21:25:05.2880 bio 22M 292k
21:25:06.0223 bio 13M 0
21:25:07.0084 bio 1024 20M
21:25:08.0189 bio 3.5M 13M
21:25:09.0182 bio 21M 0
21:25:10.0182 bio 23M 4.2M
21:25:11.0198 bio 1.5M 15M
21:25:12.0180 bio 2.7M 20M
21:25:13.0180 bio 10M 11M
21:25:14.0212 bio 11M 12M
21:25:15.0083 bio 14M 6.0M
21:25:16.0204 bio 10M 6.6M
21:25:17.0080 bio 5.7M 18M
21:25:18.0173 bio 11M 9.9M
21:25:19.0172 bio 4.1M 17M
21:25:20.0172 bio 21M 336k
21:25:21.0204 bio 7.1M 5.9M
21:25:22.0077 bio 0 27M
21:25:23.0255 bio 11M 13M
21:25:24.0072 bio 16M 3.8M
21:25:25.0169 bio 21M 220k
21:25:26.0187 bio 642k 16M
21:25:27.0168 bio 10M 15M
21:25:28.0168 bio 11M 11M
21:25:29.0168 bio 11M 7.6M
21:25:30.0184 bio 16M 252k
21:25:31.0167 bio 2.6M 20M
21:25:32.0167 bio 11M 11M
21:25:33.0165 bio 10M 13M
21:25:34.0168 bio 17M 4.1M
21:25:35.0164 bio 7.6M 7.7M
21:25:36.0265 bio 0 24M
21:25:37.0163 bio 13M 0
21:25:38.0163 bio 22M 116k
21:25:39.0162 bio 14M 10M
21:25:40.0162 bio 4096 25M
21:25:41.0161 bio 1024 26M
21:25:42.0161 bio 14M 6.4M
21:25:43.0160 bio 20M 52k
21:25:44.0177 bio 15M 0
21:25:45.0160 bio 1024 26M
21:25:46.0158 bio 113k 7.1M
21:25:47.0158 bio 4096 236k
21:25:48.0158 bio 0 0
21:25:49.0159 bio 180k 0
21:25:50.0157 bio 0 0
21:25:51.0156 bio 0 0
21:25:52.0156 bio 0 68k
21:25:53.0155 bio 236k 0
21:25:54.0154 bio 68k 0

What can I say? You're rught, it's bursty and not quite
up to max speed...
--
vda
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/