当前位置:首页 > 短网址资讯 > 正文内容

Kafka参数优化 — IO系统优化

www.ft12.com8年前 (2017-07-21)短网址资讯3243

一、 IO Scheduler 
Centos6系统默认的IO调度器是CFQ(Completely Fair Queuing),Kafka是顺序IO读写模型,使用Deadline和NOOP无疑是更好地选择。

Deadline:对于读写操作有截止时间,对读和写操作用两条不同的队列管理,可以解决读取饥饿的现象。因为操作系统对读请求是同步处理的,写入请求可以异步处理。操作系统可以数据写到内存,然后对IO队列中的请求做合并,提高IO的吞吐量。通过设置read_expire < write_expire时间,避免读取操作处于饥饿调度的状态。对于数据库存储应用,Deadline是最佳的IO Scheduler,甚至很多PCIE卡作为设备内置默认参数。

NOOP:是建立在FIFO调度模型之上的,并合相邻IO请求。Noop容易出现读取操作饥饿现象,使用NOOP调度,需要磁盘有足够的IO能力。对于SSD基于闪存技术存储介质和SAN存储,NOOP也是有限选择的调度器。
CFQ是对每个进程维护一个IO队列,IO Scheduler对每个IO队列轮询,对于不同的进程IO请求处理是公平的,平均IO请求响应时间很小。每个进程队列可以设置IO优先级使得有更多的调度时间片。比较适合离散的读写模型。

注意的是,传统的IO Elevator调度算法是基于减小机械盘磁头寻道时间和提高吞吐量目的设计的。IO Scheduler的选用需要根据硬件设备和应用的IO请求模式来决定。


二、 充分利用内存提高kafka读写性能

之前也提到过了,数据写入到磁盘可以异步进行,先把数据放到内存中,在集中的写到外部存储上。dirty_ratio 和 dirty_background_ration适当增大,充分利用内存和文件缓存buffer。

  • dirty_ratio,系统总内存的百分比,太小导致系统强制脏页写回到磁盘,这个会阻塞系统接受写入请求。

  • dirty_background_ratio,文件系统的写入缓冲区的大小,达到这个百分比时,pdflush进程开始启动,把数据写回到磁盘,但是不影响正常的读写请求。

  • 原则:dirty_background_ratio < dirty_ratio


但是还有个疑问,dirty page什么时候写回到磁盘?这个是由dirty_writeback_centisecs和dirty_expire_centisecs两个参数控制的。

dirty_writeback_centisecs,控制 pdflush/flush/kdmflush等进程的唤醒时间。

dirty_expire_centisecs,控制dirty page刷盘时间点。

减小这两个参数,可以使数据快速落盘,避免os crash引起的数据的丢失。另外,减小dirty_writeback_centisecs和dirty_expire_centisecs,解决IO Spike现象。

通过磁盘监控发现写入量wrqm/s和awit时间波动很大。


page cache中dirty apge的数量出现骤减。


对于kafa来说,数据append总以方式追加到文件末尾,因而内存中的dirty page很少被再次更新。合理做法是把dirty page快速的flush到磁盘上,而不是默认的是30s执行一次write back。这样可以大幅度减少单次fluhs操作的数据量,消除io-wait突然增高的现象。

dirty_writeback_centisecs=100,每1s中唤醒一次pdflush进程。

dirty_expire_centisecs=100,dirty page过了一秒就从内存写回到磁盘。

下图是io await的优化效果,经过参数调整之后,IO-await有明显的下降。



三、文件系统

我们生产上常用多块SATA盘做raid10,磁盘容量巨大时,仍然使用ext4文件系统,很容易格式化异常(需要系统补丁支持)。Ext4系统支持最大16TB的分区,而是用XFS文件系统可以达到100TB+。相比Ext4,XFS文件系统性能更好,官方也推荐使用。而稳定稍弱一点,很多参数也不需要优化。主要注意两个参数的优化:

1)nobarrier,XFS可以有数据丢失保护机制,因而可以关闭底层硬件的强制刷盘策略,何况在线机器还有raid卡保护。

2)noatime,完全没有必要的文件系统元数据更新。

推荐的XFS挂载参数:rw,noatime,nodiratime,noikeep,nobarrier,allocsize=128M,attr2,largeio,inode64,swalloc 。关于文件系统方面,主要参考官方的建议。


参考资料:

File Cache:https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/

Ext4:https://en.wikipedia.org/wiki/Ext4

Kafka: http://kafka.apache.org/documentation.html#appvsosflush







扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_315.html

标签: KafkaIO优化
分享给朋友:

相关文章

FT12短网址:带你走近比特币背后的技术世界

第一个要跟我们分享的是“私钥”,这是暗码学领域的一个概念。一般我们登录微信、QQ 等都需求暗码,这儿的“暗码”实质上是一种口令、一种凭据。而“私钥”则是非对称暗码体制的一部分,是能够进行加解密计算、数字签名认证的。跟 QQ 暗码类似,私钥是...

谷歌新品发布的背后:AI并不是功能增加,而是彻底改变

谷歌新品发布的背后:AI并不是功能增加,而是彻底改变

[ FT12短网址 ] 谷歌按例发不了新的手机和可穿戴设备,谷歌一直善于巧用AI解决一些其他厂商诉诸硬件才能解决的问题;同时,他们也善于在AI基础上推出新的软硬件结合产品。这种能力可能会为我们带来更多惊喜。谷歌这一次的新品发布会,并不是单纯...

关于FT12短网址/短链接,所有做运营和推广的人都应该精通

FT12短网址(360app.ft12.com)最近增加两个网页链接工具,主要是为了简化运营者们在日常运营时遇见的网页链接过长过杂的问题,因为后台有几个小伙伴都在问我超链接要怎么加到文中,今天微互动统一说明一下。这两个工具都在360短网址官...

真正独立的女性是少数,其他的都是九尾妖狐

真正独立的女性是少数,其他的都是九尾妖狐

“你给我爱情就好了,面包我自己挣。”01我朋友圈里便有这样一个“独立”的女孩。她漂亮且开朗,懂得如何跟男人相处,给他们若即若离的感觉,游刃有余,张弛有度。男人们在她的石榴裙下拜服,却从未有人能一亲芳泽,但他们总愿意为她消费,好像只要银行卡刷...

FT12短网址:人工智能一面是智能,另一面一定要接近于人

FT12短网址:人工智能一面是智能,另一面一定要接近于人

[ FT12短网址资讯 ] 本文作者采访到促进小冰项目的微软全球资深副总裁、微软(亚洲)互联网工程院院长王永东,他回忆了自个作业经历与职业变迁的交错,经过微软小冰项目的开展进程描绘了微软(亚洲)互联网工程院是怎样推动内部立异。图像...

FT12短网址:2017年SEO行业的前景以及未来趋势

FT12短网址:2017年SEO行业的前景以及未来趋势

Hi,我们好,我是宁波SEO从业人员,Diei.今日Diei给我们剖析下2017年SEO职业的远景以及将来趋势,为何要剖析这个SEO职业呢?由于说的难听点,这个SEO职业将来的变化,是我们能否挣钱的要害,如果之前一向从事SEO的同会发现,你...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。