Cameron Harr wrote:
Cameron Harr wrote:
This is still too high. Considering that each CS is about 1 microsecond you can estimate how many IOPS's it costs you.
Dropping scst_threads down to 2, from 8, with 2 initiators, seems to make a fairly significant difference, propelling me to a little over 100K IOPs and putting the CS rate around 2:1, sometimes lower. 2 threads gave the best performance compared to 1, 4 and 8.

Just as a status update, I've gotten my best performance with scst_threads=3 on 2 initiators, and using a separate QP for each drive an initiator is writing to. I'm getting pretty consistent 112-115K IOPs using two initiators, each writing with 2 processes to the same 2 physical targets, using 512B blocks. Adding the second initiator only bumps me up by about 20K IOPs, but as all the CPUs are pegged around 99%, I'll take that as a bottleneck. Also, as a note from Vlad's advice, the CS rate is now around 70K/s on 115K IOPs, so it's not too bad. Interrupts (where this thread started), are around 200K/s - a lot higher than I thought they'd go, but I'm not complaining. :)

Actually, what you did is tune your workload so it put nicely on all the participating threads and CPU cores, so all the threads stay each on its own CPU core and gracefully pass commands during processing to each other being busy almost all the time. I.e. you put your system in some kind of resonance. If you change your workload just a bit or Linux scheduler changed in the next kernel version, your tuning would be destroyed.

So, I wouldn't overestimate your results. As I already wrote, the only real fix is to remove all the unneeded context switches between threads during commands processing. This fix would work not only on carefully tuned artificial workloads, but on real life ones too. 5-10 threads participating in a single command processing reminds me the famous set of histories about how many people of some kind is necessary to change a burnt out lamp ;)

Thanks for the help.
Cameron
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to