当前位置: 首页 > news >正文

Alluxio Enterprise AI on K8s FIO 测试教程

Alluxio Enterprise AI on K8s FIO 测试视频教程

视频为Alluxio Enterprise AI on K8s FIO测试视频教程。fio是业内常用的磁盘与文件系统性能测试工具,下面内容将通过文字方式介绍Alluxio on k8s 进行fio测试的教程。

1. 测试环境

  • 虚拟机规格:ecs.g3i.16xlarge,包含 64 vCPU、256GB 内存、140GB 磁盘(极速型 SSD FlexPL)。带宽等详细数据见实例规格。
  • Alluxio 版本:3.2-5.2.1
  • Alluxio Operator 版本:1.3.0

2. 测试环境准备

确保已经在云端kubernetes集群上搭建了Alluxio集群,集群中已启动以下pod,集群部署和启动方式详见《Alluxio on K8s部署教程》

  • 1 个 Coordinator pod

  • 2 个 Worker pod

  • 1 个 FUSE pod

    • 在业务pod启动时被自动拉起,和业务pod被分配在同一个node
  • 1 个业务pod

    • 启动方式:见FUSE-based POSIX API,下文也有启动yaml文件示例。启动视频教程见《Alluxio on K8s 部署教程》视频11分30秒处

2.1 集群配置

下面是alluxio集群的yaml文件配置内容。

注意1:etcd需要配置storageClass字段。不同云厂商的容器服务提供不同的storage class类型。如何配置,详见《Alluxio on K8s 部署教程》和Alluxio on K8s FAQ。如果不清楚当前云厂商容器服务的storage class类型,请执行kubectl get sc查看。如果您只是进行部署验证,同时当前没有方便的 storage class 供集群使用,您可以关闭 etcd 的 persistence 配置,如下。注意该配置无法适用于生产,仅供验证测试使用。

etcd:persistence:enabled: false

注意2:集群的默认配置会部署1个 coordinator、2 个 worker、1 套 3 节点 etcd,同时启动 pvc 的 pod 过程中会自动创建 fuse 相关 pod,请谨慎配置这些相关 pod 的 request 资源,以免相应 pod 无法调度成功。

apiVersion: k8s-operator.alluxio.com/v1
kind: AlluxioCluster
metadata:name: alluxio
spec:image: k8s-alluxio-cn-beijing.cr.volces.com/alluxio-test/alluxio-enterpriseimageTag: AI-3.2-5.2.1user: 0group: 0worker:count: 2resources:limits:cpu: "16"memory: "32Gi"requests:cpu: "0"memory: "512Mi"jvmOptions:- "-Xmx16g"- "-Xms16g"- "-XX:MaxDirectMemorySize=12g"fuse:type: csiresources:requests:cpu: "0"memory: "2Gi"limits:cpu: "32"memory: "16Gi"jvmOptions:- "-Xms24g"- "-Xmx24g"- "-XX:MaxDirectMemorySize=16g"etcd:enabled: truereplicaCount: 1persistence:storageClass: ebs-ssdsize: 30Giimage:registry: k8s-alluxio-cn-beijing.cr.volces.comrepository: alluxio-test/etcdtag: 3.5.9-debian-11-r24volumePermissions:image:registry: k8s-alluxio-cn-beijing.cr.volces.comrepository: alluxio-test/os-shelltag: 11-debian-11-r2alluxio-monitor:enabled: trueprometheus:imageInfo:image: k8s-alluxio-cn-beijing.cr.volces.com/alluxio-test/prometheusimageTag: v2.52.0grafana:imageInfo:image: k8s-alluxio-cn-beijing.cr.volces.com/alluxio-test/grafanaimageTag: 11.1.0-ubuntupagestore:quota: 10Gi

2.2 业务pod环境配置

下面是业务pod的yaml文件配置内容。此处yaml文件的image字段可以任意指定一个镜像。如果是国内用户,确保指定的镜像可以被集群拉取到即可。

apiVersion: v1
kind: Pod
metadata:name: fuse-test-0labels:app: alluxio
spec:containers:- image: k8s-alluxio-cn-beijing.cr.volces.com/alluxio-test/grafana:11.1.0-ubuntuimagePullPolicy: IfNotPresentname: fuse-testcommand: ["/bin/sh", "-c"]args:- sleep infinityvolumeMounts:- mountPath: /dataname: alluxio-pvcmountPropagation: HostToContainersecurityContext:runAsUser: 0runAsGroup: 0volumes:- name: alluxio-pvcpersistentVolumeClaim:claimName: alluxio-alluxio-csi-fuse-pvcnodeSelector:kubernetes.io/hostname: 172.31.16.6

如果fuse pod和worker pod被分配到了同一个node,那么数据并不会通过网络传输,会导致测试结果不准确。为了保证fuse pod与worker pod分配在不同的node,请使用最后两行来指定一个node,在其上分配fuse pod和业务pod。此处填入的值为kubectl get node看到的node name。此处为将该pod分配到名为172.31.16.6的node。

在业务pod上进行 fio 测试之前,需要进行以下配置:

  1. 更新并安装依赖:

    apt-get update && apt install -y libaio-dev fio openssh-server
    
  2. 启动 SSH 服务:

    service ssh start
    
  3. 配置免密登录,使业务pod可以免密登录到宿主机,便于清理 Kernel 缓存。

3. 测试流程

使用 fio 对 Alluxio 文件系统进行读操作的性能测试,具体步骤如下:

3.1 准备数据

首先,登陆进任意一个woker pod,使用 Alluxio 的 job 命令将测试数据加载到 Worker 节点上。例如,此处的测试数据为tos://tos-k8s-alluxio-test/5G,其为通过dd命令生成并上传的一个5GB大小的文件:

alluxio job load --path tos://tos-k8s-alluxio-test/5G --submit
alluxio job load --path tos://tos-k8s-alluxio-test/5G --progress

使用--submit提交数据load命令,使用--progress查看数据load进度。当--progress返回Job State: SUCCEEDED时,说明测试数据已经load完成,接下来通过alluxio-fuse的读操作都是热读。

3.2(重要)在每次测试前清理 Kernel Cache

在执行每次测试前,都需要清除 Kernel Cache,避免Linux kernel cache对测试结果的干扰。使用以下命令在宿主机上清除Kernel Cache:

sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'

3.3 执行顺序热读测试

3.3.1 -bs=4K 顺序热读

使用以下命令测试 4K 顺序热读性能:

fio -iodepth=1 -rw=read -ioengine=libaio -bs=4K -numjobs=1 -group_reporting -size=5G -filename=/data/tos/5G -name=read_test --readonly -direct=1 --invalidate=1
3.3.2 -bs=256K 顺序热读

清除 Kernel Cache后,使用以下命令测试 256K 顺序热读性能:

fio -iodepth=1 -rw=read -ioengine=libaio -bs=256K -numjobs=1 -group_reporting -size=5G -filename=/data/tos/5G -name=read_test --readonly -direct=1 --invalidate=1

3.4 执行随机热读测试

3.4.1 -bs=4K 随机热读

再次清理 Kernel Cache后,执行 4K 随机热读测试:

fio -iodepth=1 -rw=randread -ioengine=libaio -bs=4K -numjobs=1 -group_reporting -size=5G -filename=/data/tos/5G -name=read_test --readonly -direct=1 --invalidate=1
3.4.2 -bs=256K 随机热读

清理 Kernel Cache后,执行 256K 随机热读测试:

fio -iodepth=1 -rw=randread -ioengine=libaio -bs=256K -numjobs=1 -group_reporting -size=5G -filename=/data/tos/5G -name=read_test --readonly -direct=1 --invalidate=1

通过以上步骤,能够评估 Alluxio 文件系统在不同读写场景下的性能表现,并得到相应的数据支持。

视频中的实际测试结果显示,当batch size为256k,顺序热读场景下,fio 单线程读吞吐可达2924MB/s。增大线程数(numjobs)到32,64,可以得到更高的fio测试性能。关于更多测试结果,请点击官网性能测试。

相关文章:

Alluxio Enterprise AI on K8s FIO 测试教程

Alluxio Enterprise AI on K8s FIO 测试视频教程 视频为Alluxio Enterprise AI on K8s FIO测试视频教程。fio是业内常用的磁盘与文件系统性能测试工具,下面内容将通过文字方式介绍Alluxio on k8s 进行fio测试的教程。 1. 测试环境 虚拟机规格:ecs.g3i.…...

学习使用在windows系统上安装vue前端框架以及环境配置图文教程

学习使用在windows系统上安装vue前端框架以及环境配置图文教程 1、安装nodejs2、安装vue3、安装Vue-cli脚手架4、安装高版本5、创建vue项目6、启动项目7、配置开发环境8、发布项目 1、安装nodejs 点我查看教程 2、安装vue winR,打开cmd cnpm install vue -g表示安…...

基于Delphi的题库生成系统

基于Delphi的题库生成系统是一个复杂的项目,涉及到多个模块的设计和实现。以下是一个简化的代码案例,展示了如何使用Delphi构建一个基本的题库生成系统。 1. 数据库设计 首先,你需要设计一个数据库来存储试题信息。一个简单的数据库设计可…...

鸿蒙OpenHarmony【小型系统基础内核(进程管理任务)】子系统开发

任务 基本概念 从系统的角度看,任务Task是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源,并独立于其它任务运行。 OpenHarmony 内核中使用一个任务表示一个线程。 OpenHarmony 内核中同优先级进程内的任务统一调度、运…...

SpringBoot框架下的客户管理策略

1 绪论 1.1研究背景 随着网络不断的普及发展,企业客户管理系统依靠网络技术的支持得到了快速的发展,首先要从员工的实际需求出发,通过了解员工的需求开发出具有针对性的首页、个人中心、员工管理、客户信息管理、行业类型管理、项目信息管理、…...

GreenPlum与PostgreSQL数据库

*** Greenplum*** 是一款开源数据仓库。基于开源的PostgreSQL改造,主要用来处理大规模数据分析任务,相比Hadoop,Greenplum更适合做大数据的存储、计算和分析引擎 它本质上是多个PostgreSQL面向磁盘的数据库实例一起工作形成的一个紧密结合的数…...

CVE-2024-46101

前言 自己挖的第一个CVE~ 喜提critical 这里简单说一下。 漏洞简介 GDidees CMS < 3.9.1 的版本&#xff0c;存在一个任意文件上传漏洞。允许登录后的攻击者上传webshell获得网站的权限。 影响版本&#xff1a; GDidees CMS < 3.9.1 &#xff08;其它的我没测。。&am…...

PHPStorm如何调整字体大小

01 02...

string 的介绍及使用

一.string类介绍 C语言中&#xff0c;字符串是以’\0’结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0c;而且底层空间需要用户自己管理&a…...

高等数学的后续课程

1. 高等数学的后续课程 复变函数&#xff1a;研究复数的函数及其性质&#xff0c;包含解析函数、积分理论和应用。偏微分方程&#xff1a;处理涉及多个变量的微分方程&#xff0c;应用于物理、工程等领域。数学分析&#xff1a;更深入地研究极限、连续性、导数和积分等概念&am…...

基于 K8S kubernetes 搭建 安装 EFK日志收集平台

目录 1、在k8s中安装EFK组件 1.1 安装elasticsearch组件 1.2 安装kibana组件 1.3 安装fluentd组件 文档中的YAML文件配置直接复制粘贴可能存在格式错误&#xff0c;故实验中所需要的YAML文件以及本地包均打包至网盘 链接&#xff1a;https://pan.baidu.com/s/15Ryaoa0_…...

浅谈分布式系统

单机架构 单机架构就是只有一台服务器&#xff0c;这台服务器负责所有的工作。 初期&#xff0c;在用户访问量很少&#xff0c;没有对我们的性能、安全等提出很高的要求&#xff0c;而且系统架构简单&#xff0c;无需专业的运维团队&#xff0c;所以选择单机架构是合适的。 当…...

QT 自定义可拖动缩放的无边框窗口,可用于mainmindow, widget

1. 用于拖动&#xff0c;缩放的工具类 “WindowControl.h” #ifndef WINDOWCONTROL_H #define WINDOWCONTROL_H#include <QObject> #include <QRubberBand> #include <QStyleOptionFocusRect> #include <QStylePainter>class RubberBand; class Curs…...

鸿蒙 OS 开发零基础快速入门教程

视频课程: 东西比较多, 这里主要分享一些代码和案例. 开关灯效果案例: 开灯 开关灯效果案例: 关灯 Column 和 Row 的基本用法 Entry Component struct Index {State message: string 张三;build() {// 一行内容Row() {// 一列内容Column() {// 文本内容Text(this.mess…...

yolo介绍

YOLO&#xff08;You Only Look Once&#xff09;是一种目标检测算法。 一、主要特点 1. 速度快&#xff1a;YOLO 能够快速处理图像&#xff0c;实现实时目标检测。与其他一些目标检测算法相比&#xff0c;它在处理速度上具有明显优势&#xff0c;可以满足对实时性要求较高的应…...

传输层 II(TCP协议——协议的特点、报文段、连接管理)【★★★★】

&#xff08;★★&#xff09;代表非常重要的知识点&#xff0c;&#xff08;★&#xff09;代表重要的知识点。 一、TCP 协议的特点 TCP 是在不可靠的 IP 层之上实现的可靠的数据传输协议&#xff0c;它主要解决传输的可靠、有序、无丢失和不重复问题。TCP 是 TCP/IP 体系中非…...

质量小议47 - AI写用例

试着用AI写测试用例 AI替代基础性工作&#xff0c;帮助人思考&#xff0c;将会是更全面、更细致 时替代还是辅助 提问&#xff1a;密码输入框 测试用例评价指标- 功能性 - 可靠性 - 易用性 - 效率- 可维护性 - 可移植性基本思路 - 输入&#xff1a;遵从设计逻辑 和 系…...

etcd 集群搭建与测试指南

etcd 集群搭建与测试指南 一、容器搭建 1. 拉取 etcd 镜像 首先&#xff0c;需要从 Docker Hub 拉取 etcd 的镜像&#xff1a; docker pull quay.io/coreos/etcd:v3.3.12. 创建自定义网络 为了设置容器的固定 IP&#xff0c;需要创建一个自定义网络&#xff1a; docker n…...

写毕业论文用什么软件?分享6款好用的AI论文写作软件网站

撰写毕业论文是一项既重要又具挑战性的任务&#xff0c;尤其是在当今数字化时代&#xff0c;AI写作工具已经成为大学生撰写毕业论文的重要辅助手段。这些工具不仅能够提高写作效率&#xff0c;还能帮助学生生成高质量的文稿。以下是六款备受推荐的AI写毕业论文软件&#xff0c;…...

【技术解析】wx.request 封装:优化小程序网络请求的最佳实践

在当今的小程序开发领域&#xff0c;网络请求是构建动态应用的核心。微信小程序提供的 wx.request API 虽然强大&#xff0c;但在面对复杂业务逻辑时&#xff0c;其直接使用方式可能会带来一系列问题。本文将深入探讨封装 wx.request 的必要性&#xff0c;并提供一套实用的封装…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

二维FDTD算法仿真

二维FDTD算法仿真&#xff0c;并带完全匹配层&#xff0c;输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...