技术开发 频道

MySQL内置加密和外部加密的性能对比

  高延迟链路的连接性能

  测试数据在我文章的后边会给出。事实上,SSL连接的稳定性受网络延迟的影响。 从上述结果中我们可以看到,在低延迟链路,使用SSL对性能有显著的影响,那么在广域网会怎么样?有可能一种情况下考虑到了网络简单往返时间的延迟,使用 了MySQL内置的SSL支持,混合加密就不会影响太多的性能。 因此,这次测试中,我拆成了两个不同的 Amazon EC2实例(就是上述的设备A和设备B)。 设备C位于加州北部用来当做client, 这次测试是在MySQL集群和Percona服务器下测试,密钥大小范围从0到4096为位。SSL密码组件使用的是默认设置,测试脚本和以前一样需要运 行10次,快速创建100个链接,并且每秒刷新连接结果。当然在测试中,这些原始数据是次要的,我们只是想看一下网络延迟都SSL性能的影响。

  首先, 从 C 到 B (加州北部 到 爱尔兰):

  --- ec2-54-220-212-210.eu-west-1.compute.amazonaws.com ping statistics ---50 packets transmitted, 50 received, 0% packet loss, time 49228msrtt min/avg/max/mdev = 167.851/170.126/177.433/2.289 ms


  接着, 从 C to A (加州北部 to 俄勒冈州):

  --- ec2-54-212-134-221.us-west-2.compute.amazonaws.com ping statistics ---

  50 packets transmitted, 50 received, 0% packet loss, time 49108ms

  rtt min/avg/max/mdev = 42.543/44.648/59.994/3.194 ms


  如我们所料, 很明显测试数据要比横跨一个大陆连接服务器的数值低得多,起码在地理位置上有几百米的距离吧, 但事实证明,排除MySQL集群的反应, 我们看到实际上在性能上不会真的下降那么多。下表比较了从C到B的连接,从C到A的连接。

高延迟链路的连接性能

  以上是几点意见。首先,如果你服务器隔着40ms或170ms远的时候1024位的SSL加密对性能并没有 太大的影响。第二,随着延时的加长,由于SSL加密开销的增加,丢失的连接会影响。 这很有道理, 特别是在一种常见的情况下 (服务器在同一个内网,或者通过TCP连接到同一个服务器), 连接的吞吐性能主要由使用不使用SSL来影响了。 当然,MySQL集群4096-bit加密的价格与Percona服务器相比,以上这些根本就没有任何意义了。有一些特别的手段用来对MySQL集群 4096-bit 加密性能提升,但看起来并没有对Percona服务器影响多少。我不确定这是一个很好的假设,在这两次测试中我都可能说是一个PEBCAT。所以,如果其 他人也在测试,我很好奇的想知道,你是否也得到相同的结构。

  最后思考

  先不论MySQL 5.6.13和4096-bit SSL的问题, 我认为这篇文章追逐要表达的和它的前任讲述的也是十分清晰的(译不懂前任的意思):如果你需要端到端加密你的MySQL传输,MySQL的内置的SSL支持你使用复制或连接池类的工作量,可能也会满足你的需求,但你的应用是需要频繁的创建和销毁大量的连接,只通过SSH隧道的方式你能减轻加密的负载。

  更多精彩尽在2014年4月10日-12日在北京五洲皇冠国际酒店举办的第五届中国数据库技术大会,2月29日之前订票可享受7.8折最低票价。

Facebook专家:Hadoop不足以处理大数据
进入官网了解更多详情

0
相关文章