I would assume the spikes are just the cache being flushed on writes. As for the reads showing a similar pattern, do you have the "atime" property on or off? For better performance make sure "atime" is off.
In any case, I'd recommend experimenting with mirroring to see how the performance compares.
Also, depending on the type of data, you could try setting the "sync" property to "disabled." *waits for tomatoes to be thrown at him*
From the zfs(8) man page documentation:
sync=disabled
Synchronous requests are disabled. File system transactions commit to stable storage only on the next DMU transaction group commit, which might be after many seconds. This setting gives the highest performance. However, it is very dangerous as ZFS would be ignoring the synchronous transaction demands of applications such as databases (e.g. Mail, iTunes, iPhoto, Spotlight, etc.). Expert users should only use this option only when all the risks are understood.
Another issue is Spotlight. Try turning it off (mdutil -i off) and see how performance changes.