[置顶] AI时代内容精选

摘要: AGENT ROUTER ai-gateway 安装记录 AI Gateway Kind 归属地图 ENVOY envoy源代码分析(一)--从零开始 envoy源代码分析(二)--用bazel编译 envoy源代码分析(三)--主框架概览 envoy源代码分析(四)--xDS配置API envoy 阅读全文
posted @ 2024-05-15 11:34 toong 阅读(421) 评论(0) 推荐(0)

[置顶] 前AI时代内容精选

摘要: tengine/ingress/k8s k8s集群从0到1安装部署 tengine-ingress 源代码分析 tengine独立编译运行方法-不依赖k8s+ingress环境 tengine源代码分析(一)-- 组件分析与编译运行 tengine源代码分析(二)--连接配置与C程序的LUA ten 阅读全文
posted @ 2020-05-25 21:02 toong 阅读(5610) 评论(1) 推荐(0)

envoy离线编译方法

摘要: 先在能上网的机器上编译一次 export ENVOY_DOCKER_BUILD_DIR=/home/tong/Source/envoyproxy/envoy-build-cache-20260914 export BAZEL_BUILD_EXTRA_OPTIONS="--config=openssl 阅读全文
posted @ 2026-09-16 17:56 toong 阅读(3) 评论(0) 推荐(0)

Kubernetes AI Gateway Kind 归属地图

摘要: https://tony-caotong.github.io/classic_site/kubernetes-ai-gateway-kind-map.html 阅读全文
posted @ 2026-08-19 17:44 toong 阅读(5) 评论(0) 推荐(0)

kubuntu通过flatpak安装软件

摘要: snap不好用,经常出现中文输入法不好用的问题。配了几次也改不好。 现如今,改用 flatpak 。 安装 sudo apt install flatpak 设置商店 flatpak remote-add --if-not-exists flathub https://dl.flathub.org/ 阅读全文
posted @ 2026-07-06 18:20 toong 阅读(23) 评论(0) 推荐(0)

ai-gateway 安装记录

摘要: 背景 ai-gateway是envoy的另一个项目。 https://aigateway.envoyproxy.io/ 现在都ai/agent了,非常方便。甚至不用自己动手,所以后续的文章也不会再写那么细的细节, 只写个脉络,为的是理解机制。 Get Started https://aigatewa 阅读全文
posted @ 2026-07-06 17:22 toong 阅读(8) 评论(0) 推荐(0)

家用台式工作站软件配置

摘要: 前文 家用台式工作站硬件配置 1 阿里云 1 块钱的域名 2 阿里云 ddns 配置 3 accesskey获取 点击右上角头像,点击窗口中的 acesskey 4 ddns-go 我的家里路由器有DDNS功能,略。 5 ufw 底层是iptables, ufw使用非常简单,见下图的示例: 6 fa 阅读全文
posted @ 2026-07-01 16:29 toong 阅读(15) 评论(0) 推荐(0)

envoy源码分析(十五)-- DDOS HTTP/2 Bomb CVE-2026-47774 安全漏洞

摘要: 漏洞介绍 https://access.redhat.com/zh_CN/security/vulnerabilities/RHSB-2026-007 https://blog.calif.io/p/codex-discovered-a-hidden-http2-bomb https://githu 阅读全文
posted @ 2026-06-18 14:37 toong 阅读(23) 评论(0) 推荐(0)

envoy源码分析(十四)-- XDS的启动流程

摘要: 一 程序启动后的,主流程的核心是 RunHelper 的构造函数 二 它即启动的worker的主循环,也启动了master的主循环 三 master(admin) 的异步任务注册 init_manager的初始化会依次调用各个插件的初始化。 init_manager->target_handles_ 阅读全文
posted @ 2026-04-28 12:09 toong 阅读(3) 评论(0) 推荐(0)

P2P与FRP与websocket

摘要: P2P是什么 peer to peer, 点对点,去中心化。 圆锥型NAT是什么 类型 规则 比喻 对P2P打洞的友好度 完全圆锥型NAT​ 映射建立后,任何外部IP和端口都能通过该映射访问内网主机。 你家开了一扇固定的门(公网端口),全世界任何人都能进来。 极高,是P2P最理想的环境。 受限圆锥型 阅读全文
posted @ 2026-04-15 16:19 toong 阅读(62) 评论(0) 推荐(0)

ros2入门(零)-- 难点与挑战

摘要: 恭喜你熬过了环境配置这一关!进入 ROS 2 和真正的机器人开发阶段,挑战才刚刚开始。机器人开发是一个极其典型的多学科交叉领域,它不仅仅是写代码,还需要考虑物理世界的各种不确定性。 基于你目前正在配置 Docker 和 NVIDIA 运行时的背景,我为你梳理一下 ROS 2 与机器人开发的核心重点与 阅读全文
posted @ 2026-03-04 11:24 toong 阅读(8) 评论(0) 推荐(0)

ros2入门(二)-- 基本概念

摘要: 还是沿着官方的tutorial路线进行学习: https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Nodes/Understanding-ROS2-Nodes.html 该部分主要通过ros2 C 阅读全文
posted @ 2026-03-04 10:27 toong 阅读(3) 评论(0) 推荐(0)

envoy源码分析(十三)-- WASM

摘要: 一,概述 envoy语境下的WASM是envoy运行第三方代码的一种方式,有两个特性: 1 插件式 2 沙箱式 其借用WASM机制,该机制是浏览器运行插件的方式,全称 webassembly 下面是全文摘要的思维导图 二,envoy-wasm 为了实现上述功能,envoy支持一种extension, 阅读全文
posted @ 2026-02-09 14:26 toong 阅读(6) 评论(0) 推荐(0)

python运行虚拟化环境

摘要: 1 创建虚拟化环境 python3 -m venv myvenv 2 进入虚拟化环境 source ./myvent/bin/activate 3 如果不是用bash,用fish或者zsh source ./myvent/bin/activate.fish 或 source ./myvent/bin 阅读全文
posted @ 2026-01-26 10:42 toong 阅读(27) 评论(0) 推荐(0)

大模型从0到1

摘要: 一,大模型扫盲 https://datawhalechina.github.io/so-large-lm/#/ 二,机器学习 https://developers.google.com/machine-learning/guides?hl=zh-cn https://developers.googl 阅读全文
posted @ 2026-01-20 18:03 toong 阅读(41) 评论(0) 推荐(0)

envoy源码分析(十二)-- XDS/GRPC

摘要: XDS XDS 现在是cncf的一个标准了。 它是由envoy的xds接口演化出来的 数据面 接口,并且现在还在持续演化中。 https://github.com/cncf/xds 现在它的定义,一部分在 cncf/xds 里,一部分在envoy里,未来会弄到一起。 XDS由grpc承载。 GRPC 阅读全文
posted @ 2026-01-15 19:37 toong 阅读(5) 评论(0) 推荐(0)

绑定网卡中断后是否需要设置RFS

摘要: 答案是看需求。 在典型的网络转发场景里,有三个典型的计算块 worker,软中断,硬中断。 三个放在一个CPU上运行,效率最高,但是没法利用多核能力。 所以,可以给worker 绑定一个CPU A,给网卡中断绑定一个CPU B。 这时候,软中断和硬中断都在CPU B上。 此时,设置一下 RFS,软中 阅读全文
posted @ 2026-01-09 15:45 toong 阅读(20) 评论(0) 推荐(0)

linux socket reuse port 小测试

摘要: nginx就是 reuse port的, 指多个socket 绑在同一个 IP+port上进行监听。 内核会为其新建连接进行负载均衡。 随手做了个小测试如下: 代码 // 简单的单线程TCP服务器 #include <stdio.h> #include <stdlib.h> #include <st 阅读全文
posted @ 2026-01-06 19:28 toong 阅读(22) 评论(0) 推荐(0)

envoy源码分析(十一)--性能分析

摘要: 主线程性能 如 envoy源码分析(八)--main线程专项分析 的分析,主线程有如下几部分功能: 1 xds消息处理 2 主动健康检查 3 admin接口请求处理 4 state信息周期合并 5 state sink 插件调用。 随着配置量增长,主动健康检查 与 admin 接口请求, 将成为主线 阅读全文
posted @ 2026-01-06 16:57 toong 阅读(3) 评论(0) 推荐(0)

envoy源码分析(十)--事件机制专项分析

摘要: 简述 envoy 是异步事件驱动的。使用了libevent库来实现。 libevent开启了多线程支持,evthread_use_pthreads(),这个API会打开线程锁。允许跨线程的事件操作。 envoy 有一个master线程,多个worker线程。每个线程有自己的event_fd。 在各线 阅读全文
posted @ 2025-12-26 18:33 toong 阅读(4) 评论(0) 推荐(0)

envoy源码分析(八)--main线程专项分析

摘要: 1 框架启动分析 三件事: 1 StrippedManBase 构造 作为MainCommon的base成员。 关键成员: server_, init_manager_ 2 server instance 初始化 3 server run 3a worker run 在listener manage 阅读全文
posted @ 2025-12-18 15:50 toong 阅读(5) 评论(0) 推荐(0)

envoy源码分析(九) -- circuit breakers

摘要: 故名思意,就是防环。方式类似限速,超过一定值之后,增量的请求将被限制。是cluster级别的, 所以,如果有限速需求,或规格限制需求的话,天然在这个结构里做,也十分的不错。 如上图所示。 circuit breakers对象在ClusterInfo类中初始化。 ClusterInfo对象是Clust 阅读全文
posted @ 2025-12-17 14:28 toong 阅读(4) 评论(0) 推荐(0)

现代C++

摘要: 现代C++跟以前的C++(98),可以说根本不是同一种语言。 手册 https://www.cppreference.com/ C++之父 C++之旅:https://book.douban.com/subject/36596125/ 电子版:https://github.com/Kikou1998 阅读全文
posted @ 2025-10-24 16:57 toong 阅读(50) 评论(0) 推荐(0)

envoy timeout 说明

摘要: 自下而上: TCP-> TLS -> HTTP -> STREAM -> ROUTE(业务层) 5层,有各自的超时设置。 1 HTTP conn manager 设置envoy对http连接到超时管理。 闲超时:idle_timeout 默认值 1小时 可以通过comm_http_protocol_ 阅读全文
posted @ 2025-08-29 18:30 toong 阅读(153) 评论(0) 推荐(0)

观察中断的脚本 /proc/interrupts

摘要: CPU太多,中断太大,屏幕太小。 mpstat,也不是很方便。弄了个脚本。 丑陋。但有效 #! /bin/bash function dump() { cat /proc/interrupts |sed 's/^ //g' | awk ' NR==1 { # 第一行获取CPU核心数量(从标题行计算) 阅读全文
posted @ 2025-08-15 15:56 toong 阅读(55) 评论(0) 推荐(1)

openssl查看编译时选项设置的方法

摘要: 总忘,备忘一下。 perl configdata.pm --dump config运行完成的时候,也会提示: 阅读全文
posted @ 2025-08-01 21:48 toong 阅读(43) 评论(0) 推荐(0)

内核ipsec转发优化方法

摘要: 主要优化点就是利用多核SMP的并行能力。 方法一: pcrypt 提高ipsec多核并行能力的优化方法之一 (实验了一下: 完全不行) 方法二: 每CPU SA https://docs.strongswan.org/docs/latest/features/per-cpu-sas.html htt 阅读全文
posted @ 2025-07-24 11:41 toong 阅读(57) 评论(0) 推荐(0)

提高ipsec多核并行能力的优化方法之一

摘要: 用linux内核的pcrypt module 只能解决并行加解密的问题,esp的报文序号问题还是会一样需要串行处理。 https://wiki.strongswan.org/projects/strongswan/wiki/Pcrypt https://www2.strongswan.org/doc 阅读全文
posted @ 2025-07-23 19:20 toong 阅读(50) 评论(0) 推荐(0)

tc qdisc 的burst如何设置

摘要: rate和burst的是tc qdisc进行限速的基本参数。 rate很直观,就是我们需要的带宽限速值,如500mbit。那么burst如何设置? 简单的说,burst的最小值是rate的10分之一。当然也不能太大,太大会影响延迟,这个没有明确的定性,经验值上限是5分之一? 下面是分析: 从man手 阅读全文
posted @ 2025-07-21 17:03 toong 阅读(128) 评论(2) 推荐(0)

bash模拟netstat取值的脚本

摘要: 如题 #! /bin/bash function netstat() { file="$1" Key="$2" res=`cat $file` title=`echo "$res" |grep $Key |head -n 1` value=`echo "$res" |grep $Key |tail 阅读全文
posted @ 2025-07-21 14:56 toong 阅读(16) 评论(0) 推荐(0)

linux内核对MSI网卡队列的smp_affinity亲和CPU选择

摘要: 如题 linux内核对MSI网卡队列的smp_affinity亲和CPU是如何进行选择的? 答案是:只选smp_affinity_list中的第一个有效CPU。 例子 给268号中断设置5-8CPU时,所有中断都被5号CPU处理 改成4-8后,所有中断都被4号CPU处理。 内核代码 通过如下内核代码 阅读全文
posted @ 2025-07-16 16:30 toong 阅读(107) 评论(2) 推荐(0)

bash多并发--进程池数量控制

摘要: function ping_target() { local target=$1 timeout 0.5 ping $target -c 1 > /dev/null if [ "$?" == "0" ] then echo "ping succ: $target" >> "$RESULT_FILE" 阅读全文
posted @ 2025-07-11 17:39 toong 阅读(25) 评论(0) 推荐(0)

bash单例模式

摘要: LOCK_FILE="/tmp/test.lock" if [ -e "$LOCK_FILE" ] then PID="`cat $LOCK_FILE`" kill -0 $PID 2>/dev/null if [ "$?" = "0" ] then echo "I am running PID: 阅读全文
posted @ 2025-07-08 16:57 toong 阅读(29) 评论(0) 推荐(0)

linux 分析中断

摘要: 设置中断 cat /proc/interrupts |grep eth0|awk -F":" '{print $1}' |awk '{print "cat /proc/irq/"$1"/smp_affinity_list"}' cat /proc/interrupts |grep eth1|awk 阅读全文
posted @ 2025-07-08 16:52 toong 阅读(43) 评论(0) 推荐(0)

linux 查看 ipsec 丢包

摘要: cat /proc/net/xfrm_stat netstate -s ip -s xfrm state ip -s link show ipsec0 阅读全文
posted @ 2025-07-08 16:39 toong 阅读(37) 评论(0) 推荐(0)

linux内核rps与rfs机制分析

摘要: 在多核时代。 做linux网络优化时,如果是硬件网卡,可以通过配置硬件多队列的方式,开启多核并行处理。 如果是单队列的网卡,或者vethernet这种软件网卡。可以配置RPS,进行软件分发。 (如果是开启了多队列的硬件网卡,一般建议不需要开启RPS) RPS是指,收到包之后,用四元组做hash,选择 阅读全文
posted @ 2025-07-08 15:22 toong 阅读(135) 评论(0) 推荐(0)

linux获取CPU利用率的快捷命令

摘要: mpstat -P ON -u 1 1 |grep Average |grep -v 'CPU' |grep -v all | awk '{if($2!=999 && $2!=998) print "cpu_id="$2" usage="100-$12}' 阅读全文
posted @ 2025-07-04 19:19 toong 阅读(31) 评论(0) 推荐(0)

开启openssl legacy的方法

摘要: 使用命令行 /usr/local/openssl-3.0.13/bin/openssl ciphers -provider default -provider legacy -v -provider-path /usr/local/openssl-3.0.13/lib64/ossl-modules/ 阅读全文
posted @ 2025-06-19 18:17 toong 阅读(369) 评论(0) 推荐(0)

envoy 容器编译环境的制作方法

摘要: 基础镜像 sudo docker pull openeuler/openeuler:24.03-lts 打造镜像 dnf install clang vim wget shadow-utils sudo util-linux findutils xz git libstdc++ libstdc++- 阅读全文
posted @ 2025-06-06 20:17 toong 阅读(2) 评论(0) 推荐(0)

envoy源代码分析(七)-- ssl

摘要: 如何使用openssl 官方有个库,专门干这个的。 https://github.com/envoyproxy/envoy-openssl 选好分支,有一些分支还没有合入代码呢,未必好使。我现在用的是v1.32 主要是看,根目录下,有没有 openssl 和 bssl-compat 这两个目录。 也 阅读全文
posted @ 2025-05-30 16:02 toong 阅读(4) 评论(0) 推荐(0)

量子计算是什么

摘要: 量子计算以量子力学为基础,设计实现了量子门与量子电路,从而完成量子计算。 如下的deepseek的答案摘录: 1. 量子门是什么?​​ 想象你有一个神奇的「开关」,这个开关不光能开和关,还能让灯处于​​半开半关的叠加状态​​——这就是量子门的作用! ​​经典门​​:类似电灯开关,要么开(1)要么关( 阅读全文
posted @ 2025-05-14 11:57 toong 阅读(170) 评论(0) 推荐(0)

envoy源代码分析(六)--listener与endpoint

摘要: 工厂 有一批工厂类,都是静态的,可以通过名字获取它们,如: Factory* factory = Registry::FactoryRegistry<Factory>::getFactory(name); 它们的定义,是通过宏完成的: REGISTER_FACTORY(DefaultListener 阅读全文
posted @ 2025-05-13 11:51 toong 阅读(5) 评论(0) 推荐(0)