apis 仓库的 proto→Go gRPC 代码生成流程
apis 仓库的 proto→Go gRPC 代码生成流程 本文以 apis 仓库(gitlab.infini-ai.com/mizar/apis)真实代码为例,讲清从一份 .proto 一路生成到 Go gRPC 代码的完整流程:protoc 工具链、各 protoc-gen-* 插件、go_package/module= 如何决定落地路径、grpc-gateway 怎么把 HTTP 反代到 gRPC、CI 怎么守门保证生成物与 proto 同步。 读完你能回答"protoc 和 protoc-gen-go 是什么关系"“一份 proto 怎么同时产出消息结构/gRPC stub/HTTP 网关/校验/深拷贝/mock”“为什么 CI 跑 make generate && git diff 能卡住没同步的提交”。 一、apis 仓库的定位:proto 作为 single source of truth apis 是一个多服务 API 定义仓库——所有对外的 RPC/HTTP 接口、消息结构、字段校验,都以 pb/<group>...
容器里的 PID 1 与僵尸进程——dumb-init / tini / k8s pause 全解
容器里的 PID 1 与僵尸进程——dumb-init / tini / k8s pause 全解 本文把"容器里 PID 1 为什么是个问题、僵尸进程怎么来的、dumb-init/tini 怎么兜、k8s pause 和 shareProcessNamespace 怎么协作"一次讲清。读完你能回答面试官"为什么容器里 Python/Java 当 PID 1 会漏僵尸"“dumb-init 和 tini 干了什么”"k8s pause 容器是不是 PID 1"“shareProcessNamespace 开不开有啥区别”。 前置:fork/exec/wait、僵尸 vs 孤儿的基础见本人《操作系统接口》篇。本文只讲容器场景。 一、僵尸进程快速回顾(容器视角) 子进程 exit 后内核不能立刻释放 task_struct——父进程可能要查退出码,于是子进程留一个"僵尸"状态(Z):代码/数据/堆栈都释放了,只剩 task_struct 和退出码等父进程 wait 收尸。父进程 wait/waitp...
insmod 实操指南——从写一个内核模块到加载运行
insmod 实操指南——从写一个内核模块到加载运行 本文讲清 insmod:它干什么、内核模块(.ko)是什么、insmod 与 modprobe 的区别、模块签名这个最常见的坑,并给一个可直接照抄跑通的 hello world 模块从编写→编译→加载→验证→卸载全流程。 前置:ring0/ring3、内核态概念见本人《x86 体系结构基础》篇。内核模块就是跑在 ring0、和内核同地址空间的代码。 一、insmod 是什么、内核模块又是什么 **内核模块(Loadable Kernel Module, LKM)**是一段可动态加载到内核地址空间、跑在 ring0 的代码,扩展内核功能而不需重启、不需重编内核。文件后缀 .ko(kernel object)。典型用途:设备驱动、文件系统、网络协议、安全 hook(如 alcor-chaos 的 libnvml-hijack/libixml-hijack 就是劫持库的内核态配合件)。 insmod(insert module)是用户态命令,把一个 .ko 文件加载进内核。它本质是调一次 init_module(2) / fi...
PaaS 平台 GPU 资源复用与超卖技术深度解析
PaaS 平台 GPU 资源复用与超卖技术深度解析 目录 背景与动机 技术架构概览 核心技术实现 自定义Container Runtime实现容器间GPU共享 ShadowPod与虚拟设备实现Pod级GPU复用 Steal GPU动态超卖机制 多GPU类型适配 关键数据结构 核心代码解析 模拟面试问答 背景与动机 业务需求 在PaaS平台的实际运营中,我们遇到了两类核心问题: 用户侧需求: 推理服务实例资源利用率低:部分推理服务只占用1卡资源,但存在浪费 开发机资源紧张:租户内资源有限,多用户开发机需要共享GPU 平台侧需求: 提升集群资源利用率 对已分配但空闲的GPU进行超卖 增加平台收入和毛利率 技术选型 经过对市场现有方案的调研: 方案类型 代表方案 局限性 厂商官方解决方案 Nvidia MIG、MPS、vGPU 授权成本高;场景局限;不便于整合不同厂商 API劫持隔离方案 vCUDA、OrionX、cGPU 侵入业务层;开发维护难度大;存在性能损失 轻量调度共享方案 gpushare-device-plugin 依赖调度逻辑变更...
PaaS 平台 GPU 资源复用与超卖探索
PaaS 平台 GPU 资源复用与超卖探索 背景&动机 PaaS平台用户使用上的需求: 部分推理服务的实例占用的资源较少,即使只占用1卡也存在浪费,因此希望将多个推理服务的实例部署到同一个GPU上,从而节约成本。 由于租户内资源有限,往往只有一两个节点,但有十几个用户的开发机。因此希望支持多个用户的开发机共用一个节点的GPU。 PaaS平台侧从提高集群利用率、增加收入和毛利率的角度出发,也存在下面的需求: 通过对未分配/已分配空闲GPU超卖进一步增加收入 在节点GPU资源全部调度分配后,以CPU任务的方式继续超卖节点的CPU和内存资源 为了满足用户需求,需要支持GPU复用功能,吸引用户使用平台,同时为了提升集群资源利用率和毛利率,需要进一步探索闲时复用方案,对于已经售卖但处于空闲状态的资源进行超卖。 本文将介绍PaaS侧在解决上面的问题过程中,在GPU资源的复用与超卖方面的一些探索。所谓复用或者超卖,都建立在把同一个GPU同时分配给多个实例的基础上,属于一种GPU共享技术。 GPU共享一般是指在多个用户或应用程序之间共享GPU资源的技术。这种技术通过虚拟化、...
LLM Agent 安全——攻击面、代表性论文与防御体系
LLM Agent 安全——攻击面、代表性论文与防御体系 本文是 LLM Agent 安全方向的论文调研综述。目标:让你在面试时能讲清"agent 安全和纯 LLM 安全有什么本质区别"“indirect prompt injection 为什么是 agent 的头号威胁”“instruction hierarchy / spotlighting / sandbox 这些防御各自的边界在哪”“为什么 prompt injection 至今没有银弹”。 内容基于公开论文与 OWASP LLM Top 10 等。每节标注代表性论文,便于顺藤摸瓜深读。 一、为什么 Agent 安全是全新量级的问题 纯 LLM(聊天机器人)最坏也就"说了不该说的话"。Agent 不一样:它会调工具、读写文件、发邮件、花钱、改系统。攻击面从"文本输出"扩到"真实世界副作用",量级跳升。 Agent 和纯 LLM 安全的三点本质差异: 有动作、有副作用:Agent 拿着 API key、shell、浏览器、信用卡。一次被...
MCP 安全与 Prompt Injection 攻防实战
MCP 安全与 Prompt Injection 攻防实战 本文是《LLM Agent 安全》篇的补充实战篇,聚焦两个最该会落地的子题:MCP(Model Context Protocol)生态的 tool poisoning 风险与防护、以及 Prompt Injection 的真实 payload 案例 + 防御代码级落地(Spotlighting / Instruction Hierarchy / 参数校验 / human-in-the-loop)。读完你能回答"MCP 工具描述怎么藏毒"“Rug pulling 是什么”“spotlighting 代码怎么写”“为什么 base64 编码也能防一阵”。 前置:攻击面分类、indirect PI、无银弹根因见《LLM Agent 安全》篇。本文不重复理论,只讲实战形态与落地。 一、MCP 为什么是新的高危攻击面 MCP(Model Context Protocol)让 agent 能像装浏览器扩展一样接外部工具/数据源——stdio、HTTP、SSE 本地或远程 server 暴露 tools/...
LLM 推理的 AF 分离与 PD 分离—— disaggregation 全解
LLM 推理的 AF 分离与 PD 分离——disaggregation 全解 本文讲清现代 LLM 推理 serving 里的两类"分离(disaggregation)“技术:PD 分离(Prefill-Decode 分离) 和 AF 分离(Attention-FFN 分离)。两者都是把原本"混在一起跑"的工作流按资源/瓶颈差异拆开,独立调度、独立优化、必要时独立部署。读完你能回答面试官"为什么要把 prefill 和 decode 拆开”“KV cache 怎么跨节点搬”“attention 和 FFN 为什么能分离”“两者能不能叠加用”。 术语说明:PD 分离是业界共识术语(Splitwise/Mooncake/DistServe)。AF 分离术语相对不那么标准化,本文取Attention-FFN 分离/解耦的含义——把 Transformer 内的 attention 计算与 FFN(MLP) 计算解耦,做算子级或微批级重叠调度(DeepSeek Dual-Batch Overlap 思路)。若你语境里的 AF 另有含义(如 As...
Meta-Evolution Genesis Agent (MEGA)——A Spec-Driven Framework for Bootstrapping Cross-Domain Self-Evolving Agents
Meta-Evolution Genesis Agent (MEGA) Meta-Evolution Genesis Agent (MEGA) · 昵称 元神 A Spec-Driven Framework for Bootstrapping Cross-Domain Self-Evolving Agents 研究构想文档(research idea / position paper draft)。作者:lvzhongrenjie 日期:2026-07-21 关联:自进化智能体研究综述(~/Documents/实习/)、alcor-chaos 排障自进化 agent(已有,作为已验证的一个领域实例) 系统名 MEGA = Meta-Evolution Genesis Agent;Meta-Evolution 命名二阶贡献(进化进化器),Genesis 命名 bootstrap,Agent = M 本身。 0. 一句话 MEGA(元神)是一个 spec-driven 的跨域 meta 进化层:本身是一个 meta-evolver(跑在 Claude Code/Codex...
vLLM 源码精读——高吞吐 LLM 推理引擎全景
vLLM 源码精读——高吞吐 LLM 推理引擎全景 本文基于 vLLM 源码 vllm/v1/(V1 引擎架构)。目标:让你在面试时能从"为什么传统 serving 显存利用率只有 20%“讲到"PagedAttention 的 block 怎么管”、从"prefill/decode 不再分阶段"讲到"continuous batching 的 token-budget 调度"、从"prefix caching + 拷贝写"讲到"V1 的 async scheduler + CUDA Graph + spec decode"。读完这篇,vLLM 这关基本通杀。 一、vLLM 要解决什么问题、为什么面试必问 传统 LLM serving(朴素 batch)有两个致命问题: KV cache 显存碎片化:为每个请求预分配一段连续 KV 显存,请求长短不一→产生大量内部碎片+外部碎片,实测显存利用率常低于 20%;且无法在请求间复用相同前缀。 批处理不连续:朴素做法是"...