HTTPS性能深度优化
2015-04-23 11:47:54 来源:我爱运维网 评论:0 点击:
近期对使用https的接入proxy,做了一轮优化,减少了cpu使用,提高了安全性,应用在多个应用接入proxy模块中。优化措施主要有:打开ECDHE支...
近期对使用https的接入proxy,做了一轮优化,减少了cpu使用,提高了安全性,应用在多个应用接入proxy模块中。
优化措施主要有:
逐项说明如下:
1. 打开ECDHE支持
下图是发布前后的cpu对比,cpu降低20%
2.打开http KeepAlive支持
打开KeepAlive后,客户端重用tls连接,减少了https握手次数,从而降低cpu。
对1台机器做了灰度测试,在流量涨了5倍的情况下:
cpu只增加了1倍
流量涨是因为灰度的这台机器保持住了更多的连接。
换算后,预测可以降低60%的cpu
3.openssl升级到1.0.1m,调整了编译选项
鉴于openssl近期连续爆出安全漏洞,这次调整了openssl的编译选项,在编译时禁用掉了ssl2,ssl3,heartbeat等特性,
ssl2,ssl3 由于POODLE漏洞,之前是通过配置关掉的,这次在编译时彻底去掉。
HeartBleed漏洞就出现在heartbeat的代码里;
还去掉了一批已经不安全的算法和特性,例如md4,comp(CRIME攻击) 等
去掉了一批不使用的特性,例如dtls,krb5
还打开了32位时的编译优化,在32位打开了AES-NI等;
并打开ec_nistp_64_gcc_128 选项,优化ECDH性能,预期各种https 服务器和mmcert都会受益。
4. 将comm2里面的aes切换为AES-NI实现
AES-NI是Intel cpu专门用于aes加解密的指令集,使用openssl speed 命令测试,有5-6倍性能提升
软件版本:
AES-NI版本:
目前主流intel X86机型已经普遍支持AES-NI,这次把comm2里面的aes切换为使用EVP系列接口,会在运行时做cpuid检测,在支持的cpu上自动使用AES-NI,
相应服务只需要重新编译上线,即可获得优化。
使用逻辑服务模块做了测试,优化前aes占2.2%的cpu,优化后占0.5%
优化措施主要有:
- 打开ECDHE支持,降低 20% 的cpu
- 打开http KeepAlive支持,预计降低 60%的cpu
- openssl升级到1.0.1m,并在编译时关闭ssl2,ssl3,heartbeats等,提高安全性; 使用 ec_nistp_64_gcc_128 等编译选项,优化性能。
- 将comm2里面的aes切换为AES-NI实现,有5倍性能提升
逐项说明如下:
1. 打开ECDHE支持
下图是发布前后的cpu对比,cpu降低20%
2.打开http KeepAlive支持
打开KeepAlive后,客户端重用tls连接,减少了https握手次数,从而降低cpu。
对1台机器做了灰度测试,在流量涨了5倍的情况下:
cpu只增加了1倍
流量涨是因为灰度的这台机器保持住了更多的连接。
换算后,预测可以降低60%的cpu
3.openssl升级到1.0.1m,调整了编译选项
鉴于openssl近期连续爆出安全漏洞,这次调整了openssl的编译选项,在编译时禁用掉了ssl2,ssl3,heartbeat等特性,
ssl2,ssl3 由于POODLE漏洞,之前是通过配置关掉的,这次在编译时彻底去掉。
HeartBleed漏洞就出现在heartbeat的代码里;
还去掉了一批已经不安全的算法和特性,例如md4,comp(CRIME攻击) 等
去掉了一批不使用的特性,例如dtls,krb5
还打开了32位时的编译优化,在32位打开了AES-NI等;
并打开ec_nistp_64_gcc_128 选项,优化ECDH性能,预期各种https 服务器和mmcert都会受益。
4. 将comm2里面的aes切换为AES-NI实现
AES-NI是Intel cpu专门用于aes加解密的指令集,使用openssl speed 命令测试,有5-6倍性能提升
软件版本:
AES-NI版本:
目前主流intel X86机型已经普遍支持AES-NI,这次把comm2里面的aes切换为使用EVP系列接口,会在运行时做cpuid检测,在支持的cpu上自动使用AES-NI,
相应服务只需要重新编译上线,即可获得优化。
使用逻辑服务模块做了测试,优化前aes占2.2%的cpu,优化后占0.5%
分享到:
收藏
评论排行
- ·Windows(Win7)下用Xming...(92)
- ·使用jmx client监控activemq(20)
- ·Hive查询OOM分析(14)
- ·复杂网络架构导致的诡异...(8)
- ·使用 OpenStack 实现云...(7)
- ·影响Java EE性能的十大问题(6)
- ·云计算平台管理的三大利...(6)
- ·Mysql数据库复制延时分析(5)
- ·OpenStack Nova开发与测...(4)
- ·LTPP一键安装包1.2 发布(4)
- ·Linux下系统或服务排障的...(4)
- ·PHP发布5.4.4 和 5.3.1...(4)
- ·RSYSLOG搭建集中日志管理服务(4)
- ·转换程序源码的编码格式[...(3)
- ·Linux 的木马程式 Wirenet 出现(3)
- ·Nginx 发布1.2.1稳定版...(3)
- ·zend framework文件读取漏洞分析(3)
- ·Percona Playback 0.3 development release(3)
- ·运维业务与CMDB集成关系一例(3)
- ·应该知道的Linux技巧(3)