- 博客(6)
- 资源 (1)
- 收藏
- 关注
转载 上下文切换技术
简述在进一步之前,让我们先回顾一下各种上下文切换技术。不过首先说明一点术语。当我们说“上下文”的时候,指的是程序在执行中的一个状态。通常我们会用调用栈来表示这个状态——栈记载了每个调用层级执行到哪里,还有执行时的环境情况等所有有关的信息。当我们说“上下文切换”的时候,表达的是一种从一个上下文切换到另一个上下文执行的技术。而“调度”指的是决定哪个上下文可以获得接下去的CPU时
2016-10-10 18:50:46 2712
原创 openssl中SSL_get0_raw_cipherlist的bug
在openssl的1.0.2版本中对外提供了一个SSL_get0_raw_cipherlist(s, plst)。这个接口有两个参数,第一个是SSL*, 第二个是字符数组。如果第二个参数传入的参数是NULL的时候返回的是对应的cipher占用字节的大小,如果不为NULL,则会将相应数据拷贝至该数组中。但是如果client发送的是无版本号的错误ssl握手信息,会造成设置ssl的method为ssl2
2015-03-26 19:05:08 1031
原创 修改openssl s_client使用录制ClientHello的信息对go中的https进行一致性测试
背景:nginx的https支持使用的是openssl库,对于大部分线上请求都能正确处理,可以大部分需求。但是在go语言中的https功能。但是其并未经过长期的考验,没有经过大项目的检验,所以一致性尤为重要。方法:1、升级nginx中的代码,从线上抽样打印ssl的ClientHello信息。 2、分析日志获取ClientHello信息。
2015-03-26 11:34:39 2467
原创 修改wrk支持测试https的各个cipher性能
要从http升级到https,这里https需要测试性能。一般用wrk就可以测出相关性能,但是有时候为了测试某个套件的性能,wrk是不能满足的。不过可以通过修改相关代码添加这个功能。wrk发送https的时候用的ssl相关的库来自于openssl,所以如果你要添加对cipher(套件)的测试只需要了解openssl添加套件的机制和api就行了。一般情况下,我们常用的工具都会把openssl
2015-03-26 11:32:18 3493
原创 golang的profile
假如你对代码的性能要求比较高,这段对你应该有作用。在golang中的工具中有一个工具可以搜集cpu profile信息。具体使用方法:在代码中引用runtime/pprof包即可。//main.gopackage mainimport “runtime/pprof” int main() { f, err := os. Crea
2015-03-26 11:30:44 2168
原创 Golang的GC信息
一、GC信息的信息收集设置环境变量GODEBUG=gctrace=1。使用方法,如果程序为myserver。正常的启动方法为./myserver,如果需要收集GC信息启动方式如下GODEBUG=gctrace=1 ./myserver。二、GC信息分析gc5(6): 11+12+357+77 us, 0 -> 1 MB, 4294 (5261-967) objec
2015-03-26 11:28:49 1521 1
常见的几种负载均衡详解
2014-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人