Once GREAT option for improving OSD performance with spinning disk, esp slow disk, is to use a redundant array of SSDs for the Bluestore Journal. If you've got SSD space to spare you could even put the RocksDB on SSD too. But that needs a LOT more space. The Journal only needs a couple of GiB per OSD. RocksDB needs a LOT more.
One important note: If you're using CephMgr for deployment of your OSDs you may run into problems if you don't use hardware RAID for your OSD Journal SSD arrays. That's because they only want to add one, normal disk, not MD devices.
There are probably ways around this. Plus I'm thinking that deploying the OSD docker containers manually might be worth looking at too.