Yeah, metadata ops are going to absolutely kill you. The most important mount option I can imagine helping would be
noatime, which turns off
atime (or "last access time") updates on all files. That'll stop one metadata write for every file access, which might halve your I/O rate (if you read/write each file once) to hundreds of times (if you write once, read many).
noatime also implies
nodiratime, which turns off
atime updates just on directories. If that's a bit too brutal (you need
atime sometimes), then consider
mount(8) explains that one better than I can).
On a hardware level, seriously consider more RAM and a non-volatile cache hardware RAID controller. More RAM helps the kernel cache more data, which reduces (or can even eliminate) read I/O, and the NVRAM cache RAID controller means that your data is safe and secure after it's been written to flash (which is fast), rather than all the way down to the spinning disks (which is slooooow). You can also go SSDs, but they're still significantly slower than NVRAM.