Skip to content

Daily Study

更新: 5/31/2025 字数: 0 字 时长: 0 分钟

Daily Plan

#todo

  • [ ]

Eino

流式处理的优势

架构设计的支持:

  • 在graph中,节点和边都内置了流式处理的逻辑,自动处理数据流的类型转换和状态传递,通过全局状态存储中间结果,支持流式处理的上下文延续
  • 在类型安全上,定义了统一的流式处理方法,同时会在编译阶段就验证流式接口的正确性(例如文本流输入到图像处理) 核心机制:
  • 自动流式转换:包括非流式输入的流式封装和流式数据的动态分发
  • 流式数据控制:包括流合并、流复制和流式分支 特性:
  • 零拷贝流传输:流数据在组件间通过共享内存传递,避免重复序列化/反序列化(如 JSON 解析开销),采用带缓冲的通道(Buffered Channel)实现生产者和消费者的解耦,提升吞吐量
  • 流式并发控制:自动平衡多消费者负载(如同时处理多个检索结果流),防止数据倾斜,动态调节流速,避免下游处理能力不足导致的积压。

内存异常排查步骤

  1. 初步检查与判断:首先看能不能复现异常,通过查看系统日志,在 var/log下查看包含 “oom” 或 “kill” 的日志条目,或者使用dmesg,确认是否发生了OOM Killer。使用top或者htop查看实时内存的使用情况,识别占用内存最多的线程或者进程,使用vmstat查看物理内存与Swap空间的监控。
  2. 通过初步排查,如果定位到具体OOM日志,再通过日志定位到响应的进程PID,再通过报错定位到具体的函数或者代码位置。
  3. 可以使用GDB或者Valgrind工具,对疑似进程做内存泄露检测、定位位置及调用栈。
  4. 若软件层面排查无错,则可以继续排查硬件层面,用一些内存测试工具进行检测。

高级分析:

  1. 使用专用性能分析工具
    • 在 Linux 上,可使用 perfheaptrackmassifValgrind 工具链)等,对内存分配、带宽与延迟进行剖析,定位热点分配点。
    • 在容器环境中,可借助 cAdvisorPrometheusGrafana 等,监控容器内存使用并设置告警。
  2. 内存带宽和延迟测试
    • 对内存底层性能进行评估,可使用 sysbench --test=memory 或 Intel 的 memtester,测量内存读写带宽及稳定性。
    • 若怀疑平台内存通道故障,可测试跨 NUMA 节点的内存访问延迟。

CPU异常排查步骤

初步信息收集、进程级诊断、系统级分析、深入性能剖析与预防优化五个阶段

  1. 初步信息收集:通过top/htop/vmstat/mpstat等工具获取实时和历史CPU使用数据,继续初步定位,是否为整体还是特定核/进程过载,
  2. 进程级分析:识别到高CPU进程,结合ps/pidstat/perf工具分析其具体行为,判断是系统调用还是用户态程序导致
  3. 系统级分析:进入proc目录,查看其中的stat/interrupts中断情况,分析是否是I/O瓶颈或内核态导致
  4. 深入定位与分析:使用perf,ebpf等工具,结合火焰图和热点分析,找出热点函数和循环热点
  5. 预防优化:建立监控告警(Prometheus+Grafana

菜就多练

本站访客数 人次 本站总访问量