系统与网络

浏览该分类下的所有文章

SSE与Nginx流式传输排障实战

AI 接口启用了流式输出,页面却仍要等待数秒才整段显示,问题未必出在模型。本文沿着应用写出、Nginx 转发、SSE 解析与前端消费四个环节展开排查,用可运行的 Java 探针及本地对照实验,说明响应缓冲开关为何不能代替证据。随后解析请求缓冲、心跳与超时、首字节与首个有效事件之间的差异,并补充断线重连、任务幂等和资源清理的设计边界,帮助开发者建立从复现、定位到修复验证的完整方法,避免盲目增加超时或全局关闭缓冲。

用PSI看懂Kubernetes资源压力

线上接口出现延迟尖刺时,我们通常先看 CPU、内存和磁盘使用率。但这些指标只能说明资源“用了多少”,无法直接回答业务线程“因为资源不足等待了多久”。Linux PSI 从任务停顿时间出发,量化 CPU、内存和 I/O 竞争对工作负载造成的真实影响。本文将结合 Linux、cgroup v2、Kubernetes、Prometheus 和 Java 服务排障,讲清 PSI 指标的读取方式、关联分析思路、告警策略以及常见资源问题的优化方向。

CXL 4.0如何重构内存扩展与资源池化

传统服务器内存长期绑定在CPU插槽和DDR通道上,容易出现部分机器闲置、部分机器容量不足。CXL通过CXL.io、CXL.cache和CXL.mem,将处理器、加速器与外接内存纳入一致性互连,并支持扩展、池化和动态分配。本文解析CXL 4.0的128 GT/s链路、Bundled Port与RAS增强,说明Linux如何将CXL内存映射为DAX或System RAM,并讨论数据库、AI及Java服务采用分层内存时的适用场景、性能边界与上线检查项。

用Linux DAMON看懂冷热页与主动回收

传统内存监控能告诉我们进程占用了多少内存、系统是否出现压力,却很难回答哪些页面正在频繁使用、哪些页面长期闲置。Linux DAMON 通过区域化采样、动态合并与拆分,在可控开销下持续刻画内存访问频率和冷热变化;DAMOS 进一步把观测结果转化为统计、回收、LRU 优先级调整和内存迁移策略。本文从原理、工具对比、实战命令到生产灰度方案,讲清如何用 DAMON 定位无效常驻内存,并降低直接回收、kswapd 抖动和延迟尖峰风险。

Linux sched_ext如何用eBPF重构CPU调度

Linux 通用调度器擅长兼顾公平与吞吐,却不了解哪些线程位于业务关键路径。sched_ext 自 Linux 6.12 进入上游后,允许开发者使用 eBPF 编写 CPU 调度策略,并通过用户态程序动态加载、替换和回退。本文从 select_cpu、enqueue、dispatch 与 DSQ 讲清任务调度链路,结合 Meta 广告服务和 GPU 训练机群案例分析工作负载定制调度的价值,同时说明它与 Kubernetes、cgroup CPU 权重及限额的兼容风险,并给出实验、压测、灰度、监控与自动回滚方法,帮助团队判断何时值得将性能优化深入到操作系统调度器层。

WebAssembly服务端插件化终于补上关键一环

2026年发布的WASI 0.3,将async func、stream<T>与future<T>纳入WebAssembly组件模型的Canonical ABI,解决异步状态难以跨组件传播的问题。它简化HTTP、文件与Socket接口,使不同语言组件能够按统一契约组合,并以能力授权限制文件、网络和环境访问。本文梳理Wasm、组件模型与WASI的关系,分析其在插件系统、规则引擎和多租户扩展中的价值、局限,以及Java项目的渐进式落地路径。

Java上下文传播正在改变

随着 Java 应用从传统 CRUD 走向 AI Agent,userId、tenantId、traceId、conversationId 等上下文需要在更复杂的调用链与并发任务中稳定传播。JDK 25 正式定稿的 ScopedValue,为“上游绑定、下游只读、任务结束自动失效”的场景提供了比 ThreadLocal 更清晰的语义。本文结合虚拟线程、结构化并发与 Spring AI ToolContext,分析 ScopedValue 的设计原理、适用边界、异步传播限制及安全注意事项,并给出 Spring Boot 项目的上下文分层与迁移思路,帮助开发者重新理解 Agent 时代的 Java Context 设计。

Netty4.2如何用io_uring重构网络I/O

Netty 4.2 将 io_uring 从孵化模块升级为正式传输实现,使 Java 网络服务能够通过提交队列与完成队列批量交付 I/O。本文从 epoll 的就绪模型讲起,拆解 SQ、CQ、multishot 与缓冲区环,给出 Maven 依赖、运行时探测、三级回退和调优示例,并说明它与虚拟线程的边界。文章还分析 Docker seccomp、内核开关、原生库分类器与压测误区,帮助开发者判断 io_uring 是否适合生产环境。

Nginx线上配置https示例文件

本文提供了一个完整的 Nginx HTTPS 配置示例。全局设置包括日志、连接数、文件发送等;在 `http` 块中定义日志格式和基本参数。`server` 块一监听 443 并启用 SSL,指定域名、证书路径、私钥,并通过 `proxy_pass` 将请求转发至后端 IP+端口,同时设置真实 IP 头。另设 80 端口 `server`,使用 `rewrite` 永久重定向所有请求到 HTTPS。最后通过 `include /etc/nginx/conf.d/*.conf` 加载其他配置文件。

计算机网络(一)

本文系统介绍了网络分层模型与关键协议。先阐述OSI七层及其功能,再对比简化的五层TCP/IP模型。说明客户端通过URL确定协议,指出TCP属传输层、HTTP/FTP属应用层。详细解析TCP报文结构、流量与拥塞控制,概述HTTP特性与常用方法、FTP工作方式及状态管理。介绍传输层的复用/分用、端口及流量、拥塞控制,列举常见应用层协议。最后说明TCP/IP四层结构的开放、硬件无关优势,并解释ARP的工作原理和缓存机制。

计算机网络(二)

TCP四次挥手过程及原因:客户端FIN→服务器ACK→服务器FIN→客户端ACK,分别关闭双向数据通道,最后ACK确保对方已收到。TCP粘包/拆包源于流式无边界传输,可通过包头+长度或分隔符在应用层解决;Nagle算法可导致粘包,关闭TCP_NODELAY可缓解。TCP与UDP对比:TCP面向连接、可靠、具拥塞控制,适用于对可靠性要求高的场景;UDP无连接、快速、无保证,适合实时传输。UDP实现可靠性需在应用层加入超时重传和序号确认。TCP报文序号字段占4字节,缓冲区用于存储待发送和接收的数据,实现流控和重传。

计算机网络(三)

本文系统阐述了网络协议中的关键概念,包括TCP异常终止的RST报文及其触发场景;在应用层实现可靠UDP的机制与已有协议(RUDP、RTP、UDT);TCP报文乱序的处理方式;IP地址的A/B/C/D/E类划分及分类的路由意义;IPv4与IPv6在地址长度、报文结构、功能等方面的差异;HTTP与HTTPS的区别及HTTPS的工作原理、混合加密模式和支持的加密算法。