- 博客(221)
- 资源 (14)
- 收藏
- 关注
原创 volcano源码分析 - 2调度器
1. cache提供了当前job信息, podgroup信息,pod信息,节点信息的缓存集合,用于后续调度计算时作为参考的基础信息快照。2. 周期性的开启Session, 每次Session中将依次执行加载的各个Action过程(如: enqueue, allocate, preempt, reclaim, backfill)。3. 对于每个action将执行plugin中注册在该action中的对应回调函数。4. 在Session过程中,通过各个action过程,最终完成任务的调度抢占等工作。
2025-04-22 13:53:18
205
原创 volcano源码分析 - 1整体结构
Volcano是下首个也是唯一的基于Kubernetes的容器批量计算平台,主要用于高性能计算场景。它提供了Kubernetes目前缺 少的一套机制,这些机制通常是机器学习大数据应用、科学计算、特效渲染等多种高性能工作负载所需的。作为一个通用批处理平台,Volcano与几乎所有的主流计算框 架无缝对接,如等。它还提供了包括异构设备调度,网络拓扑感知调度,多集群调度,在离线混部调度等多种调度能力。
2025-04-22 10:11:11
769
原创 golang gmp模型分析
就是告诉那些运行时间超过特定阈值(10ms)的G,该让一让了,怎么知道运行时间过长了呢,P里面有一个schedtick字段,每当调度执行一个新的G,并且不继承上个G的时间片时,就会把它自增1,而这个p.sysmontick中,schedwhen记录的是上一次调度的时间,监控线程如果检测到p.sysmontick.schedtick与p.schedtick不相等,说明这个P又发生了新的调度,就会同步这里的调度次数,并更新这个调度时间。实际上监控线程,调度器,GC等工作过程中都会按需执行netpoll。
2025-04-09 11:30:17
1140
转载 golang gc流程分析
我们还是基于上述的三色并发标记法来说, 他是一定要依赖STW的. 因为如果不暂停程序, 程序的逻辑改变对象引用关系, 这种动作如果在标记阶段做了修改,会影响标记结果的正确性。,STW的过程中,CPU不执行用户代码,全部用于垃圾回收,这个过程的影响很大,Golang进行了多次的迭代优化来解决这个问题。A.添加下游对象(nil, B) //A 之前没有下游, 新添加一个下游对象B, B被标记为灰色。正常执行算法逻辑,对象2,3标记为黑色,而对象3,因为对象4已经不会再扫描,而等待被回收清除。
2025-04-08 10:01:59
53
原创 gin 源码分析
这部分并不是 Gin 实现的,而是开篇在 Gin 的介绍里提到的 httprouter 实现的,Gin 使用了 httprouter 来做了这部分的功能。c就像是一根管道,将该次请求相关的所有的函数都串起来了。上文提到,当使用 gin.Default 创建一个 Engine 的时候,会执行 Engine 的 Use 方法导入两个函数,其中的一个是 Recovery 函数的返回值,它又是对其它函数的封装,最后调用到的函数是 CustomRecoveryWithWriter,来看一下这个函数的实现。
2025-04-07 14:31:33
714
原创 Langchain应用-rag优化
RAG,Retrieval-Augmented Generation,中文名检索增强生成,是AI领域非常重要的一种技术方案。其核心作用是给LLM大模型外挂专门的知识库,指导大模型生成更准确的输出。
2025-03-13 13:05:54
639
转载 istio与kubernetes资源关系
Istio的原理是拦截 Kubernetes 中创建 Pod 的事件,然后向 Pod 中注入一个包含 Envoy 的容器,进出 Pod 的流量会被 “劫持” 到 Envoy 进行处理。由于流量被 “劫持” 了,所以 Istio 可以对流量进行分析例如收集请求信息,以及一系列的流量管理操作,也可以验证授权信息。当 Envoy 拦截流量并执行一系列操作之后,如果请求没问题,就会转发流量到业务应用的 Pod 中。
2025-03-01 11:58:37
63
原创 langchain应用-agent
在 LangChain 中,Agent 是一个代理,接收用户的输入,采取相应的行动然后返回行动的结果。Agent 可以看作是一个自带路由消费 Chains 的代理,基于 MRKL 和的基本原理,Agent 可以使用工具和自然语言处理问题。官方也提供了对应的 Agent,包括 OpenAI Functions Agent、Plan-and-execute Agent、的 Agent 等。Agent 的作用是代表用户或其他系统完成任务,例如数据收集、数据处理、决策支持等。
2025-02-19 21:19:31
936
原创 langchain应用-RAG
检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。
2025-02-18 23:40:37
466
原创 kubernetes-cni 框架源码分析
这篇文章主要深入探索 Kubernetes 网络模型,并了解容器、pod 间如何进行通讯。对于网络模型的实现将会在后面的文章介绍。
2025-02-13 23:02:04
957
原创 Kubernetes源码分析-kube-proxy
对于iptables和IPVS模式,kube-proxy的响应时间开销与建立连接相关,而不是与在这些连接上发送的数据包或请求的数量有关。这是因为Linux使用的连接跟踪(conntrack)能够非常有效地将。
2025-02-13 15:23:36
809
原创 kubernetes源码分析-kube-apiserver
基于属性的访问控制(Attribute-based access control - ABAC)定义了访问控制范例,其中通过使用将属性组合在一起的策略来向用户授予访问权限。启用ABAC鉴权器需要额外增加一个。
2025-02-13 14:54:19
463
原创 kubernetes源码分析 kubelet
从官方的架构图中很容易就能找到kubelet执行kubelet -h看到 kubelet 的功能介绍:kubelet 是每个 Node 节点上都运行的主要“节点代理”。使用如下的一个向 apiserver 注册 Node 节点:主机的hostname;覆盖host的参数;或者云提供商指定的逻辑。kubelet 基于PodSpec工作。PodSpec是用YAML或者JSON对象来描述 Pod。Kubelet 接受通过各种机制(主要是 apiserver)提供的一组PodSpec。
2025-02-13 11:14:58
1151
原创 ovn源码分析
北向数据库(NBDB):用户或编排系统(如 Kubernetes)定义虚拟网络的高层配置(如逻辑交换机、路由器、ACL 等),这些配置存储在北向数据库中。南向数据库(SBDB)ovn-northd组件将北向数据库中的高层次配置转化为底层的网络实现配置,并存储在南向数据库中。OVS配置(流表规则、端口配置):每个节点上的从南向数据库读取数据,并将这些数据转化为 OVS 的配置,比如 OVS 端口、流表规则等。示例:将 Logical Switch Port 的配置转换为 OVS 配置。
2024-12-16 11:24:21
1113
转载 Python使用struct处理二进制
有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c语言中的结构体. struct模块中最重要的三个函数是pack(), unpack(), calcsize()pack(fmt, v1, v2, ...) 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结
2014-04-21 18:29:43
663
转载 HTTP的编码行为分析
yuanwe6.1 HTTP协议及浏览器编码行为HTTP协议和浏览器是Web国际化的基础,在进入Java服务器端之前,必须先对它们的编码行为有所了解。6.1.1 HTTP协议HTTP协议是B/S体系结构应用程序的基础,只有了解了HTTP协议,才能理解如何在B/S体系结构下实现应用程序的国际化。1.HTTP请求当用户在浏览器的地址栏中输入一个URL并按
2014-04-21 17:27:17
873
转载 snort.conf分析(中文)
原帖:http://blog.csdn.net/jo_say/article/details/6302367 snort.conf分析此文件包含一个snort配置样例。共分五步骤:1 设置你的网络变量2 配置动态加载库3 配置预处理器4 配置输出插件5 增加任意的运行时配置向导6 自定义规则集step1:设置你的网络变量1 其中针对本地网络给出3
2014-04-21 17:23:59
977
转载 HTTP请求报文详解
HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。 请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 (1)请求行请求行由请求方法字段、URL字段和HTTP协议
2014-04-17 17:59:06
667
转载 html form中回车事件
转载:http://hi.baidu.com/yangzelai/blog/item/df21393aff7b85feb211c7a0.htmlhtml form中回车事件我们有时候希望回车键敲在文本框(input element)里来提交表单(form),但有时候又不希望如此。比如搜索行为,希望输入完关键词之后直接按回车键立即提交表单,而有些复杂表单,
2014-04-17 17:58:10
1013
转载 百度贴吧发帖 python代码片段
#from http://pythoner.org/code/16/#coding: utf-8"""Author: piglei2007@gmail.comVersion: 1.0"""import wximport osimport urllibimport urllib2import cookielibimport simplejsonimport tempfile
2014-04-17 11:50:07
1825
转载 HTTP 报文详解
yua本文根据RFC2616(HTTP/1.1规范),参考http://www.w3.org/Protocols/rfc2068/rfc2068http://www.w3.org/Protocols/rfc2616/rfc2616http://www.ietf.org/rfc/rfc3229.txt通常HTTP消息包括客户机向服务器的请求消息和服
2014-04-16 14:36:22
788
原创 Codeforces Round #241 (Div. 2) B
B. Art Uniontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA well-known art union called "Kalevich is Aliv
2014-04-14 19:58:59
552
转载 LIBCURL教程
LIBCURL教程(转) 原文地址:http://curl.haxx.se/libcurl/c/libcurl-tutorial.html 译者:JGood(http://blog.csdn.net/JGood ) 译者注:这是一篇介绍如何使用libcurl的入门教程。文档不是逐字逐句按原文翻译,而是根据笔者对libcurl的理解,参考原文写成。文中
2014-04-14 10:31:51
650
转载 超详细的vim+cscope 的使用规则 转载
写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE.但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了,"工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了,我今天教
2014-04-09 14:09:34
665
转载 快速架设一个使用 SSH 的 Git 服务
快速架设一个使用 SSH 的 Git 服务Git 是非常流行的分布式版本控制工具,很早以前就从 Subversion 转到 Git 了。现在每天用的 Xcode 日常开发,测试和应用部署也都是使用 Git,而且除了版本控制功能之外,也可以使用 Git 很方便的进行应用部署(或网站发布)等工作,所以 Git 基本上是每天工作都离不开的一个工具了。之前一直在使用 Github 上付
2014-04-07 21:31:32
490
转载 Linux网络编程:原始套接字的魔力【下】
原文:http://blog.chinaunix.net/uid-23069658-id-3283534.html可以接收链路层MAC帧的原始套接字 前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW, protocol)我们可以直接实现自行构造整个IP报文,然后对其收发。提醒一点,在用这种方式构造原始IP报文时,第三个参数protocol不能用IP
2014-03-27 15:00:38
655
转载 Linux网络编程:原始套接字的魔力【上】
原文:http://blog.chinaunix.net/uid-23069658-id-3280895.html基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进
2014-03-26 14:48:35
603
转载 Ubuntu下安装Django
原文:http://blog.sina.com.cn/s/blog_60b545010101hl0t.html正式开始Django学习历程。要用Django第一步就是要配置好环境啊。我的配置:OS: Ubuntu 12.10Server: Apache 2.2.22Database: MySQL 5.5
2014-03-21 23:49:00
592
原创 autotool总结
申明 :阅读autotool手册同时根据自己认识进行总结,文章内容以手册为主,结合部分其他资料以及自己的总结。第一章 总体概览1.1概述 Autoconf是一个通过产生配置脚本来使源码包能够适配不同类unix系统的工具。 Automake 是为了改善autoconf管理工程时,因为目录过多,依赖链管理过于复杂的问题。使代码管理更加
2014-03-20 22:53:38
2346
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人