1 、背景

 > 目前使用 ck 作日志存储用 大概1/s 到 10000/s 数据量不等 我们本地测试没问题 但是部署到客户环境报错> 错误信息是在插入数据时 Too many parts(300)

2、解决思路及路线

  • 准备

模拟客户的硬件软件环境 取到日志样本

  • 第一阶段

首先看到错误了 肯定是按照对应错误去找解决方法 第一反应既然这个值比较少 那么就给他调大
果然数据可以继续录入了 不过在尝试了 600、1200、9000后发现 治标不治本

  • 第二阶段

发生错误的时候进入ck 存放数据目录 发现很多分区没有合并 而且总是在卡到一定数量时就不动了
然后就会报错 了解mergeTree的都知道 mergeTree 有个强制合并分区的命令 但是执行了也没有用
再次思考 是不是插入数据的时候 io 消耗过大 导致没有额外IO去执行合并呢
是否考虑增加 buffer 引擎的表挡在 mergeTree 之前就能解决问题呢 不过这个改动过于巨大 还是要确定问题再决定是否这么改 并且 buffer 引擎也有自己的缺点

  • 第三阶段

观察:执行 iostat -d -x 1 命令观察io 发现服务器配置很高 并不会吃满IO 但是还是会出现这个问题。

  • 第四阶段

突然想起ck 有自己的异常日志 再次模拟数据测试 发现 ck 报错 code 76
这一看像linux 打开资源过多的问题啊 但是此时并没有报错Too many parts(300)
过了一会 Too many parts(300) 再次出现
思考发生问题的原因 应该是mergeTree 合并分区时发现打开文件数量过多 无法进行合并 然后分区累积 导致Too many parts(300)

  • 第五阶段

有问题 就要找解决方法了
修改/etc/security/limits.conf 添加:
clickhouse soft nofile 262144
clickhouse hard nofile 262144
使用ulimit -n 查询、看到的是所有用户可打开的总数,而ck能打开的大小只是系统的默认值,所以不要被这个命令干扰,重启ck后、获取ck的进程、再通过cat /proc/${pid}/limits |grep open ,判断配置是否生效

  • 观察

修改后观察 发现错误解决 胜利的喜悦充满内心

3、总结

其实 第一时间去找ck 日志可能会快一些发现问题 这次问题解决 零零散散前后花了差不多两三天时间
也是给自己敲了一记警钟 如果真的冲动 用buffer 引擎改了 也许确实会修正问题 但是也给程序带来了很大的问题

Clickhouse 踩坑之旅 ---- MergeTree不合并分区的问题相关推荐

  1. Vue踩坑之旅(一)—— 数组、对象的监听

    作为一个接触 vue 才一个多月的小白,马上就接手基于 vue 的大型商城项目,其间真是跌跌撞撞踩了好多坑(o(╥﹏╥)o).在此写下自己的踩坑之旅,希望给跟我一样还在自学 vue 的同学一些帮助,另 ...

  2. 微信开发踩坑之旅 之 开发准备及服务器配置

    在工作和兴趣的机缘巧合之下,我开始接触微信开发.在这里简单记述自己的微信开发踩坑之旅. 首先,由于本人标准的理工科生,记述的语言有所不足,我尽量说明准确和详细点. 本文记述主线 ·申请公众号 ·公众号 ...

  3. VR制作中必须踩的坑365之037(oculus2、UE4、UE5、VR记录一年的踩坑之旅)Maya / ZBrush / Substance Painter倒来倒去

    VR制作中必须踩的坑365之037(oculus2.UE4.UE5.VR记录一年的踩坑之旅)Full 3D GAME ASSET workflow ( Maya / ZBrush / Substanc ...

  4. 重装win10系统+Ubuntu16.04的踩坑之旅(联想拯救者r720)

    重装win10系统+Ubuntu16.04的踩坑之旅(联想拯救者r720) 碎碎念:原本双系统用得很开心的,在手贱删了Ubuntu系统的某些隐藏文件之后导致Ubuntu系统不能正常使用,在某种程度强迫 ...

  5. VR制作中必须踩的坑365之044(oculus2、UE4、UE5、VR记录一年的踩坑之旅)拳击VR小游戏红绿灯

    VR制作中必须踩的坑365之043(oculus2.UE4.UE5.VR记录一年的踩坑之旅)拳击VR制作起来,拳击动画人物 How to create box minigame in VR (UE4 ...

  6. VR制作中必须踩的坑365之045(oculus2、UE4、UE5、VR记录一年的踩坑之旅)iclone8来来来告诉你剁手坑

    VR制作中必须踩的坑365之045(oculus2.UE4.UE5.VR记录一年的踩坑之旅) iClone 8 Work in Progress - Part One: Dramatically Si ...

  7. Android google翻译踩坑之旅

    # Android google翻译踩坑之旅   最近由于工作需求,需要为游戏Android平台接入Google翻译的SDK,由于关于翻译的文章非常少,访问官方文档又需要翻墙,更可气的是找到的博客写了 ...

  8. python 同花顺thstrader_Python 踩坑之旅进程篇其三pgid是个什么鬼 (子进程\子孙进程无法kill 退出的解法)...

    代码示例支持 平台: Centos 6.3 Python: 2.7.14 1.1 踩坑案例 pid, ppid是大家比较常见的术语, 代表进程号,父进程号. 但pgid是个什么鬼? 了解pgid之前, ...

  9. VR制作中必须踩的坑365之042(oculus2、UE4、UE5、VR记录一年的踩坑之旅)2D图片变成3D最快方法:使用怪兽建模(Monster Mash)

    VR制作中必须踩的坑365之041(oculus2.UE4.UE5.VR记录一年的踩坑之旅) Turn 2D Images into 3D Objects with Monster Mash! (Fr ...

最新文章

  1. matlab中ismember_相当于Matlab“ismember”in numpy(Python)?
  2. Sparsity稀疏编码(三)
  3. web前端入门学习 html5(2)
  4. 锁屏界面显示某些设置已隐藏_iOS 14 隐藏功能,只要轻点手机背面就能截屏
  5. java 查询后 jsonobject key 排序_商品品牌业务之后台Java代码的编写
  6. Intellij IDEA 自定义方法注释/方法模板
  7. Windows学习总结(5)——【IIS建站】Windows10怎么打开站点服务?
  8. 广州牵引力教育详细分析学习Java能从事前端开发吗?
  9. 一些关于angular的总结
  10. axure轮播图怎么设置循环轮播_Axure教程:广告图片自动轮播+点击切换
  11. 面试——测试基础理论
  12. 原生ajax请求超时处理,关于原生AJAX
  13. 英特尔老款CPU支持虚拟化对照表(转)
  14. 节假日查询 API数据接口
  15. 链家租房市场分析(R爬虫、数据可视化)
  16. OpenCV图像处理基础(C++版)
  17. 界面控件DevExpress发布v18.2.7,新版全新出发|附下载
  18. Android 移动安全知识技术全解(加固技术、常规漏洞、Android 逆向......),移动安全问题不容忽视
  19. linux服务器 增量,CentOS 自动备份增量文件
  20. 2022!影响百万用户金融信用评分,Equifax被告上法庭,罪魁祸首——『数据漂移』!

热门文章

  1. 在uniapp中使用element-ui组件
  2. win7系统无法开启telnet服务器,win7系统telnet出现错误怎么办?win7系统开启telnet出错的修复教程...
  3. 26、使用友善NanoPi NEO和外设硬件实现语音唤醒功能、目标检测功能、语音播报功能
  4. 【渝粤题库】广东开放大学 企业文化学 形成性考核
  5. “知识共享”早期版本是什么样子?
  6. MAC装win10 清理临时文件
  7. 古籍、中国通史、诗经、辞、、四书五经、诸子百家、四大名著、唐诗、宋词、明清小说、四库全书
  8. 编写java百分制转化五分制_百分制与五分制的换算(百分制转换五分制公式)
  9. 考研最易出现的几种心理状态,让人崩溃!
  10. 3dmax:3dmax三维VR渲染设置(VR发光贴图、VR灯光缓存、V-Ray焦散,渲染图中出现黑斑点的原因、插值类型)之详细攻略