k8s k3s云容器性能测试-边端云端性能测试
感谢公司同事的指导
测试目标:验证性能监控功能的CPU/memory/网络/存储性能监控是否工作
测试思路:
- CPU/Memory: 在MEC k3s集群里创建POD,在POD里为集群加压 e.g. memtester
- 网络: 创建两个pod 分别起在两个物理节点上,使用iperf3给网络加压
- 存储: 通过MEC 创建一块大磁盘,,通过 DD或其他工具将磁盘写满(e.g. ceph存储整体约30T,创建一块盘3T,预期存储 已用量会降低10%)
被测服务器:mec16边端服务器
step1 登录跳板
前端地址
物理机计算地址 control1 control2
物理机k3s节点
GPU节点
engine ip地址
k3s地址 k3sserver-1 k3sserver-2 k3sserver3
harbor地址
网关地址
1. 测试CPU memory
CPU/Memory:在MEC k3s集群里创建POD,在POD里为集群加压 e.g. memtester
1.1 登录ks3-1服务器10.121.xx.xx,目录/tmp 或者去测试服务器下载
cpu.yaml配置如下
apiVersion: apps/v1
kind: Deployment
metadata:name: cpu-mem-testnamespace: default
spec:selector:matchLabels:name: cpu-mem-testreplicas: 1template:metadata:labels:name: cpu-mem-testspec:nodeSelector:kubernetes.io/hostname: k3sagent-1imagePullSecrets:- name: docker-registry-secretcontainers:- name: cpu-mem-testimage: harbor.validationteam.com/library/cpu_centos:5imagePullPolicy: IfNotPresentsecurityContext:privileged: falseresources:limits:memory: "1Gi"cpu: "0.1"requests:memory: "1Gi"cpu: "0.1"ports:- containerPort: 22
[root@k3sserver-1 tmp]#
[root@k3sserver-1 tmp]# cp cpu_mem.yaml cpu_mem1125.yaml
[root@k3sserver-1 tmp]# cp cpu_mem2.yaml cpu_mem21125.yaml
vim cpu_mem1125.yaml
批量替换 :%s/cpu-mem-test/cpu-mem-test1125/g
kubernetes.io/hostname: k3sagent-1
vim cpu_mem21125.yaml
:%s/cpu-mem-test1/cpu-mem-test21125/g
kubernetes.io/hostname: k3sagent-2
1.2 创建pod
[root@k3sserver-1 tmp]# kubectl create -f cpu_mem1125.yaml
1.3 查询pod
[root@k3sserver-1 tmp]# kubectl get pod -A |grep cpu
default cpu-mem-test-57464dcc97-jhtqt 1/1 Running 1 2d2h
default cpu-mem-test1-75b59dddd8-drz4d 1/1 Running 0 2d2h
default cpu-mem-test1125-795cd5c685-lkktt 1/1 Running 0 133m
登录到pod
[root@k3sserver-1 tmp]# kubectl exec cpu-mem-test1125-795cd5c685-lkktt -it sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
sh-4.4#
1. 4 使用预先安装的memtester给集群加压 . 具体命令: memtester 10M 1000000
参数介绍
memtester [-p PHYSADDR] [ITERATIONS]
MEMORY 申请测试内存的数量,单位默认是megabytes(兆),也可以是B K M G
ITERATIONS 测试的次数,默认是无限
始测试,申请10M内存,测试一次,如下图:
memtester 10M 1
sh-4.4# memtester 10M 1000000
主要想对内存进行压力测试,以上只是试用,可以申请大内存,放入后台无限测试
nohup memtester 2G > /tmp/memtest.log &
sh-4.4# nohup memtester 2G > /tmp/memtest.log &
[1] 95
sh-4.4# nohup: ignoring input and redirecting stderr to stdout
sh-4.4# ps -ef|grep mem 查看mem进程
root 26 20 0 Nov25 pts/0 00:03:03 memtester 10M 1000000
root 84 0 9 05:59 ? 00:15:48 memtester 2G
root 95 89 4 08:31 pts/2 00:00:39 memtester 2G
root 101 89 0 08:44 pts/2 00:00:00 grep mem
对应系统上可以看到智能运维 > 监控告警 > 性能监控 - [边缘容器监控]的pod容器cpu-mem-test1125-795cd5c685-lkktt的CPU利用率-CPU Utilization增高
2. 网络测试方法
2.1 同样使用该 POD(pod1), 并创建一个新的POD(e.g.pod2),在pod内安装iperf3
yum install iperf3
登录pod容器方法同1.1和1.2
2.2 Pod1 执行 iperf3 -s
2.3 Pod2 执行 iperf3 -c <pod1 ip> -t <时间>
2.4 在性能界面会看到这两个pod所在的物理节点对应的网卡出现较大流量数据
2.2 登录ks3-1服务器10.121.xx.a
登录cputest1的容器
sh-4.4# iperf3 -s
2.3 登录ks3-2服务器10.121.xx.b
登录cputest2的容器
[root@k3sserver-2 ~]# kubectl get pod -A|grep cpu
default cpu-mem-test-57464dcc97-jhtqt 1/1 Running 1 3d1h
default cpu-mem-test1-75b59dddd8-drz4d 1/1 Running 0 3d1h
default cpu-mem-test1125-795cd5c685-lkktt 1/1 Running 0 25h
default cpu-mem-test21125-65f5855456-qjxqc 1/1 Running 0 21h
[root@k3sserver-2 ~]# kubectl exec -it cpu-mem-test21125-65f5855456-qjxqc -n default sh
安装iperf3,执行
sh-4.4# yum install iperf3
点击y 直到安装完毕执行
查看容器pod1的内网ip 为10.16.0.x
ip a |grep inet
在容器pod2执行
sh-4.4# iperf3 -c pod1的内网ip -t 1000
智能运维 > 监控告警 > 性能监控 - 边缘节点监控 看到的结果,网速上升
3. 存储测试方法
准备工作:
登录mec系统,虚拟机资源 > 存储管理,创建一块很大的磁盘(T单位的,这里创建的是3T)
登录mec系统,虚拟机资源 > 虚拟机管理,创建虚拟机,添加刚刚创建的磁盘
登录mec创建好的虚拟机,mac电脑用vnc连接虚拟机的console.vv(2分钟内有效) ip:port
连接虚拟机成功需要输入root 2020的密码
step1-5在虚拟机上操作
1. mkfs -t ext4 /dev/<磁盘名>
2. mkfs -t ext4 /dev/vdb #格式化磁盘。把第二块硬盘整个格式化成ext4文件系统,同时会覆盖掉原来到分区表
3. mkdir /mnt/vdb #创建挂载文件夹
4. lsblk (可以看到/dev/vdx)
#用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息
此时MOUNTPOINT(目录是否是加载点)无内容
5. mount /dev/vdb /mnt/vdb #需要重新挂载
lsblk 此时MOUNTPOINT有挂载点,为/mnt/vdb,一定要校验创建的文件夹vdb挂载在目录/mnt/vdb了。没有没挂载上(MOUNTPOINT无value值),则会对系统盘造成压力,等于测试白测了
step6-7在mec的物理机、ceph上操作
6. 登录mec16服务器的物理计算机control1
[root@control1 ~]# mount |grep ceph
ssh 172.xx.xx.xx #登录ceph
7. ceph df #在写磁盘前检查 ceph容量 -- %USED
step8在虚拟机上操作
8. 使用dd命令将磁盘写满
参考博客dd linux 压测,使用dd命令简单测试磁盘性能
dd if=/dev/zero of=/mnt/vdb/ls bs=10M count=2048000
把创建的/dev/zero文件向/mnt/vdb/ls文件写数据,其中/mnt/vdb为刚刚创建的文件夹目录,zero和ls均为新文件
注:命令行解释:
创建一个大小为256M的文件:
#dd if=/dev/zero of=/swapfile bs=1024 count=262144
备份磁盘开始的512个字节大小的MBR信息到指定文件
#dd if=/dev/hda of=/root/image count=1 bs=512
count=1指仅拷贝一个块;bs=512指块大小为512个字节
参考Linux 下的dd命令使用详解以及dd if=/dev/zero of=的含义
step9在mec的ceph操作
9. [root@ceph-0 ~]# watch ceph df
查看ceph使用率的变化--每2s
step10在mec的ceph操作
10. 写完磁盘后,再次检查 ceph存储容量
看总的余量
11. 登录cmo系统,智能运维 > 监控告警 > 性能监控 - 存储监控
IO BW上升,IO写入
剩余容量Capacity不断下降
完结,撒花~~~~~
k8s k3s云容器性能测试-边端云端性能测试相关推荐
- 阿里云容器服务cni网络插件terway非官方网络性能测试
作者:张荣滨,酷划在线后端架构师,关注微服务治理,容器化技术,Service Mesh等技术领域 terway网络性能测试 酷划在线成立于2014年,是国内激励广告行业的领军者.酷划致力于打造一个用户 ...
- 通过阿里云容器服务K8S Ingress Controller实现应用服务的灰度发布
简介 日常工作中我们经常需要对服务进行版本更新升级,为此我们经常使用到的发布方式有滚动升级.分批暂停发布.蓝绿发布以及灰度发布,今天主要跟大家分享下在阿里云容器服务Kubernetes集群中如何通过I ...
- 教程get | K8S部署OpenStack容器云(下)
如何借助OpenStack Kolla-K8S项目,通过K8S对OpenStack进行容器化部署?并最终部署一套All-In-One类型的OpenStack容器云?让我们继续部署: 部署kolla-k ...
- 基于阿里云容器镜像服务加速K8S镜像下载
简单说明: 部署K8S最大的难题是镜像下载 可以使用阿里云容器镜像服务由海外机器构建 国内同时可以使用阿里云的镜像加速器加速镜像下载 仅需要将含有相关镜像的Dockerfile提交到阿里云即可 申请云 ...
- 基于阿里云容器镜像服务加速K8S镜像下载(二)
简单说明 在<基于阿里云容器镜像服务加速K8S镜像下载>中介绍了使用阿里云镜像服务来解决一些不可达镜像的下载 但是需要反复在阿里云容器镜像控制台添加仓库,这种操作实在太傻,是电脑这头蠢驴该 ...
- k8s边缘节点_KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码
从v0.1到v0.2 小数点后的一小步 是边缘计算领域里程碑式的一大步 KubeEdge发布v0.2版本 全球首个基于K8S 提供云边协同能力的开源边缘计算架构 正式补齐最后一块拼图 将毫无保留地提供 ...
- 连续两年入选Gartner公共云容器,阿里云在边缘容器方面做了什么?
最近,Gartner发布了2020年公共云容器报告,阿里云连续两年成为唯一入选的中国企业.报告显示,阿里云容器服务在中国市场表现强劲,产品形态丰富,在 Serverless 容器.服务网格.安全沙箱容 ...
- 连续3年入围 Gartner 容器竞争格局,阿里云容器服务新布局首次公开
连续3年入围 Gartner 容器竞争格局,阿里云容器服务新布局首次公开 https://www.toutiao.com/i6950935574450684423/?tt_from=weixin&am ...
- 从阿里云容器攻防矩阵API安全生命周期,看如何构建金融安全云原生平台
[编者按]云原生技术正在助力银行通过差异化业务进行创新,却也带来了由于研发/运维人员对新架构不熟悉所导致的基础设施风险.业务风险及数据暴露风险.如何在飞速更迭的技术环境下保持业务持续发展,同时保证业务 ...
最新文章
- redis-deskmanager 连不上 虚拟机 - centos redis
- 【Excel】VBA自动化更新数据表格
- [js高手之路] vue系列教程 - vue的事件绑定与方法(2)
- 类QQ右下角弹出框(Qt)
- 关于Tensorflow安装opencv和pygame
- jQuery 中的事件参数传递机制
- 安卓学习笔记01:安装集成开发环境Android Studio
- 18.XML CDATA
- 11.策略模式(Strategy Pattern)
- 【深度学习论文】:U-Net
- 计算机二级系统环境,计算机等级二级Java考试辅导:“系统和环境”单元综合复习...
- 《战术篇》阵型的设定与编辑,战术命令详解
- Chrome浏览器安装扩展程序后菜单栏图标不显示
- xp系统服务器找不到打印机无法连接失败,xp系统打印机共享提示连接失败的解决方法...
- Linux 打包压缩(tar、gzip、bzip、xz)备份(备份dump genisoimage 还原restore)
- tp5 以及网站架构个人心得
- 那些散落在人间的天使
- mysql myisam转innodb_WordPressMySQL数据库MyISAM表转换InnoDB方法和修复工具
- 【Codeforces613D】Kingdom and its Cities【虚树】【Tree DP】倍增lca
- 【计算机视觉与深度学习 北京邮电大学 鲁鹏 视频笔记】1. 线性分类器
热门文章
- html行间距1.8em,css如何控制行间距?
- 深入理解漏洞之 XXE 漏洞
- MediaPipe人体姿态、手指关键点检测
- 红书上的几道搜索例题
- java zlib 解压_在javascript中解压缩gzip和zlib字符串
- PHP Yac cache 源码学习笔记
- vant自定义引入iconfont图标以及字体
- Leetcode--Java--820. 单词的压缩编码
- otter 简单同步使用,上手就是这么随意
- 武汉交通职业学院计算机分数线,武汉交通职业学院录取分数线2021是多少分(附历年录取分数线)...