Envoy/Istio 的拥塞流控与背压 - 看遍了冷冷清風吹飄雪 漸厚 📅 2024年04月06日 · ☕ 15 分钟 和所有代理类型的软件一样,Envoy 很重视流控,因为CPU/内存资源是有限的。但流控永远不是一个简单的事情。它牵扯到数据流路径上的所有参与者。本文试图说明白其中的原理与协作关系。
细说 Envoy 的事件与 NetworkFilter 框架 —— 机关算尽太聪明 📅 2023年12月02日 · ☕ 8 分钟 Istio 的流量核心是 Envoy。而 Envoy 的核心是事件架构。明白了事件架构,深入研究 Envoy 就不难了。本文尝试分析 Envoy 的事件与 NetFilter 的设计架构。
Linux 下巨量窗口快速查找切换工具 Rofi —— 键盘总比眼睛快 📅 2023年10月07日 · ☕ 3 分钟 窗口切换是程序员的高频操作,而在今天大屏和巨量窗口环境中,眼和手都不堪重负。如何让心流不被找窗口打断?如果有个工具,只需要输入窗口名关键字就可以完成切换,该多好。Rofi 正是这样一个 Linux 下的窗口快速查找切换工具。
eBPF 求证坊间传闻:Java GC 日志可导致整个 JVM 服务卡顿? 📅 2023年09月23日 · ☕ 9 分钟 实现世界的 Java 应用,都会记录 GC 日志。但不是所有人都知道小小的日志可能导致整个 JVM 服务卡顿。本文尝试用 eBPF 等分析方法,去证明具体环境下,问题的存在与否。
eBPF 求证坊间传闻:mmap + Java Safepoint 可导致整个 JVM 服务卡顿? 📅 2023年09月23日 · ☕ 7 分钟 Java 离不开 Safepoint。但不是所有人都知道方便的 mmap 映射文件,可能会导致整个 JVM 服务由于 safepoint 到达延时而卡顿。本文尝试用 eBPF 等分析方法,去证明具体环境下,问题的存在与否。
分析 Java 应用在 Istio 下的 warm up 📅 2023年07月09日 · ☕ 7 分钟 Java 应用的 warm up(预热),包括类加载、编译、应用自身初始化(如连接池)等。在 Istio 环境下,两个技术栈叠加,又有微妙的化学反应
k8s 容器热替换/重启主进程 - gdb execve syscall 法 📅 2023年06月22日 · ☕ 8 分钟 k8s 环境下,在不停止或重启 container 的情况下,重启应用进程(pid:1),甚至重新加载运行新版本的应用。本文以 gdb 作为工具,调用 execve syscall,去实现这个目标。
k8s 容器热替换/重启主进程 - gdb exec 法 📅 2023年06月18日 · ☕ 6 分钟 k8s 环境下,在不停止或重启 container 的情况下,重启应用进程(pid:1),甚至重新加载运行新版本的应用。本文以 gdb 作为工具,调用应用容器自带的 libc 的 close & exec 法函数,去实现这个目标。