Service Mesh - Istio性能之殇

Service Mesh这个概念在2017年开始爆炸式增长,同时Spring、Linkerd、Istio等Service Mesh的出现实现可谓是百家争鸣,文体两开花。Istio从我当时开始关注的他的0.3版本经过无数的bug fix,2次API更新,已经经历了1.0 release。撰写本文的时候Istio是1.0.3。首先我想说下为什么我们选择Istio作为考量对象:首先考虑通用性,我们业务比较复杂技术栈有Go、node、python... 因此需要一种侵入性较低的方案,而且显然一口气转Spring不太现实。其次考虑稳定性,Istio由Google、IBM、Lyf支持并且已经在IBM...

Continue Reading...

Golang 弹幕服务器优化之一 调度器

在go里的goroutine的调度实现的是 M:N 模型, g、p、m 三者调度逻辑非常复杂涉及到抢占、解绑等等细节,这里就不展开讨论现细节。package main func main() int { return main; } 编译之后汇编结果为 TEXT "".main+0(SB),$0-0 MOVQ (TLS),CX CMPQ SP,(CX) JHI ,16 CALL ,runtime.morestack00_noctxt(SB)函数在运行过程中栈大小可能出现不够用的情况,G被调度时会将 stackguard0 与 ...

Continue Reading...

Golang 弹幕服务器优化之 一 心跳包

TCP协议层提供了个套接字选项SO_KEEPALIVE用于探测TCP链接是否正常,避免僵死链接浪费资源。百毒一搜SO_KEEPALIVE可以看到各种告诉你怎么用。某些情况下的确可以很好工作,但是。。。。参考Linux内核/net/ipv4/tcp_input.c代码static void tcp_keepalive_timer (struct timer_list *t) { struct sock *sk = from_timer(sk, t, sk_timer); struct inet_connection_sock *icsk = inet_csk(sk); ...

Continue Reading...

IDCF日本这个节点回程路由的BBTEC被撤掉了

AS23816 Yahoo Japan Corporation AS17676 Softbank BB Corp. AS24572 Yahoo Japan AS2914 NTT America, Inc.中国方向的BB线路可能因为流量过大被切走了,取而代之的是的IIJ,晚高峰简直要爆炸。 2 210-140-199-253.jp-east.compute.idcfcloud.com (210.140.199.253) 0.353 ms 0.363 ms 0.345 ms 3 158.205.95.57 (158.205.95.57) 0.340 ms...

Continue Reading...

Service Mesh - CNCF新玩具Linkerd

Service Mesh 服务网格这个概念出来不到一年,和K8S相辅相成,他侧重于微服务之间的通信基础架构。基于此实现微服务的高可用、路由、熔断、负载均衡,说白了就是一个大号的nginx里面配了一堆规则,但是目前国内还没有看过哪家公司大规模使用。目前来看Service Mesh都是一些尝试性的实验很多功能还是不完善,限流功能太鸡肋不能做到精确限流做不到针对某些服务限流,降级熔断功能?不存在的。Linkerd 目前最新版本1.3.3官方宣称修复内存泄露,用了比较重的Java框架来实现,测试下来4G内存空载都会炸,话题结束。

Continue Reading...

友情链接