Greetings, I've been running performance tests with the grove caching server using several different profiles. One profile was strictly with http transactions and other profiles were with a mix of https using RSA public/private keys and EC (elliptic curve) public/private keys. When using https with EC certificates, grove performed very well. However when RSA public/private keys are employed, there is a significant impact to performance.
I have found that grove performs poorly when RSA keys are employed and grove is compiled using go 1.9.4. At 3k requests per second, the cpu's go to 100% utilization and 50% or more of the transactions time out. With the release of go version 1.11, this performance issue with RSA crypto has been addressed with a patch to the 'math/big.addMulVVW()' function used in the RSA crypto routines. After re-compiling grove with go version 1.11, performance improved quite significantly when using RSA certs. I've attached some of the performance data collected to the issue #2780 <https://github.com/apache/trafficcontrol/issues/2780> If you are using grove, I suggest that you use EC keys public/private TLS keys. If you use RSA keys though, you should make sure that you compile grove with go version 1.11 or higher. I've submitted this issue, #2780 <https://github.com/apache/trafficcontrol/issues/2780>, and a PR, #2781 <https://github.com/apache/trafficcontrol/pull/2781>, that modifies the grove build scripts to check for and use go version 1.11. The docker build scripts have been modified to install and use go version 1.11 to build grove. thanks John Rushford [email protected] -- John Rushford [email protected]
