load average

Posted by 夏泽民

在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行)。(另外,它们在苹果公司的Mac电脑上也适用。) 显示”load average”,它的意思是”系统的平均负荷”,里面有三个数字,我们可以从中判断系统负荷是大还是小。 它们的意思分别是1分钟、5分钟、15分钟内系统的平均负荷。 平均负荷为0;当CPU工作量饱和的时候,平均负荷为1。



fasthttp

Posted by 夏泽民

fasthttp是golang下的一个http框架,顾名思义,与原生的http实现相比,它的特点在于快,按照官网的说法,它的客户端和服务端性能比原生有了十倍的提升。它的高性能主要源自于“复用”,通过服务协程和内存变量的复用,节省了大量资源分配的成本。工作协程的复用协程的复用可以参见​workerpool.go​ https://github.com/valyala/fasthttp 减少[]byte的分配,尽量去复用它们 两种方式进行复用:



channel

Posted by 夏泽民

并发问题一般有下面这几种:



opentracing

Posted by 夏泽民

在Go 1.7,我们有一个新包/ HTTP / httptrace提供了一个方便的机制,观察一个HTTP请求时会发生什么 分布式跟踪是监测和分析微服务架构系统,导出结果到为X-TRACE,如谷歌的Dapper和Twitter的Zipkin 。 它们的底层原理是分布式环境传播 ,其中涉及的某些元数据与进入系统的每个请求相关联,并且跨线程和进程边界传播元数据跟随请求进出各种微服务调用。 如果我们为每个入站请求分配一个唯一的ID并将其作为分布式上下文的一部分,那么我们可以将来自多个线程和多个进程的各种性能分析数据合并到统一的表示我们系统执行请求的“跟踪”中。 分布式跟踪需要使用Hook钩子和上下文传播机制来测试应用程序代码(或其使用的框架)。 没有良好的API为开发人员提供在编程语言之间内部一致性,那就无法绑定到指定的跟踪系统。 2015年10月一个新的社区形成,催生了OpenTracing API,一个开放的,厂商中立的,与语言无关的分布式跟踪标准。你可以阅读更多关于Ben Sigelman有关OpenTracing动机和设计原理背后的文章 。 https://opentracing.io/ https://zipkin.io/ https://github.com/openzipkin/zipkin https://github.com/openzipkin/zipkin-go https://github.com/opentracing/opentracing-go



httptrace

Posted by 夏泽民

net/http/httptrace主要是用于追踪客户端的 Request 请求过程中发生的各种事件及行为,在标准库 net/http/httptrace/trace.go 中定义了一个叫 ClientTrace 的结构体,它包含了一系列的钩子函数 hooks 作为成员变量 // ClientTrace is a set of hooks to run at various stages of an outgoing HTTP request. type ClientTrace struct { GetConn func(hostPort string) GotConn func(GotConnInfo) PutIdleConn func(err error)



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required