Hi all,
Hopefully you can help. I have four Samsung 2TB drives in a RAIDZ array. They are given to zfs as complete disks, meaning their stripe offset is 0.
They are connected into the fileserver with Adaptec 1430SA SATA controllers. This is the performance I'm getting:
Straight dd from the raw disks:
gstat shows the disks as 100% busy and reading 135-140MBytes/sec.
dd through the filesystem:
gstat showing disk reads as 90-100% busy at 45-50MBytes/sec read.
Straight dd to one of the disks (same disk type, but uninited):
with gstat showing the disk 90+% busy and 130MBytes/sec.
dd to the pool
with gstat showing all four disks as 100% active at 25-30MBytes/sec.
CPU barely registers - the system thinks it is 95+% idle (CPU is an AMD 630 quad core).
Any ideas?
Hopefully you can help. I have four Samsung 2TB drives in a RAIDZ array. They are given to zfs as complete disks, meaning their stripe offset is 0.
Code:
diskinfo -v /dev/ada3
/dev/ada3
512 # sectorsize
2000398934016 # mediasize in bytes (1.8T)
3907029168 # mediasize in sectors
4096 # stripesize
0 # stripeoffset
3876021 # Cylinders according to firmware.
16 # Heads according to firmware.
63 # Sectors according to firmware.
S2H7J1CB702251 # Disk ident.
They are connected into the fileserver with Adaptec 1430SA SATA controllers. This is the performance I'm getting:
Straight dd from the raw disks:
Code:
dd if=/dev/ada1 of=/dev/null bs=1m count=10000 &
dd if=/dev/ada2 of=/dev/null bs=1m count=10000 &
dd if=/dev/ada4 of=/dev/null bs=1m count=10000 &
dd if=/dev/ada6 of=/dev/null bs=1m count=10000 &
gives:
10000+0 records out
10485760000 bytes transferred in 72.958848 secs (143721568 bytes/sec)
10000+0 records in
10000+0 records out
10485760000 bytes transferred in 75.176198 secs (139482446 bytes/sec)
10000+0 records in
10000+0 records out
10485760000 bytes transferred in 75.296263 secs (139260032 bytes/sec)
10000+0 records in
10000+0 records out
10485760000 bytes transferred in 75.555696 secs (138781860 bytes/sec)
dd through the filesystem:
Code:
$ dd if=/storage/temp/test.file of=/dev/null bs=1m count=10000
10000+0 records out
10485760000 bytes transferred in 57.488728 secs (182396799 bytes/sec)
Straight dd to one of the disks (same disk type, but uninited):
Code:
$ dd if=/dev/zero of=/dev/ada3 bs=1m count=10000
10000+0 records in
10000+0 records out
10485760000 bytes transferred in 77.051038 secs (136088498 bytes/sec)
dd to the pool
Code:
$ dd if=/dev/zero of=/storage/temp/test.file bs=1m count=10000
10000+0 records in
10000+0 records out
10485760000 bytes transferred in 191.702491 secs (54698089 bytes/sec)
with gstat showing all four disks as 100% active at 25-30MBytes/sec.
CPU barely registers - the system thinks it is 95+% idle (CPU is an AMD 630 quad core).
Any ideas?