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.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.053 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.