kafka 单机集群压力测试

kafka 单机集群压力测试,第1张

由于kafka吞吐量特别大,所以先考虑集群服务器的自身瓶颈,因为现在测试的是单机所以只会涉及到磁盘IO以及cpu,但是对于kafka来说对于cpu的使用还是可以忽略不计的,

1.1磁盘IO写入瓶颈

使用以下命令测试磁盘IO的写入瓶颈

synctime -p bash -c "(dd if=/dev/zero of=test.dd bs=1M count=20000)"

说明: 在当前目录下创建一个test.dd的文件,写入20000个1M的数据

磁盘写入IO的结果

可以看到平均就是187MB/s

1.2 使用iostat命令监测磁盘io情况

使用命令

# iostat -x 1

说明: 扩展查看io性能,每秒刷新一次

注意: 如果没有iostat,请执行 yum install sysstat -y 进行安装 iostat命令

关注wkB/s和%util两个参数

wkB/s:每秒写入设备的数据量(单位:KB)

%util:消耗在I/O请求中的CPU时间百分比(设备带宽利用率)。如果该值接近100%说明设备出现了瓶颈。

如图现在这台机器的磁盘IO极限值为187MB/s

1.3 单机版测试kafka性能

因为测试的次数比较多,也没有去找kafka中数据存储设置,所以就使用docker部署单机版的kafka (因为测试的数据比较多,也就多次的删除了容器,重新启动镜像)

新建目录:

mkdir /usr/local/kafka_test

dockerfile

run.sh

sources.list

目录结构如下:

生成镜像

docker build -t kafka_test /usr/local/kafka_test

启动kafka

docker run -d -it kafka_test

测试结果

从表格中可以看出来五个分区就已经是极限了

结果分析

这中间并没有设置条数/每秒,所以就是按照kafka 就会按照量级自动的吞入数据,如果我们需要对于消息的即时性做控制,还需要再重新测试一下,按照业务的延迟找到最合适的数量(单机版,然后再部署集群,测试适合的数量)

集群测试:

部署就不再这里说明了

本次测试的是三台机器集群

测试结果:

之后还测试了9个分区的topic 因为空间不足所以就没有继续测下去,但是看部分数据还超过了500MB/s还是有上升空间的

1.3 磁盘IO 读取瓶颈

使用一下命令测试磁盘IO的读取瓶颈

hdparm -tT --direct /dev/vda

说明: hdparm命令是显示与设定硬盘的参数, -t参数为评估硬盘的读取效率(不经过磁盘cache), -T参数为评估硬盘的读取效率(经过磁盘cache).

服务器测试方法

服务器测试方法分为两个大方面,性能测试与功能测试。

我们在性能测试方面采用了新的测试方法,主要分为文件测试、数据库性能测试与

Web

性能测试三个

方面。其中,文件性能与数据库性能采用美国

Quest

软件公司的

Benchmark Factory

负载测试和容量规划

软件,

Web

性能测试则使用了

Spirent

公司提供的

Caw WebAvalanche

测试仪。

一、性能测试

1

、文件性能测试方法

Benchmark Factory

软件能按照文件读写的关键指标定制事务。软件最大支持

1000

个虚拟客户。

本次测试环境包括

10

台配置为

PIII800/128MB

内存

/20G

硬盘以上的客户端,它们用来模拟虚拟用户。

控制台为配置是

PIII 850/128MB

内存

/40G

硬盘的

Acer

笔记本电脑。交换机为带有两个千兆

GBIC

接口、

24

10/100M

自适应端口的

Cisco 2950

,客户端与控制台通过

100M

网卡连到交换机上,被测服务器则通

过千兆光纤网卡与交换机相连接。

被测服务器均安装带

SP4

Windows

2000

Advanced Server

操作系统,在所有三项性能测试中都统一

RAID

级别为

5

在具体测试方案设置上,测试软件把决定文件读写操作的关键因素设定为:读

/

写、随机

/

顺序、操作

块大小、对象大小四个。在本次测试中,考虑到我们设有单独的数据库及

Web

测试项目,所以在文件测试

中,我们把目标确定为测试服务器基本的

I/O

性能,这主要由网络接口、系统带宽、磁盘子系统等几大部

分所决定。同时,从几部分的作用看,以大操作块读写大对象文件,小操作块读写小对象文件,较能反映

服务器最基本的

I/O

性能,即“大操作块读写大文件”对系统带宽、缓存的考察,以及“小操作块读写小

文件”对磁盘子系统、网络接口的考察。最终我们确定的四个事务是:

大文件顺序读写

(

操作块

8KB

,对象文件

80% 500KB

20% 1MB)

大文件随机读写

(

操作块

8KB

,对象文件

80% 500KB

20% 1MB)

小文件随机读

(

操作块

1KB

,对象文件

80% 1KB

10% 10KB

10% 50KB)

小文件顺序写

(

操作块

1KB

,对象文件

80% 1KB

10% 10KB

10% 50KB)

每个事务的用户数均以固定步长逐渐增加,

最大可增加到

1000

个虚拟用户。

其中,

“大文件顺序读写”

事务的用户数按照

40

的步长从

1

可增加到

400

(

测试至强服务器

)

200

(

测试

TUALATIN

服务器

)

,其

他事务则将用户数按照

100

的步长从

1

增加至

1000

。我们期望得到其在不同用户数时被测服务器的性能表

现。总体上其走势及峰值反映了该服务器的性能。每项事务均运行三次,每次之间被测服务器进行重启,

最终结果为三次平均值。

2

、数据库性能测试方法

“乘机安全小贴士”安全出行要重视

数据库性能测试同样使用了

Benchmark Factory

软件,测试环境如同文件性能测试。测试时,在被测

服务器上安装

SQL Server 2000

使用企业版。首先在被测服务器上创建新的数据库,通过使用

Benchmark

Factory

预定义的

Database Spec

项目向数据库中创建表,装载数据。在服务器端创建以

CPU

计算为主的

存储过程,通过

10

台客户机模拟用户、按照

40

个虚拟用户的步长递增到

400

个用户,执行该存储过程。

结果是以获得的每秒事务数

(TPS)

衡量服务器的数据库事务处理能力。

整个测试分为三次,

每次之间重新启

动被测服务器,最终取三次平均值作为评价结果。

3

Web

性能测试方法

Web

性能测试工具是由

Spirent

公司提供的

Caw WebAvalanche

WebAvalanche

模拟实际的用户发出

HTTP

请求,

并根据回应给出具体的详细测试结果。

它有以下特点:

能够模拟成百上千的客户端对服务器发

出请求

能够模拟真实的网络应用情况,

比如网站在高峰期的访问量应该是动态的维持,

有新客户端的加入,

同时也有原客户的离去,

访问量不是固定不变的

可以产生

20000

个连接

/

秒请求量,

足以满足测试的需要

测试项目丰富,有访问请求的成功失败数,有

URL

和页面的响应时间,有网络流量数,还有

HTTP

TCP

议的具体情况。

测试时,被测服务器与

WebAvalanche

上都装有千兆光纤网卡,两网卡通过光纤直接连接。监控端

(

置为

PIII 1GHz/128M

内存

/20G

硬盘

)

安装了带

SP4

Windows 2000 Server,

该监控端与

WebAvalanche

过交叉线直连。在监控端通过

Web

浏览器配置

WebAvalanche

,在被测服务器安装了

SQL Server 2000

企业

版,并用微软的

IIS

建立了

Web

服务器。

测试分为静态性能与动态性能两部分。主要是因为在实际的

Web

应用中,有的站点静态内容居多,提

供的服务也绝大多数是静态的,

因此,

他们就会特别的关心服务器静态性能

同样,

有的站点提供的服务交

互性的内容居多,他们就会更关心服务器的动态性能。

被测网站中页面大小及静态、动态页面所占比例均参照实际网站得出,整个网站静态、动态页面所占

比例是

70%

30%

,使用的动态页面类型为

ASP

。请求页面样本的文件大小分布比例与整个网站的相同。

静态性能测试模拟发出的均是静态页面请求。在测试动态性能时,动态页面的访问请求占

20%

,其余

80%

为静态页面请求。我们根据实际的

Web

服务器一天中的运行情况建立了一个服务器页面请求模型,该

模型由

4

个阶段组成,第一阶段是预热阶段,

WebAvalanche

发出的请求量由

0

慢慢上升到

200

第二阶段

是逐步加压阶段,请求量逐步累加到最大值

8200

第三阶段是动态维持阶段

第四阶段是下降阶段,请求量

由最大值迅速下降为

0

。其中,最大请求量略大于实际服务器能够提供的事务处理量。

被测服务器的静态与动态测试分别测试三遍,每遍之间被测服务器和测试仪均重启,结果取三次的平

均值。由此可见,此服务器测试方法立志于最终结果的准确性。

二、功能测试

在功能测试方面,我们对被测服务器的可扩展性、可用性以及可管理性进行了综合评价,其中可扩展

性包括硬盘、

PCI

槽以及内存等的扩展能力,可用性包括对热插拔、冗余设备

(

如硬盘、电源、风扇、网卡

)

的支持,可管理性则指的是服务器随机所带的管理软件。

我们在对服务器进行总体评价时,综合了性能、功能和价格三方面因素,依据《网络世界》所做的用

户调查结果,分别给予不同权重,性能占

50%

,功能占

40%

,而价格则占

10%

。在分析性能时,数据库性能

占其中的

50%

,而文件性能占

30%

Web

性能占

20%

综上所述,这种全新的服务器测试方法更够更准确更直接的对服务器进行测试,而且数据更加精确。

希望能给又需要的读者朋友带来一定的帮助

谢谢采纳。

网站的文件集群跟备份很重要。首先推荐服务器使用lnmp环境(linux+nginx+mysql+php),然后在来做集群。集群分三步走:

第一:域名支持智能解析。

第二:组建好主服务器跟分服务器。

第三:安装好自动备份软件,推荐:rsync。使用增量备份。设置1分钟自动发送一次。

原理如下:a为主服务器,b为分服务器。在a服务器上面更新网站的新内容,生成的新文件,在1分钟内,自动检测a服务器文件是否有变动,如果有,自动更新。以此类推。组建集群。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/516701.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-20
下一篇2023-06-20

发表评论

登录后才能评论

评论列表(0条)

    保存