博客 / 列表

MarkZhu - 好心分手 - Istio 網格節點故障快速恢復初探

目錄 開始測試 尋根 TCP half-open keepalive 重傳 timeout Zero window timeout 應用 socket 層的 timeout 設置 TCP_USER_TIMEOUT SO_RCVTIMEO / SO_SNDTIMEO poll timeout

tcp-ip , istio

MarkZhu - 圖解 Istio & Envoy 請求處理流程、超時、熔斷、指標監控 - 加入 http2

💂 關於封面: Tower Bridge watercolor painting by Juan Bosco 📚 摘錄説明: 本文摘自一本我在寫作中的開源書《Istio Envoy 內幕》 中 Envoy 請求與響應調度 一節。如果説你看到的轉載圖片不清,可回到原書。《Istio Envoy 內幕》epub 格式下載 請求與響應調度 相關

代理 , istio , envoy

MarkZhu - Envoy/Istio 連接生命週期與臨界異常 —— 不知所謂的連接 REST

簡介 本文目標:説明 Envoy 連接控制相關參數作用。以及在臨界異常情況下的細節邏輯。目標是如何減少連接異常而引起的服務訪問失敗,提高服務成功率。 近期為解決一個生產環境中的 Istio Gateway 連接偶爾 Reset 問題,研究了一下 Envoy/Kernel 在 socket 連接關閉上的事。其中包括 Envoy 的連接管理相關參數和 Linux 系統網絡編程的細節。寫本文以備忘。

linux-kernel , socket , tcp , istio

MarkZhu - 我的舊書《Envoy Proxy 內幕》

本文介紹我的新開源書籍 - 《Envoy Proxy 內幕》。它是一本專注於 Envoy Proxy 機制和實現深入探討的書。內容主要源於我之前寫的《Istio Envoy 內幕》一書。現在把 Envoy 部分單獨抽出來,重新整理成一本書。這樣做的目的是為了讓讀者更專注於 Envoy 的內容,而免受 Istio 的干擾。有些內容也是 Istio 無關或不適用的。所以現在獨立成書。以後《Isti

envoy , 反向代理

MarkZhu - eBPF 求證坊間傳聞:mmap + Java Safepoint 可導致整個 JVM 服務卡頓?

概述 Java 支持好幾種文件讀取方法,本文要説的是小眾的 mmap(MappedByteBuffer) 以及它與 Safepoint、JVM 服務卡頓之間的關係。本文嘗試用 eBPF 等分析方法,去證明具體環境下,問題的存在與否。 審誤和發佈本文時,我才是二陽後活過來數小時而已,寫了數週的文章實在不想再拖延發布了。如文章有錯漏,還請多多包涵和指正。 引 Java 服務卡頓,是 Java 世界永恆

linux-kernel , jvm

MarkZhu - eBPF 求證坊間傳聞:Java GC 日誌可導致整個 JVM 服務卡頓?

概述 實現世界的 Java 應用,都會記錄 GC 日誌。但不是所有人都知道小小的日誌可能導致整個 JVM 服務卡頓。本文嘗試用 eBPF 等分析方法,去證明具體環境下,問題的存在與否。 審誤和發佈本文時,我才是二陽後活過來數小時而已,寫了數週的文章實在不想再拖延發布了。如文章有錯漏,還請多多包涵和指正。 引 Java 服務卡頓,是 Java 世界永恆的話題之王。想到 Java 卡頓,大部分人的第一

jvm , gc

MarkZhu - 如何測量進程級別或容器級別的 IO 延遲

概述 IO 延遲問題幾乎是每個生產系統都會或多或少遇到的問題。雖然現在 NVMe + SSDs 已經可以到達 10Gbytes/s 的呑吐量,價格也非常親民。但 IO 延遲問題不會消失。因為: 一些基於網絡的的存儲方案,如 Ceph,天然地有不穩定性 SSD / RAIN Controller 本身的不穩定性 在 Linux 下,傳統地,我們有 iostat / sar 等等工具可以看系統

linux-kernel , 運維 , 內核

MarkZhu - 網絡包的內核漂流記 Part 1 - 圖解網絡包接收流程

注,原文來自 https://blog.mygraphql.com/zh... 。如你看到的轉載圖片不清,請回到原文。 目錄 目錄 《網絡包的內核漂流記》系列介紹 風格、樣式、本文的交互閲讀方式 📖 ISO 網絡模型 網絡包接收流程概述 網絡包接收步驟 初始化與配置 IRQ 處理 SoftIRQ 中加載網絡包到內存 S

bpf , linux-kernel , network

MarkZhu - 記一次 Istio 調優 Part 2 —— 飢餓的線程與 SO_REUSEPORT

圖片來自:https://getboulder.com/boulde... 引 話説,在很長一段時間,程序員依賴了摩爾定律。而在它到頭之前,程序員找到了另一個救命稻草:並行/併發/最終一致。而到了今天,不是 Cloud Native / Micro Service 都不好意思打招呼了。多線程,更是 by default 的了。而在計算機性能工程界,也有一個詞: Mechanical Sym

istio , service , envoy