Dragonfly 加速 Git LFS 大文件分发

智能镜像分发工具dragonfly的安装和使用 一、概述 最近在研究k8s,有时候会遇到镜像拉取缓慢的问题,尤其是必须在多个主机上复制镜像分发时效率较低,之后查阅资料发现这个dragonfly是通过p2p技术解决镜像传输和分发的问题的,在这里将我的学习过程做一个记录。 Dragonfly一个开源的基于P2P镜像及文件分发系统,由阿里巴巴开源的云原生镜像分发系统 Dragonfly,面向以 Kubernetes 为核心的分布式应用编排系统,前瞻性地解决了云原生镜像分发的下列三大难题: 效率:借助 P2P 与 CDN 技术,缩减镜像传输时间,提升分发效率, 阅读详情

119950a71e4842bebcfd58ed0a8e4f00.gif

Dragonfly GitHub:

https://github.com/dragonflyoss/Dragonfly2

1

Git LFS 是什么?

Git LFS [1] 是 Git Large File Storage 的缩写,这是一个用来处理大型文件的 Git 扩展工具。Git 在处理大量的小型文件时表现出色,但它并不擅长版本控制大型二进制文件,比如视频、音频、数据集、模型资源等。如果这些大文件直接存储在 Git 仓库中,会导致仓库体积迅速膨胀,影响克隆和拉取操作的性能。 

53d097c3820eb55a9bcfc2b0b57e2487.png

图片来源:Git Large File Storage

Git LFS 允许将大型文件的引用保存在 Git 仓库中,而将文件本身存储在一个单独的服务器上。当克隆或检出含有大型文件的仓库时,Git LFS 会从那个单独的服务器上下载必要的大文件,而不是从 Git 仓库直接下载。具体 Git LFS 实现分为客户端以及服务端两部分。客户端主要基于 git lfs track 进行操作,规范可以参考 Git LFS Specification [2]。服务端是基于 HTTP 协议遵守 Git LFS API [3] 实现的。通常情况下 Git LFS 的 Content Storage 也就是存储大文件的服务使用对象存储。

1.1 Git LFS 应用  

大文件基于 Git LFS 管理

Github 以及 GitLab 对于大文件管理,通常是基于 Git LFS 进行管理的。

  • GitHub 可以参考文档 About Git Large File Storage [4] 使用。

  • GitLab 可以参考文档 Git Large File Storage [5] 使用。

AI 模型以及数据集基于 Git LFS 管理

AI 场景下模型以及数据集大文件,通常是基于 Git LFS 进行管理的。比 Hugging Face Hub [6] 以及 ModelScope Hub [7] 等平台,会基于 Git LFS 管理模型以及数据集。

  • Hugging Face Hub 可以参考文档 Getting Started with Repositories [8] 使用。

  • ModelScope Hub 可以参考文档 Getting Started with ModelScope [9] 使用。

Hugging Face Hub 的 Python Library 实现了 Git LFS 对模型以及数据集进行预加载。对于 Hugging Face Hub 的 Python Library 分发模型和数据集进行加速,可以参考文档 Hugging Face accelerates distribution of models and datasets based on Dragonfly [10]。

2

Dragonfly 解决 Git LFS 存储仓库带宽瓶颈

通常开发者会基于 Git LFS 管理大文件,本文主要解决在 Git LFS 拉取大文件时,存在的中心化的存储仓库带宽瓶颈问题。当使用 Git LFS 下载大文件的时候,文件相对较大且会有并发下载文件的场景。这样很容易导致存储带宽被打满,从而引起下载过慢的情况。

d7371f8a047983812d2d11e1fd852104.png

这种方式比较好的解决方案是使用 Dragonfly 的 P2P 技术利用每个节点的闲置带宽缓解存储仓库的带宽压力,从而达到加速效果。在最理想的情况下 Dragonfly 可以让整个 P2P 集群中只有一个节点回源下载模型,其他节点流量均使用集群内 P2P 内网带宽。

105c0f453adff2f94817ac2e3a7dd76b.png

3

使用 Dragonfly 加速 Git LFS 大文件分发

通过将 Git LFS 的 HTTP 协议文件下载请求代理到 Dragonfly Peer 的 Proxy 服务,将文件下载流量转发至 P2P 网络中,从而减少回源流量,提升下载速度。下面使用文档基于 GitHub LFS 实现。

3.1 获取 Git LFS 的 Content Storage 地址

增加 GIT_CURL_VERBOSE=1 输出 git clone 的详细日志,方便获取 Git LFS 的 Content Storage 的地址。

GIT_CURL_VERBOSE=1 git clone git@github.com:{YOUR-USERNAME}/{YOUR-REPOSITORY}.git

从输出的日志中找 trace git-lfs 关键字,可以看到 Git LFS 下载文件的日志。关注 Git LFS 日志中 actions 为 download 的返回内容。

15:31:04.848308 trace git-lfs: HTTP: {"objects":[{"oid":"c036cbb7553a909f8b8877d4461924307f27ecb66cff928eeeafd569c3887e29","size":5242880,"actions":{"download":{"href":"https://github-cloud.githubusercontent.com/alambic/media/376919987/c0/36/c036cbb7553a909f8b8877d4461924307f27ecb66cff928eeeafd569c3887e29?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIMWPLRQEC4XCWWPA%2F20231221%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231221T073104Z&X-Amz-Expires=3600&X-Amz-Signature=4dc757dff0ac96eac3f0cd2eb29ca887035d3a6afba41cb10200ed0aa22812fa&15:31:04.848403 trace git-lfs: HTTP: X-Amz-SignedHeaders=host&actor_id=15955374&key_id=0&repo_id=392935134&token=1","expires_at":"2023-12-21T08:31:04Z","expires_in":3600}}}]}

可以在 objects 结构体中 actions.download.href 找到具体的下载 URL。这样可以发现 GitHub LFS 的 Content Storage 实际存储在 github-cloud.githubusercontent.com。并且可以找到一些 Query 参数比如 X-Amz-Algorithm、X-Amz-Credential、X-Amz-Date、X-Amz-Expires、X-Amz-Signature 以及 X-Amz-SignedHeaders 等,这些 Query 参数为 AWS 的 Authenticating Requests [11] 参数。后面在配置 Dragonfly Peer Proxy 的时候会用到这些参数的 Key。

Git LFS 关键信息:

  • Git LFS 的 Content Storage 地址为 github-cloud.githubusercontent.com。

  • 下载 URL 的 Query 参数: X-Amz-Algorithm、X-Amz-Credential、X-Amz-Date、X-Amz-Expires、X-Amz-Signature 以及 X-Amz-SignedHeaders。

3.2 部署 Dragonfly

依赖

55d2e2a23f2c177b6375167e8ebfa445.png

注意: 如果没有可用的 Kubernetes 集群进行测试,推荐使用 Kind [12]。

安装 Dragonfly

基于 Kubernetes cluster 详细安装文档可以参考 quick-start-kubernetes [13]。

  • 使用 Kind 安装 Kubernetes 集群

创建 Kind 多节点集群配置文件 kind-config.yaml, 配置如下:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
  - role: worker
    extraPortMappings:
      - containerPort: 30950
        hostPort: 65001
  - role: worker

使用配置文件创建 Kind 集群:

kind create cluster --config kind-config.yaml

切换 Kubectl 的 context 到 Kind 集群:

kubectl config use-context kind-kind
  • Kind 加载 Dragonfly 镜像

下载 Dragonfly latest 镜像:

docker pull dragonflyoss/scheduler:latest
docker pull dragonflyoss/manager:latest
docker pull dragonflyoss/dfdaemon:latest

Kind 集群加载 Dragonfly latest 镜像:

kind load docker-image dragonflyoss/scheduler:latest
kind load docker-image dragonflyoss/manager:latest
kind load docker-image dragonflyoss/dfdaemon:latest
  • 基于 Helm Charts 创建 Dragonfly P2P 集群

创建 Helm Charts 配置文件 charts-config.yaml。在 dfdaemon.config.proxy.proxies.regx 增加 github-cloud.githubusercontent.com 匹配规则,将 Git LFS 的 Content Storage 的 HTTP 文件下载流量转发至 P2P 网络中。并且 dfdaemon.config.proxy.defaultFilter 添加 X-Amz-Algorithm、X-Amz-Credential、X-Amz-Date、X-Amz-Expires、X-Amz-Signature 以及 X-Amz-SignedHeaders 参数,过滤掉可变的 Query 参数。Dargonfly 是根据 URL 生成唯一 Task ID 的,所以需要过滤掉可变的 Query 参数生成唯一的 Task ID。配置如下:

scheduler:
  image: dragonflyoss/scheduler
  tag: latest
  replicas: 1
  metrics:
    enable: true
  config:
    verbose: true
    pprofPort: 18066


seedPeer:
  image: dragonflyoss/dfdaemon
  tag: latest
  replicas: 1
  metrics:
    enable: true
  config:
    verbose: true
    pprofPort: 18066


dfdaemon:
  image: dragonflyoss/dfdaemon
  tag: latest
  metrics:
    enable: true
  config:
    verbose: true
    pprofPort: 18066
    proxy:
      defaultFilter: "X-Amz-Algorithm&X-Amz-Credential&X-Amz-Date&X-Amz-Expires&X-Amz-Signature&X-Amz-SignedHeaders"
      security:
        insecure: true
        cacert: ""
        cert: ""
        key: ""
      tcpListen:
        namespace: ""
        port: 65001
      registryMirror:
        url: https://index.docker.io
        insecure: true
        certs: []
        direct: false
      proxies:
      - regx: blobs/sha256.*
      - regx: github-cloud.githubusercontent.com.*


manager:
  image: dragonflyoss/manager
  tag: latest
  replicas: 1
  metrics:
    enable: true
  config:
    verbose: true
    pprofPort: 18066


jaeger:
  enable: true

使用配置文件部署 Dragonfly Helm Charts:

$ helm repo add dragonfly https://dragonflyoss.github.io/helm-charts/
$ helm install --wait --create-namespace --namespace dragonfly-system dragonfly dragonfly/dragonfly -f charts-config.yaml
NAME: dragonfly
LAST DEPLOYED: Thu Dec 21 17:24:37 2023
NAMESPACE: dragonfly-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Get the scheduler address by running these commands:
  export SCHEDULER_POD_NAME=$(kubectl get pods --namespace dragonfly-system -l "app=dragonfly,release=dragonfly,component=scheduler" -o jsonpath={.items[0].metadata.name})
  export SCHEDULER_CONTAINER_PORT=$(kubectl get pod --namespace dragonfly-system $SCHEDULER_POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
  kubectl --namespace dragonfly-system port-forward $SCHEDULER_POD_NAME 8002:$SCHEDULER_CONTAINER_PORT
  echo "Visit http://127.0.0.1:8002 to use your scheduler"


2. Get the dfdaemon port by running these commands:
  export DFDAEMON_POD_NAME=$(kubectl get pods --namespace dragonfly-system -l "app=dragonfly,release=dragonfly,component=dfdaemon" -o jsonpath={.items[0].metadata.name})
  export DFDAEMON_CONTAINER_PORT=$(kubectl get pod --namespace dragonfly-system $DFDAEMON_POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
  You can use $DFDAEMON_CONTAINER_PORT as a proxy port in Node.


3. Configure runtime to use dragonfly:
  https://d7y.io/docs/getting-started/quick-start/kubernetes/




4. Get Jaeger query URL by running these commands:
  export JAEGER_QUERY_PORT=$(kubectl --namespace dragonfly-system get services dragonfly-jaeger-query -o jsonpath="{.spec.ports[0].port}")
  kubectl --namespace dragonfly-system port-forward service/dragonfly-jaeger-query 16686:$JAEGER_QUERY_PORT
  echo "Visit http://127.0.0.1:16686/search?limit=20&lookback=1h&maxDuration&minDuration&service=dragonfly to query download events"

检查 Dragonfly 是否部署成功:

$ kubectl get po -n dragonfly-system
NAME                                 READY   STATUS    RESTARTS       AGE
dragonfly-dfdaemon-cttxz             1/1     Running   4 (116s ago)   2m51s
dragonfly-dfdaemon-k62vd             1/1     Running   4 (117s ago)   2m51s
dragonfly-jaeger-84dbfd5b56-mxpfs    1/1     Running   0              2m51s
dragonfly-manager-5c598d5754-fd9tf   1/1     Running   0              2m51s
dragonfly-mysql-0                    1/1     Running   0              2m51s
dragonfly-redis-master-0             1/1     Running   0              2m51s
dragonfly-redis-replicas-0           1/1     Running   0              2m51s
dragonfly-redis-replicas-1           1/1     Running   0              106s
dragonfly-redis-replicas-2           1/1     Running   0              78s
dragonfly-scheduler-0                1/1     Running   0              2m51s
dragonfly-seed-peer-0                1/1     Running   1 (37s ago)    2m51s

创建 Peer Service 配置文件 peer-service-config.yaml 配置如下:

apiVersion: v1
kind: Service
metadata:
  name: peer
  namespace: dragonfly-system
spec:
  type: NodePort
  ports:
    - name: http-65001
      nodePort: 30950
      port: 65001
  selector:
    app: dragonfly
    component: dfdaemon
    release: dragonfly

使用配置文件部署 Peer Service:

kubectl apply -f peer-service-config.yaml

3.3 

通过 Dragonfly 分发 Git LFS 的下载文件流量

通过 Git 配置将请求代理到 Dragonfly Peer Proxy 的 http://127.0.0.1:65001。主要基于 http.proxy 、 lfs.transfer.enablehrefrewrite 以及 url.{YOUR-LFS-CONTENT-STORAGE}.insteadOf  属性设置代理。

git config --global http.proxy http://127.0.0.1:65001
git config --global lfs.transfer.enablehrefrewrite true
git config --global url.http://github-cloud.githubusercontent.com/.insteadOf https://github-cloud.githubusercontent.com/

通过 Dragonfly Peer Proxy 转发 Git LFS 的下载流量至 P2P 网络,Git 克隆下载文件

git clone git@github.com:{YOUR-USERNAME}/{YOUR-REPOSITORY}.git

3.4 验证下载文件通过 Dragonfly 分发

执行命令:

# find pods
kubectl -n dragonfly-system get pod -l component=dfdaemon
# find logs
pod_name=dfdaemon-xxxxx
kubectl -n dragonfly-system exec -it ${pod_name} -- grep "peer task done" /var/log/dragonfly/daemon/core.log

日志输出:

2023-12-21T16:55:20.495+0800  INFO  peer/peertask_conductor.go:1326  peer task done, cost: 2238ms  {"peer": "30.54.146.131-15874-f6729352-950e-412f-b876-0e5c8e3232b1", "task": "70c644474b6c986e3af27d742d3602469e88f8956956817f9f67082c6967dc1a", "component": "PeerTask", "trace": "35c801b7dac36eeb0ea43a58d1c82e77"}

4

性能测试

测试 Git LFS 与 Dragonfly 集成后的单机大文件下载的性能。由于机器本身网络环境、配置等影响,实际下载时间不具有参考价值, 但是不同场景下载时间所提升的比率是有重要意义的。

dab4883a2c41d326aac9b0d065d66fb4.png

  • Git LFS: 使用 Git LFS 直接下载大文件。

  • Git LFS & Dragonfly Cold Boot: 使用 Git LFS 直接下载大文件,没有命中任何缓存。

  • Hit Dragonfly Remote Peer Cache: 使用 Git LFS 直接下载大文件,在命中 Dragonfly 的远端 Peer 缓存。

  • Hit Dragonfly Remote Local Cache: 使用 Git LFS 直接下载大文件,在命中 Dragonfly 的本地 Peer 缓存。

测试结果表明 Git LFS 和 Dragonfly 集成。能够有效减少大文件下载时间。测试是在单机情况下基本在缓存命中情况下, 性能瓶颈在于磁盘。如果在多节点并发下载大文件的情况下,Dragonfly 效果会更加明显。

5

相关链接

参考链接

[1] Git LFS:
https://git-lfs.com/

[2] Git LFS Specification:
https://github.com/git-lfs/git-lfs/blob/main/docs/spec.md

[3] Git LFS API:
https://github.com/git-lfs/git-lfs/tree/main/docs/api

[4] About Git Large File Storage:
https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-git-large-file-storage 

[5] Git Large File Storage:
https://docs.gitlab.com/ee/topics/git/lfs/ 

[6] Hugging Face Hub:
https://huggingface.co/ 

[7] ModelScope Hub: 
https://modelscope.cn/home

[8] Getting Started with Repositories:
https://huggingface.co/docs/hub/repositories-getting-started

[9] Getting Started with ModelScope: 
https://modelscope.cn/docs/ModelScope%20Hub使用文档

[10] Hugging Face accelerates distribution of models and datasets based on Dragonfly:
https://www.cncf.io/blog/2023/11/16/hugging-face-accelerates-distribution-of-models-and-datasets-based-on-dragonfly/

[11]  Authenticating Requests:
https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html 

[12] Kind: 
https://kind.sigs.k8s.io/

[13] quick-start-kubernetes:
https://d7y.io/zh/docs/next/getting-started/quick-start/kubernetes/

Dragonfly 社区

  • Website

https://d7y.io/

  • Github Repo:

https://github.com/dragonflyoss/Dragonfly2

  • Slack Channel

#dragonfly on CNCF Slack

  • Discussion Group

dragonfly-discuss@googlegroups.com

  • Twitter

@dragonfly_oss

Git LFS

  • Website

https://git-lfs.com/

  • Github Repo

https://github.com/git-lfs/git-lfs

  • Document

https://github.com/git-lfs/git-lfs/tree/main/docs

6506666a4102a793db78a4a1ea9dbf5d.png

Dragonfly Github 仓库二维码

欢迎加入开源共建✨

071dc18b80a40ee60a3a0120daf887b6.jpeg

Dragonfly 部署 重启 docker 后,如果 redis 和 mysql 容器启动不了,其他容器也会无法启动,频繁重启,docker 日志报错如下。启动 redis mysql 容器后,再分别重启无法启动的 pod 即可解决。安装好 docker 和 docker-compose。如果输出类似如下的日志,代表成功。或者直接进入 peer 容器查看。正常后启动的容器如下。 阅读详情

相关推荐

保姆级教程:2026版Windows电脑换新,微信QQ聊天记录无损搬家(附路径修改避坑指南)

本文提供2026版Windows电脑换新时微信QQ聊天记录无损迁移的保姆级教程,涵盖最新版微信/QQ的存储路径修改和避坑指南。通过详细步骤和实战技巧,确保数据迁移过程中不丢失任何珍贵对话记录和文件,特别适合需要保留完整聊天记录的用户。

weixin_42629815的博客 2482

docker安装部署dragonfly2镜像加速服务

​ Dragonfly 作为龙蜥社区的镜像加速标准解决方案,是一款基于 P2P 的智能镜像和文件分发工具。它旨在提高大规模文件传输的效率和速率,最大限度地利用网络带宽。在应用分发、缓存分发、日志分发和镜像分发等领域被大规模使用。​ 现阶段 Dragonfly 基于 Dragonfly1.x 演进而来,在保持 Dragonfly1.x 原有核心能力的基础上,Dragonfly 在系统架构设计、产品能力、使用场景等几大方向上进行了全面升级。

ll535299的博客 2596

UG二次开发避坑指南:如何正确配置Python环境让NXOpen脚本跑起来?

本文详细介绍了UG/NX二次开发中Python环境配置的全流程与NXOpen脚本调试技巧,帮助开发者避开常见陷阱。从NXOpen架构解析到Python解释器版本匹配,再到环境变量设置与路径问题处理,提供了一套经过验证的配置方案,确保脚本顺利运行。

weixin_33859135的博客 449

Git下载加速

方法一(推荐) 前期的准备:首先自己将代理开启,系统代理模式改为全局模式 1.设置Git的代理方式 git config --global http.proxy http://127.0.0.1:1080 git config --global https.proxy https://127.0.0.1:1080 git config --global http.proxy 'socks5://127.0.0.1:1080' git config --global https.proxy '

数据之路 3636

《Hadoop大数据技术原理与应用》(第2版)黑马程序员的课后习题答案

《Hadoop大数据技术原理与应用》(第2版)黑马程序员的课后习题答案

qq_36773158的博客 4646

解决 python2.7中 ImportError: No module named Crypto.Signature

我的解决办法,先查看有没有安装 pip,直接执行pip 回车 没有出现null什么的就安装了,如果没有安装去其他博客哪里看一下,正常情况是默认就有的,然后使用。发现我自己也不会啊,就百度看看,想着网上的解决方法一大片,但是都是废话,能用的没有几个,而且能安装的没有几个。这个里面的python2、3就是系统里面的python版本,直接跟我这样就可以了除非版本不一样,也就是没有这个版本。就可以使用了,第一个应该是卸载之前的,然后重新安装,我的就是这样解决的。就比如我的,我现在使用的 python2.7。

记录一下 1610

Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像

文|戚文博(花名:百蓦)DragonflyMaintainer蚂蚁集团软件工程师主要负责「基于 P2P 的文件分发以及镜像加速系统」。本文2036字 阅读8分钟Dragonfly 提供高效、稳定、安全的基于 P2P 技术的文件分发和镜像加速系统,并且是云原生架构中镜像加速领域的标准解决方案以及最佳实践。现在为云原生计算机基金会(CNCF)托管作为孵化级(Incubating)项目。文章主...

金融级分布式架构 555

Android14 有线网络静态IP配置:从固件烧录到系统默认设置

本文详细解析了在Android14系统中,如何通过修改系统框架层和设置应用,为设备预设有线网络静态IP地址,实现固件烧录后即具备指定网络配置的功能。文章深入探讨了从扩展SettingsProvider数据库字段、配置默认值,到在设置应用中读取和应用配置的完整流程,旨在解决工业平板、智能终端等设备在无DHCP网络环境中批量部署的痛点,提升开箱即用体验。

lake5的博客 920

如何使用 Harbor 和 Dragonfly 优化 Kubernetes 集群镜像拉取速度

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !本篇文章则分享在大规模的 Kubernetes 集群中,通过 Harbor 与 Dragonfly 来优化镜像的拉取速度。Dragonfly(蜻蜓)简介项目地址:https://github.com/dragonflyoss/Dragonfly2官方文档: https://d7y.io/zh/docs/ ...

easylife206的专栏 1299

基于STM32的智能水温控制系统设计

智能水温控制系统广泛应用于家庭、工业、农业等多个场景,尤其在热水器、恒温泳池和地暖系统中,通过实时监测和调节水温,提高设备的效率和用户的舒适度。本文基于STM32微控制器设计了一个智能水温控制系统,能够实时监测水温、用户设置温度,并根据需要控制加热器或冷却装置,确保水温维持在设定范围内。系统能够根据用户设定自动控制加热和冷却设备,确保水温维持在舒适的范围内,并通过OLED屏实时显示水温信息。在生成的项目基础上,编写水温监测、目标温度设定、加热器和冷却装置控制、OLED数据显示以及超温报警的代码。

2401_88410555的博客 2475

软件项目管理期末复习(看这一篇就够了)

软件项目管理考试复习 🔶🔶🔶🔶🔶加了🔶的是考点 第一章软件项目管理概述 1.1.1项目及其特征 项目定义:🔶 项目就是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力; 是以一套独特而互相联系的任务为前提,有效地利用资源,在一段时间内满足一系列特定目标的多项相关工作的总称。 日常运作和项目的区别: 项目是一次性的,而日常运作是重复进行的。 项目是以目标为导向的,日常运作是通过效率和有效性体现的。 项目是通过项目经理及其团队工作完成的,日常运作是职能式的线性管理。 项目存在大量的变更管理,

qq_50886857的博客 3万+

AI基础设施竞赛:xAI与SpaceX的算力、能源与网络技术博弈

AI基础设施是支撑大规模人工智能模型训练与推理的底层技术体系,其核心在于通过硬件、软件和网络的协同设计,提供高效、可扩展的计算能力。其技术原理涉及分布式计算、高速互联网络和能源管理,旨在突破传统数据中心的算力与能耗瓶颈。技术价值体现在为千亿级参数模型的训练提供经济可行的算力基础,并推动AI技术的普惠化。应用场景广泛覆盖大规模模型训练、实时推理和全球数据同步等。本文聚焦于xAI与SpaceX在AI基础设施领域的布局,深入探讨了其围绕算力规模、能源效率和网络拓扑展开的硬核技术博弈,这场竞赛不仅关乎商业竞争,更可

weixin_33720078的博客 336

(四)DDR协议命令波形时序一——(ACT、Read、Write)

文章目录一、DDR命令真值表二、ACT激活命令时序要求2.1、ACTIVATE波形——tRRD、tFAW2.2、ACTIVATE波形——tRAS、tRC三、Read命令时序要求3.1、Read 波形——无Additive Latency3.2、Read 波形——有Additive Latency3.3、Read 波形——Additive Latency使用场景 一、DDR命令真值表 DDR的Command命令由CKE、CS#、RAS#、CAS#、WE#信号组成,这几个信号进行不同的搭配组合会形成不同的Co

Mr.翟的博客 6869

dragonfly k8s 部署

在dragonfly客户端执行 (填写旧redis地址)修改nodeport。

Sunnyang123的博客 394

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Dragonfly单机部署比redis快25倍的缓存中间件

Dragonfly 是一款高性能的缓存中间件,与 Redis 和 Memcached API 完全兼容,无缝对接(意思就是开发人员直接改一下配置文件的链接地址即可,把他当redis用)。Dragonfly 在多线程、无共享架构之上实现了新颖的算法(2Q算法)和数据结构(Dash稳定吗hash结构)。因此,与 Redis 相比,Dragonfly 的性能达到了 x25,并且在单个实例上支持数百万 QPS。Dragonfly 的核心特性使其成为经济高效、高性能且易于使用的 Redis 替代品。

qq_39234840的博客 4643

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Docker 环境基于 Dragonfly 的 Kubernetes 多集群镜像分发实践

文|唐荦彦深信服高级开发工程师主要负责 SASE 云化架构以及基础设施建设本文 3056 字,阅读 6 分钟01你将在本文学到什么?多 K8S 集群镜像分发方案Dragonfly 的理解Harbor 的预热机制Dragonfly 的使用以及排障02K8S 多集群镜像分发问题在边缘云架构的生产环境下,演进过程中,一开始的镜像分发方案如下:每个边缘集群都存在节点的 Harbor 仓库,进行缓存...

金融级分布式架构 1050

镜像拉取节省 90% 以上,快手基于 Dragonfly 的超大规模分发实践

快手容器云平台旨在为快手不断增长、不断变化和多样化的业务,提供基于容器化部署的超大规模基础设施服务。为了实现这一目标,快手工程师需要解决弹性、稳定性、效率和无服务器架构等挑战,在这些挑战中,镜像分发的稳定性和效率也是最棘手的问题之一。

数据库技术 419

Dragonfly+Harbor部署集成

摘要:Dragonfly是阿里开源的一款基于P2P技术的镜像分发系统,已加入CNCF孵化。其核心组件包括Host(运行客户端的主机)、Peer(下载相同文件的Host)、dfget(下载程序)和SuperNode(调度节点)。工作原理类似BT下载,SuperNode从源获取文件分片并调度Peer间传输,支持断点续传和MD5校验。部署时需配置SuperNode和dfclient,可通过容器快速搭建测试环境。与Harbor集成时需修改Docker配置,支持镜像预热功能,显著提升大规模集群的镜像分发效率。实测表明

技术引领业务创新 8491

Dragonfly 使用与安装指南

Dragonfly 是一个高效的内容分发系统,旨在优化大规模文件(如容器镜像、大文件等)的下载过程。以下是 `Dragonfly` 开源项目的主目录结构概览及其重要组成部分的简要说明: ```markdown Dragonfly/ ├── README.md - 项目的主要说明文档,包括快速入门和核心概念。 ├── LICENSE - 许可证文件,描述了软...

gitblog_00230的博客 2025

Dragonfly 介绍、更新和快手中的 AI 模型分发实践

Nydus 主要职责是镜像的去重、压缩,并且在镜像启动、运行过程当中进行按需加载,可以将端到端的启动速度从分钟级提升到秒级,同时 Nydus 也是由阿里云、蚂蚁、字节跳动三家公司研发的,DragonFly P2P 的解决方案。介绍了快手 AI 平台的业务背景效果显著。

socialpath的博客 2296

【蜻蜓Dragonfly】supernodes部署

蜻蜓Dragonfly是阿里开源基于P2P的智能文件分发系统,旨在解决大规模文件分发场景中低效率,低成功率,浪费网络带宽等问题。 环境配置 实际应用部署中,官方建议至少2台8核,16G内存,Gb以太网来部署spernodes。 安装部署 安装方式有两种,一种是使用docker安装,一种是使用源码安装到物理机上 a、使用docker安装,需要提前安装Git 1.9.1,Docker 1.12.0 ,...

adwen2009的博客 1936

docker compose部署dragonfly

整个工具的代码都在Gitee或者Github地址内。

m0_38040684的博客 435

Dragonfly2快速入门指南:10分钟部署你的第一个高性能CDN加速服务

Dragonfly2是一款基于P2P技术的高性能CDN加速服务,能够提供高效、稳定且安全的数据分发与加速能力,特别适用于加速OCI容器启动。无论是大型文件分发、容器镜像拉取还是AI模型传输,Dragonfly2都能显著提升传输效率并降低源站压力。 ## 🚀 为什么选择Dragonfly2? Dragonfly2作为CNCF毕业项目,具备以下核心优势: - **P2P加速技术**:通过节点间

gitblog_00646的博客 375

Dragonfly服务端部署指南:如何搭建高性能supernode集群

Dragonfly是一个开源的P2P文件分发系统,通过其核心组件supernode(超级节点)集群实现高效的文件下载加速。本文将详细介绍如何搭建高性能的Dragonfly supernode集群,帮助您快速部署企业级的文件分发系统。🚀 ## 📋 准备工作与环境要求 在开始部署Dragonfly服务端之前,需要确保系统满足以下要求: **Docker部署方式**: - Git版本:1.9.

gitblog_00943的博客 573

Dragonfly项目安装与使用指南

Dragonfly项目安装与使用指南 1. 项目目录结构及介绍 欢迎使用Dragonfly项目,该项目基于GitHub上的仓库 https://github.com/t4ngo/dragonfly.git。以下是对项目主要目录结构的解析: src: 此目录包含了项目的核心源代码。对于大部分开发者来说,这是最关注的部分,内含主要的功能实现。 config: 这里存放着项目的配置文件。理解这些...

gitblog_00646的博客 606

Dragonfly项目服务端安装与部署指南

Dragonfly项目服务端安装与部署指南 前言 Dragonfly是一个基于P2P技术的智能分发系统,主要用于大规模文件分发场景。本文将详细介绍如何安装和部署Dragonfly的服务端组件supernode,这是整个系统的核心调度节点。 部署方式选择 Dragonfly服务端支持两种部署方式: Docker部署:适合快速体验和测试环境 物理机部署:推荐用于生产环境,性能更稳定 环境准备 Do...

gitblog_00078的博客 539
上一篇: 埋头苦干,曙光初现 —— KusionStack & KCL 的 2023 年终总结来啦!
下一篇: SOFA Weekly|SOFAServerless & Layotto 社区会议预告、社区本周贡献、SOFA 办公室摇人系列...
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值