Kafka压测— 搞垮kafka的方法(转)】的更多相关文章

分布式系统故障场景梳理方法: 场景梳理逻辑关系: 单点硬件故障→单点进程故障类型→集群影响→集群故障场景 第三方依赖故障→集群依赖关系→集群影响→集群故障场景 业务场景→集群负载/错误影响→集群故障场景 Kafka故障场景 Kafka故障的定义是什么? 故障场景 单点硬件故障→集群故障场景 第三方依赖故障→集群故障场景 业务场景→集群故障场景 Kafka压测 Kafka数据丢失: Kafka什么情况下一定会丢失数据? Kafka什么情况的一定不会丢失数据? Kafka数据写入降低百毫秒级? Ka…
原文并未提及kafka的版本 并且测试的消息大小都偏小  测试数据供参考 原文还测试了broker等    原文请移步文章末尾 4.1 producer测试 4.1.1 batch-size 测试结果 测试结论 测试中通过我们增加batch-size的大小,我们可以发现在消息未压缩的前提下,20000条一批次之后吞吐稳定在19.65M/s. 4.1.2 ack 测试结果 测试结论 4.1.3 message-size 测试结论 测试中通过我们使用两种不同的消息大小,发现在消息未压缩的前提下且其他…
一.场景 线上已经有kafka集群,服务运行稳定.但是因为产品升级,需要对kakfa做安全测试,也就是权限验证. 但是增加权限验证,会不会对性能有影响呢?影响大吗?不知道呀! 因此,本文就此来做一下对比! 测试环境 本文使用的是单机kafka测试,仅在一台服务器做测试. 使用的kafka版本为kafka_2.12-2.1.0,zk直接使用kafka自带的. 硬件配置为:1(核)-4G内容-40G硬盘 二.普通版安装 关于普通版的kafka,请参考链接: https://www.cnblogs.c…
2017年3月,腾讯正式于全平台上线了<龙之谷>手游,次日冲到了App Store畅销排行第二的位置,并维持到了现在.上线当日百度指数超过40万,微信游戏平台数据显示预约数780多万,而据内部人员透露当日新进用户200W+,这就是<龙之谷>手游在安卓平台上所取得的成绩. 较高的市场期待让腾讯测试团队对<龙之谷>手游的测试倾尽全力,面对"经典IP"和盛大游戏一贯口碑,腾讯测试团队对游戏服务器进行了严格的压力测试,上线后服务器稳定的表现也证明了测试团队的…
简介:使用非GUI模式,即命令行模式运行jmeter测试脚本能够大大缩减系统资源 1.配置jdk及添加环境变量 变量名:JAVA_HOME 变量值: C:\Program Files\Java\jdk1.8.0_51 (即jdk安装的位置)变量名:Path  (这个变量名已在系统变量中存在,现只需增加如下变量值)变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin变量名:CLASSPATH变量值:.;%JAVA_HOME%lib;%JAVA_HOME%lib\tools…
1.JMH简介 JMH即Java Microbenchmark Harness,是Java用来做基准测试的一个工具,该工具由OpenJDK提供并维护,测试结果可信度高. 相对于 Jmeter.ab ,它通过编写代码的方式进行压测,在特定场景下会更能评估某项性能. 本次通过使用JMH来压测Dubbo的性能(官方也是使用JMH压测) 2.使用 只需要引用两个jar即可: <dependency> <groupId>org.openjdk.jmh</groupId> <…
1 配置jdk8 假设安装(解压)路径:jdk1.8.0 修改/etc/profile,增加以下设置并保存 Export JAVA_HOME=jdk1.8.0 Export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH Export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH 命令行中执行source /etc/profile 2 Zookeeper centos7 虚拟机群部署 假设目…
报错详情: java.net.SocketException: Socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.Soc…
报错详情: 引起 java.net.SocketException: Socket closed 错误的原因通常是 未设置连接的超时时间. 解决方法: 该问题可以尝试通过以下方法解决. 如果在 HTTP Request Sampler 的 Basic 里勾选了 Use KeepAlive,那么建议在 Advanced 页签下: 1.Implementation 选为 HttpClient4 2.Timeouts 中的 Connect 设置一个10~60秒的值,表示连接的空闲超时时间,避免由于没收…
今天,我们将讨论Kafka Performance Tuning.在本文“Kafka性能调优”中,我们将描述在设置集群配置时需要注意的配置.此外,我们将讨论Tuning Kafka Producers,Tuning Kafka Consumers和Tuning Kafka Brokers.那么,让我们从Kafka Performance Tuning开始吧. Kafka性能调优 - Kafka优化的方法 2. Kafka Performance Tuning是什么? 在我们讨论Kafka性能调优…
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串.其中,序列中的元素应是字符串类型. 学习join()方法主要是为了配合随机数的使用,生产某个指定位数的随机数,在tcp压测的时候发送数据也可以采用次方法随机产生自定长度的数据内容 join()方法语法:   例子: str='-'l=['2016','5','9']t=('2016','5','9')print(str.join(l))print(str.join(t))print('!'.join('pyth…
用apache自带ab命令进行压测,报了如下错误: 原因是在ab的程序源码中对并发数有限制. 解决办法:修改apache源码support下面的ab.c源代码,然后重新编译.修改内容如下:…
之前在windows机上用JMeter压测,50并发下出现大量接口报“java.net.BindException: Address already in use: connect”错误. 从字面的意思看,是地址被占用了. 查资料才知道是windows本身提供的端口数量有限制.导致接口请求时,端口被占用:Windows XP提供给 TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收他们.就导致我们在短时间内跑大量的请求时将端口占满了. 解决步骤: 1.cmd中,用regedit…
部署环境Linux(Centos 6.5),JDK 1.8.0,zookeeper-3.4.12,kafka_2.11-2.0.0. 1. 单机环境     官方建议使用JDK 1.8版本,因此本文使用的环境都是JDK1.8.如果小于1.8版本,请看我的博客:https://www.cnblogs.com/xuejiale/p/10504845.html 将环境的JDK更新到1.8版本.(PS:我开始使用机器默认安装的JDK 1.7,在启动kafka时会报错). 由于Kafka依赖zookeep…
一.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. Kafka场景比喻 接下来我大概比喻下Kafka的使用场景 消息中间件:生产者和消费者 妈妈:生产者你:消费者馒头:数据流.消息正常情况下: 生产一个  消费一个其他情况:  1)一直生产,你吃到某一个馒头时,你卡主(机器故障), 馒头就丢失了2)一直生产,做馒头速度快,你吃来不及,馒头也就丢失了为了放着其他生产情况的出现,我们可以拿个碗/篮子,馒头做好以后先放到篮子里,你要吃的时候去篮子里面取…
一 kafka的API操作 1.1 环境准备 1)在eclipse中创建一个java工程 2)在工程的根目录创建一个lib文件夹 3)解压kafka安装包,将安装包libs目录下的jar包拷贝到工程的lib目录下,并build path. 4)启动zk和kafka集群,在kafka集群中打开一个消费者 [root@node21 kafka]$ bin/kafka-console-consumer.sh --zookeeper node21:2181,node22:2181,node23:2181…
一.kafka 简介 今社会各种应用系统诸如商业.社交.搜索.浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何及时做到如上两点 以上几个挑战形成了一个业务需求模型,即生产者生产(produce)各种信息,消费者消费(consume)(处理分析)这些信息,而在生产者与消费者之间,需要一个沟通两者的桥梁-消息系统.从一个微观层面来说,这种需求也可理解为不同的系统之间如何传递消息. kafka是一种高吞吐量的分布式发布订阅消息系统…
一.Kafka简介 本文综合了我之前写的kafka相关文章,可作为一个全面了解学习kafka的培训学习资料. 转载请注明出处 : 本文链接 1.1 背景历史 当今社会各种应用系统诸如商业.社交.搜索.浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何及时做到如上两点 以上几个挑战形成了一个业务需求模型,即生产者生产(produce)各种信息,消费者消费(consume)(处理分析)这些信息,而在生产者与消费者之间,需要一个沟通…
(一)Apache Kafka安装 1.安装环境与前提条件   安装环境:Ubuntu16.04   前提条件: ubuntu系统下安装好jdk 1.8以上版本,正确配置环境变量 ubuntu系统下安装好scala 2.11版本 安装ZooKeeper(注:kafka自带一个Zookeeper服务,如果不单独安装,也可以使用自带的ZK) 2.安装步骤   Apache基金会开源的这些软件基本上安装都比较方便,只需要下载.解压.配置环境变量三步即可完成,kafka也一样,官网选择对应版本下载后直接…
用过了很多压测工具,却一直没找到中意的那款.最近试了wrk感觉不错,写下这份使用指南给自己备忘用,如果能帮到你,那也很好. 安装 wrk支持大多数类UNIX系统,不支持windows.需要操作系统支持LuaJIT和OpenSSL,不过不用担心,大多数类Unix系统都支持.安装wrk非常简单,只要从github上下载wrk源码,在项目路径下执行make命令即可. git clone https://github.com/wg/wrk make make之后,会在项目路径下生成可执行文件wrk,随后…
下载及安装 官网下载JMeter3.0: 找到bin目录下的jmeter.bat启动: 压测Rest请求 1.添加线程组 路径:右键“测试计划”->添加“Threads(Users)”->线程组 说明: 每一个JMeter线程都会完整地执行测试计划,而且它们之间是完全独立运行的.这种多线程机制被用来模拟服务器应用的并发连接.参数Ramp-Up Period告诉JMeter达到最大线程数需要多长时间. 假设共有10个线程,Ramp-Up Period 为100秒, 那么JMeter 就会在100…
今天的年会已过,仍然是空手而归,不过俺坚信能让生活稳定永远都是努力.由于隔壁组负责年会的抢红包项目,因而趁此机会把通过工具模拟高并发的知识补了补,通过和身边大师的交流,总算是对压力测试有了个简要的了解,尤其是熟悉JMeter的使用(之前还想过自己写个多线程客户端,被大师说重复造轮子不可取). Apache JMeter是Apache组织开发的基于Java的压力测试工具,是非常简洁有效的选择,页面使用swing构建.支持很多类型的测试,包括最常见的Web(Http/Https),FTP等,尽管是J…
由于公司想把部份业务迁到windowsazure,主要是应用winodwsazure的存储;在方案中为了体现存储的可靠性所以对winodwsazure存储进行了一系列的测试.但在读取压力测试环节中发现间歇性出现文件读取延时的情况,由于自己在编写测试应用方面比较善长(年长的农码),所以把问题归根于winodwsazure的存储上.经过和MS技术多次交流和帮助下才把问题明确下来,虽然问题不是程序代码产生,但和测试方法构建的测试数据有着关系.下面分享一下个测试过程. 目标 公司希望把网站存储的一些资源…
一.前言 http_load是一款测试web服务器性能的开源工具,从下面的网址可以下载到最新版本的http_load: http://www.acme.com/software/http_load/ (页面实在太简陋……) 十分令人欣慰的是,这个软件一直在保持着更新(不像webbench,已经是十年的老古董了.webbench的源码分析请参考:http://www.cnblogs.com/xuning/p/3888699.html ),并且更新频率还蛮高的样子.我在下载了2014年8月2号的版本…
一.我与webbench二三事 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能.Webbench使用C语言编写,下面是其下载链接: http://home.tiscali.cz/~cz210552/webbench.html 说到这里,我赶脚非常有必要给这个网站局部一个截图,如下图: 第一次看到这张图片,着实吃了一精!居然是2004年最后一次更新,我和我的小伙伴们都惊呆了.不过既然现在大家还都…
环境介绍 服务器:centos6.5服务:nginx proxy 问题描述: 压测 开发同事 的开发环境项目没事,但是 线上机器 命中%50 ,大量502 php的某些页面打不开,页面提示gateway timeout,然后查找日志提示如下 2015/09/19 14:00:30 [error] 1811#0: *319 upstream timed out (110: Connection timed out) while reading response header from upstre…
从压力测试说起 压力测试是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患.与功能测试不同,压测是以软件响应速度为测试目标的,尤其是针对在较短时间内大量并发用户的访问时,软件的抗压能力. 至于为什么产品或业务系统在通过功能测试后还需要进行压力测试,原因很简单,因为它重要,为什么重要?众所周知,响应速度是用户体验的核心指标之一. SmartBear 数据表明,如果 Amazon 的加载时间延长1秒,那么一年就会减少16亿美元的营收.用户与网站互动的过程中,如果加…
用「Web压测」关键词检索,能找到好多进行压测的工具,比如ab.Http_load.Webbench.Siege这些,不过今天并不是要对这些工具做对比,毕竟我们只是想得到一个结果.本文主要介绍Siege,因为Siege是上面四者中,在Mac上安装和使用最便利的,所以果断就是它了! 准备工作 在压测开始前,你需要确保你的open files足够大,否则会报TOO MANY FILES OPEN错误,可以通过ulimit -a查看,如下图: 使用ulimit -n 10000可以修改该值.不过这种修…
先定义一下我说的remoteService:即远程调用服务,没有http的url.不对外提供或者对外提供有限的服务.具体视各公司的代码架构所定,比如有些公司为web工程,scf服务,db.scf即为服务通讯框架(Service Communication Framework)该层结构,或者一些单独的lib包,里面集成了某些方法 对于有url的http请求,我们可以用jmeter的http请求进行压测,或者使用Apache-AB等进行测试,这种也可以用JMeter进行压力测试,具体操作如下 核心步…
在实际做压力测试的过程中,我们有时不知道用怎样的并发量比较好,下面是几个用PV量去确定并发量的公式,这个在我们公司是比较适用的,大家可以根据自己的业务进行运算. 方法一:这个方法是我在网上查到的80-20原则,具体运算方法为: X*0.8/(8*60*60*0.2) 说明:X为要压测页面的PV量 方法二:这个是将PV量除以高峰时段小时(比如9:00-17:00,就是8个小时),再除以60*60细化到秒,然后乘以12倍,已获得想要的并发量 (X/8/60/60)*12 说明:X为要压测页面的PV量…