keepalived https健康检查性能优化
来源:互联网 发布:ajax datatype json 编辑:程序博客网 时间:2024/05/20 05:08
转载请注明出处: http://blog.csdn.net/hliyuxin/article/details/43018309
之前线上LVS如果https健康检查的rs 配置较多,会出现cpu利用率高的问题。通过工具测试发现,整个https健康检查过程中,cpu耗时主要发生在SSL_connect()函数上,也就是握手阶段。
下面我们来看ssl协议,主要有以下几个步骤:1. Client -> Server:Client Hello
2. Server -> Client:Server Hello, Certificate, Server Hello Done
3. Client -> Server:Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
4. Server -> Client:Change Cipher Spec, Encrypted Handshake Message
5. Client -> Server:Application data
6. Server -> Client:Application data
在这几个阶段中,算法复杂度最高的就是第3步,这一步也是整个ssl协议中的关键,这一步是客户端使用服务器的公钥加密,将生成的会话密钥传给服务器。这个加密方式是非对称加密算法(RSA或DH),非对称加密有致命的缺点就是加解密效率太低,很少应用在实际通信中应用,所以SSL协议只在握手阶段使用,用于协商传输阶段的对称密钥。
所以,要提高https健康检查的性能,首先需要减少交换会话密钥的动作,因为ssl会话有reuse的功能,所以我们对每个rs的健康检查,保存一个ssl_session的数据结构,每次通讯尽量reuse上一次发起健康检查的session。
在线下环境进行了测试,keepalived使用rr算法,配置2540个rs,使用https健康检查。测试结果如下:
图中可以看出,CPU使用率在优化之后有了很大的改善,但是隔300s又有一次飙高,这是由于后端nginx中ssl session的默认超时时间是5min, 超时之后要重新协商key, 引发cpu升高。
0 0
- keepalived https健康检查性能优化
- keepalived健康检查 HTTP_GET
- keepalived健康检查 HTTP_GET .
- keepalived HTTP_GET健康检查配置
- Keepalived健康检查方式配置
- keepalived健康检查方式配置笔记
- keepalived http的自定义健康检查
- CentOS7 Keepalived+LVS 负载均衡 后台节点健康检查
- oracle 数据库性能健康检查脚本[转帖]
- HTTPS性能优化
- HTTPS性能优化实践
- HTTPS 性能优化
- HTTPS 性能优化技巧
- 健康检查
- KeepAlived+Redis | 高可用 | 主从复制 | 健康检查 | 故障自动切换
- 最近在学习LVS(Linux virtual Server)高可用,Keepalived用于健康检查
- 腾讯HTTPS性能优化实践
- HTTPS协议性能与优化
- TreeSet
- ubuntu 14修改启动模式 关闭启动图形界面
- Java项目classpath 详解 及 获取方法
- oracle 导入.dmp文件
- Linux 下挂载硬盘的 方法 (2)----逻辑卷扩容硬盘
- keepalived https健康检查性能优化
- 织梦程序使用教程
- Unity开发 ios android 给美术提Icon的尺寸需求
- mysqldump: Got error: 1556: You can't use locks with log tables. when doing LOCK TABLES
- Spring3 MVC 深入研究
- jquery 整合用用法-使用jquery操作session
- vx系统下查找内存被篡改的一种方法
- Spring Framework源码(十三):SpringMVC之从ModelMap到页面渲染
- opoa