Bug #66567 | my_rnd_ssl() is very expensive for authentication | ||
---|---|---|---|
Submitted: | 28 Aug 2012 7:57 | Modified: | 13 Nov 2012 18:32 |
Reporter: | Yoshinori Matsunobu (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Security: Privileges | Severity: | S5 (Performance) |
Version: | 5.6.6, 5.6.7 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | performance, regression |
[28 Aug 2012 7:57]
Yoshinori Matsunobu
[28 Aug 2012 23:37]
Ben Krug
Connecting to MySQL is now using OpenSSL or yaSSL, as these have greater cryptographic strength than my_rnd(). Other than reverting the code in your build, another option would be to build without yaSSL, so that #if defined(HAVE_YASSL) would return 0. In that case, OpenSSL is used, which is somewhat faster (in our tests, 3 times faster), although my_rnd() will still be much faster than that.
[29 Aug 2012 7:32]
Valeriy Kravchuk
What exact sysbench commands you had used?
[29 Aug 2012 7:36]
Yoshinori Matsunobu
[remove_client]$ sysbench --test=oltp --oltp-table-size=2000000 --max-time=60 --mysql-table-engine=innodb --db-ps-mode=disable --mysql-engine-trx=yes --oltp-read-only --oltp-skip-trx --oltp-dist-type=special --oltp-reconnect-mode=query --oltp-connect-delay=0 --db-driver=mysql --mysql-user=root --mysql-host=$server_host --mysql-port=$server_port --num-threads=100 run
[29 Aug 2012 8:46]
Valeriy Kravchuk
Difference in performance for the same test is clearly visible (5+ times in my case).
[13 Nov 2012 18:32]
Paul DuBois
Noted in 5.6.8, 5.7.0 changelogs. Random number generation during client authentication consumed excessive CPU.