首页 >>  正文

mysql内存表和redis

来源:baiyundou.net   日期:2024-09-22

本文重点

  • 整体而言,SKS(虚拟机 Kubernetes)可以达到裸金属 Kubernetes 性能的 82% - 96%,满足绝大部分场景下生产容器应用的性能需求。
  • 更多虚拟化与裸金属 Kubernetes 架构、特性、适用场景与性能对比,欢迎阅读文末电子书《IT 基础架构团队的 Kubernetes 管理:从入门到评估(更新版)》。

前段时间,我们通过《如何选择K8s部署环境?来看这份虚拟化与裸金属架构及特性对比》和《哪些应用场景下,在虚拟化环境部署 Kubernetes 更有优势?》两篇文章,从功能特性和应用场景的角度,对比了虚拟化环境和裸金属环境部署 Kubernetes 的区别和优劣势。在性能方面,虽然普遍认为裸金属支持 Kubernetes 性能更佳,但对于两个环境的具体表现和性能差距并没有明确的数据参考,甚至有不少用户认为“虚拟化上的 Kubernetes 不能满足生产需求”。

为了让用户直观感受两个环境对 Kubernetes 的支持能力,我们分别测试了基于裸金属与 SMTX Kubernetes Service(SKS)运行有状态应用和无状态应用的性能表现。综合结果显示,SKS(虚拟机 Kubernetes)可以达到裸机 Kubernetes 性能的 82% - 96%,满足绝大部分场景下生产容器应用的性能需求。

1 测试目标

在 Kubernetes 版本、相关的调优参数、应用的资源配置均保持一致的情况下,对比测试超融合(虚拟化环境)上部署 Kubernetes 集群与裸金属服务器部署 Kubernetes 集群的基础性能、有状态应用性能和无状态应用性能。其中,有状态应用选择 MySQL、Redis 和 Kafka,无状态应用选择 Nginx 和微服务测试 Online Boutique。

在这次测试中,我们使用了配置相同(包括 CPU、内存、本地盘和网络)的裸金属服务器。这些服务器被用于部署两种 Kubernetes 集群:一种是通过 SmartX 超融合(内置原生虚拟化 ELF)部署的 SKS Kubernetes 集群(包含 1 个 Control Plane 和 1 个 Worker),另一种是直接运行在一个裸金属上的 Kubernetes 集群。

SKS Kubernetes 集群使用了超融合集群自身的分布式存储,而裸金属上的 Kubernetes 集群则通过 CSI 使用了分离部署的分布式存储集群的资源。这个分布式存储集群的配置(CPU/内存/本地盘/网络)与超融合集群保持一致。

测试环境架构图

为了方便表述,下文中两种测试环境分别简称为“SKS”和“裸金属 Kubernetes”。

2 测试环境配置

2.1 软件环境

2.1.1 SKS 环境(基于超融合部署)

SMTX OS(SmartX 超融合软件):

SKS:

2.1.2 裸金属环境

2.2 硬件环境

裸金属服务器配置见下表。

3 测试过程与结果

3.1 基础性能测试

利用 FIO 对两个环境进行压力测试,结果显示,得益于 SMTX ELF CSI 具备超融合系统中 I/O 本地化的性能优势,SKS 相比裸金属 Kubernetes 性能更佳。

3.2 有状态应用测试

3.2.1 MySQL

软件列表:

测试结果:

  • ReadWrite
  • 连续 1 小时压测

3.2.2 Redis

参数设定:

  • 10,000,000 requests
  • 200 parallel clients
  • Mixed 模式数据持久化模式(AOF、RDB)

测试结果:

3.2.3 Kafka

参数设定:

  • 6 Partition 3 Replication
  • num-records 10,000,000

测试结果:

3.3 无状态应用测试

3.3.1 Nginx

软件列表:

测试结果:

可以看到,20000 以下的用户并发场景下,SKS 与裸金属 Kubernetes 性能相差小于 1%。

长时间运行后,25000 用户并发场景下,SKS 与裸金属 Kubernetes 性能相差在 12% 左右。

3.3.2 微服务测试 Online Boutique

Online Boutique 是一个云优先的微服务演示应用程序,由 11 层微服务应用程序组成。该应用程序是一个基于网络的电子商务应用程序,用户可以在其中浏览商品、将其添加到购物车并购买。

软件列表:

测试结果:

可以看到,5000 以下的用户并发场景下,SKS 与裸金属 Kubernetes 性能相差小于 4%,后随着用户数量提升,最大差距在 20% 左右。

4 测试结论

综合以上测试结果,可以看到,在 SKS 上运行的有状态和无状态应用的整体性能水平,可达到裸金属 Kubernetes 的 82% - 96%,在一些常规业务压力的场景下,SKS 与裸金属 Kubernetes 几乎可以提供相同的性能,满足绝大多数业务场景的性能需求。具体来说:

  • SKS 可以很好地支撑处于早期和起步阶段的用户的容器化应用。
  • SKS 可以很好地支撑所有场景中的研发测试集群上的容器化应用。
  • 虽然各类企业应用对性能的需求不尽相同,但通过以上多个场景的测试结果可以看出,SKS 可满足大部分常规应用场景的性能需求(除非应用对性能要求非常严格,或同时在线用户数可达到较高水平)。SKS 在下一版本也会增加对裸金属部署环境的支持能力,以满足不同用户和应用的性能需求。
  • 另外值得注意的是,此次测试时 SKS 基于 SmartX 超融合部署,并开启了 Boost 模式进行加速,其他的虚拟化方案可能无法达到相同的性能水平。

此外,正如《哪些应用场景下,在虚拟化环境部署 Kubernetes 更有优势?》文章中提到,虽然虚拟化和裸金属支持 Kubernetes 在性能上有所差距,但由于虚拟化在资源效率、弹性扩缩、安全隔离、简易运维等方面的优势,Gartner 预计直到 2027 年依旧会有 70% 的数据中心 x86 工作负载部署在虚拟化环境,为容器化应用提供敏捷支持。

基于虚拟化/超融合建设 Kubernetes 的优势

更多关于 Kubernetes 平台的管理运维知识,您可点击一键获取电子书IT 基础架构团队的 Kubernetes 管理:从入门到评估

阅读原文:虚拟化和裸金属 K8s 哪个性能更好?一文了解多场景下的性能对比数据  SmartX

","gnid":"9abf507f148a4ddb0","img_data":[{"flag":2,"img":[{"desc":"","height":"600","title":"","url":"https://p0.ssl.img.360kuai.com/t01ccd7144bc4518788.jpg","width":"952"},{"desc":"","height":"600","title":"","url":"https://p0.ssl.img.360kuai.com/t016e051c4aecfff340.jpg","width":"952"},{"desc":"","height":"243","title":"","url":"https://p0.ssl.img.360kuai.com/t012dbb025301568718.jpg","width":"796"},{"desc":"","height":"464","title":"","url":"https://p0.ssl.img.360kuai.com/t01d7a454728153c91e.jpg","width":"1080"},{"desc":"","height":"414","title":"","url":"https://p0.ssl.img.360kuai.com/t016c3e8e79fa0d7a19.jpg","width":"938"},{"desc":"","height":"411","title":"","url":"https://p0.ssl.img.360kuai.com/t01bda4e366443596c4.jpg","width":"1080"},{"desc":"","height":"459","title":"","url":"https://p0.ssl.img.360kuai.com/t0168abda563e813079.jpg","width":"1080"},{"desc":"","height":"483","title":"","url":"https://p0.ssl.img.360kuai.com/t0187c2ca805412a1e3.jpg","width":"1080"},{"desc":"","height":"472","title":"","url":"https://p0.ssl.img.360kuai.com/t012c3f75dbc17c1a8c.jpg","width":"1080"},{"desc":"","height":"480","title":"","url":"https://p0.ssl.img.360kuai.com/t018922b9b728add3a4.jpg","width":"1080"},{"desc":"","height":"210","title":"","url":"https://p0.ssl.img.360kuai.com/t015da2b0da3af142bc.jpg","width":"1019"},{"desc":"","height":"1244","title":"","url":"https://p0.ssl.img.360kuai.com/t011a7a31657d7e0226.jpg","width":"1080"},{"desc":"","height":"483","title":"","url":"https://p0.ssl.img.360kuai.com/t01a7d950fa856ba8f1.jpg","width":"1080"},{"desc":"","height":"1218","title":"","url":"https://p0.ssl.img.360kuai.com/t0128118ffd051e7088.jpg","width":"1041"},{"desc":"","height":"334","title":"","url":"https://p0.ssl.img.360kuai.com/t01a939f1cffdc1771d.jpg","width":"1080"},{"desc":"","height":"210","title":"","url":"https://p0.ssl.img.360kuai.com/t01393197dec74255ff.jpg","width":"1019"},{"desc":"","height":"1814","title":"","url":"https://p0.ssl.img.360kuai.com/t0186501c25ed22b1fe.jpg","width":"1080"},{"desc":"","height":"300","title":"","url":"https://p0.ssl.img.360kuai.com/t01c86e67fbe1af385e.jpg","width":"1080"},{"desc":"","height":"868","title":"","url":"https://p0.ssl.img.360kuai.com/t015daf0662f136123a.jpg","width":"1080"},{"desc":"","height":"2106","title":"","url":"https://p0.ssl.img.360kuai.com/t01b9b6cc6a2533db50.jpg","width":"1080"},{"desc":"","height":"557","title":"","url":"https://p0.ssl.img.360kuai.com/t01996aafa4f428c170.jpg","width":"1080"},{"desc":"","height":"484","title":"","url":"https://p0.ssl.img.360kuai.com/t01c4ff9f20c795da17.jpg","width":"1080"}]}],"original":0,"pat":"art_src_3,sexf,sex8,sexc,fts0,sts0","powerby":"pika","pub_time":1707103080000,"pure":"","rawurl":"http://zm.news.so.com/71888f5a01dd6b6302b5d0f55647e231","redirect":0,"rptid":"873fd018973c77d9","rss_ext":[],"s":"t","src":"志凌海纳SmartX","tag":[],"title":"虚拟化和裸金属 K8s 哪个性能更好?我们做了 6 个应用场景测试

徐凡段5083mysql 支持的表类型有哪些 -
庄古叛19784182414 ______ Mysql表类型都有哪些是一定需要知道的,下面就为您介绍七种Mysql表类型,希望能对您学习Mysql表类型有所帮助,需要的朋友可以了解下 学习Mysql数据库,Mysql表类型都有哪些是一定需要知道的,下面就为您介绍七种Mysql表类型,希望...

徐凡段5083如何选择合适的MySQL存储引擎文档 -
庄古叛19784182414 ______ 大部分情况下,InnoDB都是正确的选择,可以简单地归纳为一句话“除非需要用到百某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎”. 除非万不得已,否则建议不要混合使用多种存储引擎度,否则...

徐凡段5083如何在mysql中创建表 -
庄古叛19784182414 ______ 登陆mysql->连接目标数据库->运行sql create table 语句 例如创建一张学生表: create table students (sid int primary key,sname varchar(50) not null,sex bit,dob date);

徐凡段5083MYSQL 内存表 有能存中文的字段类型么 -
庄古叛19784182414 ______ 可以.mysql> create table tttt(`中文` int) engine=memory; Query OK, 0 rows affected (0.05 sec) mysql> insert into tttt values(1); Query OK, 1 row affected (0.00 sec) mysql> select * from tttt;+------+ | 中文 |+------+ | 1 |+------+1 row in set (0.00 sec) ...

徐凡段5083mysql,一个数据库能存多少张表?一张表能存多少条数据?
庄古叛19784182414 ______ 在mysql中,每个数据库最多可创建20亿个表,一个表允许定义1024列,每行的最大长度为8092字节(不包括文本和图像类型的长度). 当表中定义有varchar、nvarchar或varbinary类型列时,如果向表中插入的数据行超过8092字节时将导致Transact-SQL语句失败,并产生错误信息. SQL对每个表中行的数量没有直接限制,但它受数据库存储空间的限制. 每个数据库的最大空间1048516TB,所以一个表可用的最大空间为1048516TB减去数据库类系统表和其它数据库对象所占用的空间. 其实这也是我在网上搜到的,你只要去百度一下,就会找到的,反正这个数据库的容量是足够你用的

徐凡段5083如何统计mysql 使用磁盘与内存 -
庄古叛19784182414 ______ 线程管理,服务器程序为了提高效率,会将一些信息存储于buffer(cache).Memory(HEAP)引擎将数据存储在那种中内存中.临时表如果没有超过设定的限制会存储在内存中.每个客户端连接都会使用一定的buffer空间 全局的Buffer和Cache(比如MyISAM的keybuffer,InnoDB的buffer pool, Query cache等 )

徐凡段5083如何创建MySQL存储过程可以返回一个表类型的数据 -
庄古叛19784182414 ______ 如何创建MySQL存储过程可以返回一个表类型的数据 首先需要知道“另一个存储过程”的结果集的所有列的类型. 假设“另一个存储过程”的名字是sp1,没有参数,返回的结果集共3列,全部为int型,那么“存储过程”里添加一个与结果集列...

徐凡段5083怎么提高Mysql执行sql导入的速度 -
庄古叛19784182414 ______ 你好, linux如下设置内存盘:mount -t ramfs none /ram默认使用内存一半如果内存不够大,系统有多个硬盘,则把mysql应用程序和data目录分开到不同硬盘上.2、mysql的表设置为myiasm,比同等条件下的innodb能快20倍以上3、导入完成以...

徐凡段5083mysql innodb怎么存储数据的 -
庄古叛19784182414 ______ 从物理意义上来讲,InnoDB表由共享表空间、日志文件组(redo文件组)、表结构定义文件组成.若将innodb_file_per_table设置为on,则系统将为每一个表单独的生成一个table_name.ibd的文件,在此文件中,存储与该表相关的数据、索引、表的内部数据字典信息.表结构文件则以.frm结尾,这与存储引擎无关.

徐凡段5083mysql临时表中的数据怎么复制到mysql内存表中 -
庄古叛19784182414 ______ 这个确实简单MYSQL支持这种复制语法:insert into `tb`(`field1`,`field2`..) select `field1`,`field2`.. from `tb`;注意修改为你自己的表名和字段名两个字段列表(`field1`,`field2`..)数量要相同你要全字段复制,就把除了自增字段之外的所有字段都列出来

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024