自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李昊轩的博客

兼听则明 从善如流

  • 博客(476)
  • 资源 (5)
  • 收藏
  • 关注

原创 每期一个小窍门: 使用kubebuilder 生成operator脚手架 并操作控制自定义CRD副本数 (下)

然后这边 kubectl get pod 可以看到如我们所愿 有5个启动的pod 对应了上方的部署文件。通过拿到的运行期状态 来跟部署文件的期望状态对比 然后进行不同业务响应就ok了。写好这个文件后 直接通过自带的make命令 install 到k8s中。有了这个dacar类型之后 我们徒手制作一个这个类型的部署文件。由于这个是demo 我们就不把operator部署到集群侧了。在这个文件中定义 dacar 这个crd的spec。我们发现可以查看到这个crd了。apply 这个文件后。

2024-08-03 15:30:52 355

原创 Qwen-14B-Chat 非量化微调

我选择的方案是最普遍的 lora + deepspeed +zero3 + bf16 + 单机多卡 这套通用方案。训练数据自己去弄吧 符合qwen需要的格式就行。然后找到输出目录 直接进行合并 生成新的模型。显存四卡 每张卡大概使用20g左右这样子。

2024-05-17 17:22:10 514

原创 Fastchat + vllm + ray + Qwen1.5-7b 在2080ti 双卡上 实现多卡推理加速

Ray 是一个高性能的分布式计算框架,由UC Berkeley RISELab 开发,支持Python 语言,并可与PyTorch 等机器学习框架结合使用。在隐私计算方面,Ray提供了数据隐私保护,支持数据共享和协作,同时允许在不泄露原始数据的情况下进行深度学习模型训练。OpenAI API提供OpenAI兼容的API服务,接受请求后,先向Controller获取Model Worker地址,再向Model Worker实例发送请求生成文本,最后返回OpenAI兼容的报文。执行情况如下 并发速度还不错。

2024-05-11 14:56:39 2596 2

原创 每期一个小窍门: Graphviz 配合 pprof 分析 go 性能问题

graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。graphviz也提供了供其它软件使用的库。graphviz是一个自由软件,其授权为Eclipse Public License。看 fmt.print 被我们找到了。采样过后会自动跳转到浏览器。

2023-09-06 17:03:54 255

原创 通过生产环境流量录制/线下回放 配合基于云原生的灰度发布 实现保质保量的持续集成

流量回放/复制, 从测试的角度, 本质是:通过把线上的真实流量复制到线下环境,解决测试环境模拟不够真实,或覆盖不够全面的问题。

2022-08-15 10:04:57 860 1

原创 深入理解k8s operator 机制

Kubernetes 提供了一种扩展机制,允许我们定义自己的资源类型,称为自定义资源。在集群上运行一个 pod 来监控某种类型的自定义资源并基于它管理其他资源,这就是 Operator模式。

2021-12-07 16:33:43 5369

原创 通过PowerMockito来模拟时钟回拨, 验证改进版雪花算法是否起效

改进版雪花算法详见上篇传送门简单说明: 通过PowerMockito来mock雪花算法中获取时间的算法, 从而实现伪造时间覆盖.测试类import org.junit.Assert;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.powermock.api.mockito.PowerMockito;import org.powermock.core.classlo

2021-04-21 17:56:15 2688 3

原创 硬核讲解JDK1.8的ConcurrentHashMap为何放弃分段锁改用CAS + synchronized

jdk1.7分段锁的实现和hashmap一样,在jdk1.7中ConcurrentHashMap的底层数据结构是数组加链表。和hashmap不同的是ConcurrentHashMap中存放的数据是一段段的,即由多个Segment(段)组成的。每个Segment中都有着类似于数组加链表的结构。关于SegmentConcurrentHashMap有3个参数:initialCapacity:初...

2020-04-15 04:21:03 39695 13

原创 深入探讨 Flannel 技术:性能、缺陷与优点

深入探讨 Flannel 技术:性能、缺陷与优点Flannel,是一种常见 CNI(Container Network Interface)插件本文将探讨 Flannel 的性能表现和优缺点。

2024-09-13 16:05:41 255

原创 分布式共识(一致性)算法(协议) Paxos 简介

在分布式系统中,确保各节点间的数据一致性是核心挑战之一。Paxos算法,作为解决此问题的经典方法,通过分布式共识机制允许网络中的多数节点就某值达成一致,即便面对消息延迟、节点失效等复杂情形。Paxos算法以其高度的理论性和技术难度而闻名,但理解其基本思想并不难。

2024-09-09 14:05:00 316

原创 Linux 虚拟网络三大基石:Namespace、Veth pair 与 Bridge

Namespace提供了隔离的环境,Veth连接了不同的命名空间,而Bridge则扩展了网络的连接范围,三者缺一不可。在Namespace中,每个进程仿佛拥有自己的全局资源实例,而这些资源的变更仅在同一Namespace内部的进程间可见,对外部进程则完全透明。通过对Bridge的配置,我们可以实现在同一个Namespace内部或跨越Namespace的多节点互联,甚至可以连接物理网络,实现虚拟网络与现实网络的互通有无。有了Namespace的隔离机制,接下来的问题是如何在这些隔离的环境中建立通信。

2024-09-04 11:22:25 507

原创 VXLAN 为何采用UDP

VXLAN是一种网络虚拟化技术,它通过在UDP数据包中封装MAC地址和IP信息,使得二层网络(如以太网)能够跨越三层网络(如IP网络)进行扩展。这种封装方式不仅支持TCP流量的传输,还能有效处理大规模数据中心中的网络隔离和扩展问题。VXLAN的主要优势在于其灵活性和扩展能力。通过采用UDP封装,VXLAN避免了TCP连接建立的复杂性,减少了数据传输的开销。同时,由于VXLAN是在内核中实现的,相比用户态实现的隧道技术,它在性能上更加高效。

2024-09-04 10:16:29 574

原创 每期一个小窍门: 聊聊 pause 容器

综上所述,pause容器在Kubernetes Pod中起到了关键的基础设施作用,不仅保证了网络和进程的隔离性,还维护了Pod的生命周期和稳定性。这些特点使得pause容器成为Kubernetes中不可或缺的一部分,对于理解Pod的工作原理至关重要。pause容器在Kubernetes中的作用非常重要,它负责维护。,确保Pod内部不同容器间的。

2024-09-03 21:17:44 440

原创 每期一个小窍门: docker 多阶段镜像打包

使用多阶段镜像 本质上是打包与运行期的依赖分离 可以减小最终镜像大小。打包使用800M的 golang:1.23。运行期使用几M的alpine。

2024-08-27 09:39:21 109 1

原创 每期一个小窍门 golang中 CGO_ENABLED 含义

总结起来,使用CGO_ENABLED=0编译会慢一些是因为编译器需要额外的时间来处理CGO相关的代码,并且无法使用C语言的优化技术,同时还需要处理更多的Go代码。CGO_ENABLED是一个环境变量,用于控制Go编译器是否启用CGO(C语言调用Go函数)功能。当CGO_ENABLED=0时,表示禁用CGO功能。

2024-08-26 17:39:10 251

原创 每期一个小窍门: 关于 golang 2006年1月2日15时4分5秒 这个时间彩蛋

在Go语言中,time.Format方法的参数使用的是一种固定的格式化布局,这个布局是以Go的发布日——2006年1月2日15时4分5秒(对应于常量Mon Jan 2 15:04:05 MST 2006)为模板来指示时间的格式。在使用 time.Format 方法时,必须使用上面这个准确的时间来指定你想要的格式,因为Go语言将使用这个布局字符串中的数字位置来识别相应的时间部分。比如,如果你想要小时和分钟,你就使用 “15:04” 作为格式字符串。

2024-08-22 11:15:58 186

原创 每期一个小窍门: Goland 配置跳板机登陆并使用dlv 远程调试

本地 访问 localhost:6000 --> 转发到跳板机:22 --> 再转发到指定内网地址。好了 第一件事完毕 本地已经可以直接登陆到远程被跳机了。本机公钥 copy 到跳板机 和内网被跳机。本机 .ssh/config。

2024-08-15 20:52:45 146

原创 每期一个小窍门:全世界最简单的go exporter 例子

调用链路我大概描述下。

2024-08-07 16:35:09 220

原创 使用kubebuilder 遇到的 262144 bytes 超长问题

make install报错metadata.annotations: Too long: must have at most 262144 bytes。修复方法:打开Makefile,在。最后成功install。

2024-08-01 20:25:10 178

原创 每期一个小窍门: 使用Gin 与 client-go 操作k8s (中)

本文承接上文后面应该还会有个下 应该是个operator的全程demo。

2024-07-30 20:19:16 453

原创 每期一个小窍门: 使用client-go 操作k8s (上)

然后把apiserver公网暴露出来 并拿到apiserver的远程conf文件。身边要有一个k8s集群 阿里云ask可以免费使用 注意是ask 不是ack。好了 各位再见 下次再会。运行结果: 可以通的。

2024-07-27 16:20:24 235

原创 每期一个小窍门 k8s版本的 Prometheus + grafana + alertmanager 三件套部署监控落地

不要局限于组件本身 比如这一套组件要目标导向的去找组件 比如我想监控什么metrics 这个metrics 的安全阈值是多少 监控要不要做 高了代表什么 会产生什么级联影响 指标要有个重要性排序 最致命的肯定告警优先级要特殊对待 这些可能要和开发一同去设计 去排序优先级 只有拥有全链路的重要瓶颈的监控指标 业务接口才是真正运维侧可视化的 才会让团队放心

2024-05-29 14:37:00 349

原创 每期一个小窍门: AutoDL 开启关闭学术加速

【代码】每期一个小窍门: AutoDL 开启关闭学术加速。

2024-05-17 12:49:51 303

原创 vscode 通过ssh 远程执行ipynb +可以切换conda env

主要是保证几个点。

2024-05-14 23:00:43 486 1

原创 模型的训练三阶段 Pretraining SFT RLHF

人工先介入,通过对同一个Prompt生成答案的排序来训练一个Reward Model。再用Reward Model去反馈给SFT Model,通过评价生成结果的好坏,让模型更倾向于生成人们喜好的结果。最终生成的Model叫做RLHF model。给模型海量的文本进行训练,99%的计算量花费在这个阶段,输出的模型叫做base model,能做的事情就是像成语接龙一样不断的完成一段话。人工介入,给出高质量的文本问答例子。经过问答式训练的Model叫做SFT model,就可以正常回答人的问题了。

2024-03-25 01:08:12 635

原创 CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.解决方案 亲测有效

【代码】CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.解决方案 亲测有效。

2024-03-24 16:49:52 233

原创 Centos开机网卡自启动失败

关闭 NetworkManager 服务。重启就会发现网卡已经可以自动启动了。

2024-02-23 15:48:03 505

原创 虚拟机的四种网络模式对比

nat网络地址转换nat网络桥接内网模式仅主机。

2024-02-23 13:32:47 393

原创 每期一个小窍门: go不同项目之间的引用

那么你有一个包moda, 放在/home/aio/moda下面, 然后你想用go mod, 那么会执行go mod init A包名。然后你的modb也需要用go mod, 所以你执行go mod init modb。然后你就得到了go.mod文件。不出意外的话, 应该就引用到了。

2024-01-28 13:02:54 264

原创 Mac os docker login : error getting credentials

2、修改 $home/.docker/config.json 的配置,删除 “credsStore”: “desktop” 或者 将值改为"osxkeychain"第二步的 credsStore 是 docker 的存储身份凭证的设置。osxkeychain 是钥匙串。1、修改钥匙串的 docker 关键字相关设置,解决访问策略问题, 允许所有应用程序访问。但遇到了新的问题,重启 docker 后,还是会恢复这个配置,目前。

2024-01-27 15:17:20 901

原创 golang视角下 protobuf 的安装 从proto文件到go文件

Protocol Buffers(protobuf)是一种由Google开发的轻量级、高效的数据序列化格式。它设计的目的是为了在不同系统之间进行数据交换,同时保持数据的结构化和高效传输。

2024-01-25 18:27:01 725

原创 QA 这个职位在中国有前途么?转自知乎

纯手工的测试工程师逐渐被削弱地位和裁减. 但是他们不会灭绝, 依然有不少的领域或者基础的工作是要靠大量的纯手工测试来保证的. 取而代之的, 是一种广被欢迎的测试开发工程师. 他们不仅可以做手工测试, 也可以做测试技术的应用. 所以他们能发现更深层的问题, 和研发的思路也接近. 同时在质量保证上有自己的独特经验和能力. 他们的主要技能是自动化, 性能分析 业务分析. 用于解决日常的测试需求. 他们也会开发适当的测试工具.使用qtp,selenium,watir,或者是其他的技术框架来自动化测试工作的。

2024-01-05 11:16:30 509

原创 每期一个小窍门: 重置kafka 消费者的偏移量

【代码】每期一个小窍门: 重置kafka 消费者的偏移量。

2024-01-03 17:08:08 585

原创 每期一个小窍门: mysql的四个系统库的作用

“information_schema”是 MySQL 系统自带的数据库,主要保存 MySQL 数据库服务器的系统信息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件所在的文件夹和系统使用的文件夹,等等。“performance_schema”是 MySQL 系统自带的数据库,可以用来监控 MySQL 的各类性能指标。“sys”数据库是 MySQL 系统自带的数据库,主要作用是,以一种更容易被理解的方式展示 MySQL 数据库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL

2023-10-17 23:28:15 232

原创 每期一个小窍门: 一文助你理解火焰图

让我们从 perf 命令(performance 的缩写)讲起,它是 Linux 系统原生提供的性能分析工具,会返回 CPU 正在执行的函数名以及调用栈(stack)。通常,它的执行频率是99Hz(每秒99次),如果99次都返回同一个函数名,那就说明 CPU 这一秒钟都在执行同一个函数,可能存在性能问题。上面的代码中,perf record表示记录,-F 99表示每秒99次,-p 13204是进程号,即对哪个进程进行分析,-g表示记录调用栈,sleep 30则是持续30秒。

2023-09-06 16:35:07 228

原创 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at:

Mac 下执行命令时,报错。

2023-08-31 16:18:15 419

原创 每期一个小窍门: mac 重装 homebrew

【代码】每期一个小窍门: mac 重装 homebrew。

2023-08-31 16:13:51 195

原创 go: 高性能json工具 easyjson 简介

【代码】go: 高性能json工具 easyjson 简介。

2023-08-27 13:40:48 744

原创 解决 go mod tidy 加载模块超时

如果go mod tidy 加载模块超时。

2023-08-23 13:48:36 1657

原创 Go:测试框架GoConvey 简介

GoConvey是一个完全兼容官方Go Test的测试框架,一般来说这种第三方库都比官方的功能要强大、更加易于使用、开发效率更高,闲话少说,先看一个example:看着复杂, 一层层的嵌套,如果你使用IDE的话你可以点到源码里面看一下其方法注释,其实已经说的非常清楚了,这里摘取部分看一下:这个用法相对简单了,Convey定义了一个局部的作用域,在这个作用域里面我们可以定义变量,调用方法,然后重复继续这个操作,low-level的Convey会继承top-level的变量。了解之后,我们来扩展一下这个例子

2023-08-21 21:52:45 1300 1

apache-doris-1.0.0-incubating-bin.tar.gz

apache-doris-1.0.0-incubating-bin.tar.gz apache-doris-1.0.0-incubating-bin.tar.gz apache-doris-1.0.0-incubating-bin.tar.gz 看不惯别人收费的 开源的东西 收钱好意思?

2022-06-01

dockerpackage.zip

解压后为两个文件 一个为mycat1.6.6 的linux安装包, 一个是mycat的dockerfile

2021-06-01

Sharding-Proxy

Mysql 分库中间件 Sharding-Proxy 下载

2021-02-23

elk 5.6.4 三件套

elk三件套

2020-10-27

HW7_HaoxuanLi.rar

小作业 自己留作备用

2019-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除