【 TiDB 使用环境】生产环境
【 TiDB 版本】 5.3.3
【复现路径】没有操作
【遇到的问题:问题现象及影响】
初步怀疑 tiflash data目录 出现大量子目录导致inode满了
【资源配置】
【附件:截图/日志/监控】
扩容吧,tiflash小文件有点多,尤其分区很多时
这个有啥避免的,很突然 tiflash 我们这边一直没咋使用,这个集群 大概才使用一年就这样
tiflash 我这边没使用,但是我看了下 data目录 一段时间就新建一批目录和文件 这算正常吗
没用tiflash 可以把他缩容掉,产生的文件应该是和schema同步有关
最近几月会使用,但是扩容说实在有点不太行,因为硬盘空间还是很充足。是否有其他方面可以处理这个问题
我看每次都是新生成的文件,旧的文件又还保留 着属于正常吗
find /tidb/tidb-data/tiflash-9000/data/ -xdev -type f | cut -d “/” -f 2 | sort | uniq -c | sort -n
找一下是哪个表占用的inode数最多,
SELECT * FROM INFORMATION_SCHEMA.TIFLASH_TABLES
a WHERE a.table
=‘t_1615’;
不行,t_xxxx有很多这种目录,但是
TIFLASH_TABLES 是空 。
SELECT * FROM INFORMATION_SCHEMA.TIFLASH_SEGMENTS
a—这个表也是空的吗?
从6.1开始可以手工compact清理tiflash的历史无用数据,但是之前好像都是自动清理的
[quote=“tidb菜鸟一只, post:13, topic:1003226”]
SELECT * FROM INFORMATION_SCHEMA.TIFLASH_SEGMENTS
a
[/quote]也是空的
可能版本有点低,我是感觉应该是有历史无用数据没有被正常清理掉, /tidb/tidb-data/tiflash-9000/data/目录下的t_xxxx目录中的文件,很多都是特别多吗?还是t_xxxx本身目录特别多?
t_xxxx 的目录特别多 ll 下要跑很久 wc -l 直接是卡住
SELECT * FROM INFORMATION_SCHEMA.TIFLASH_REPLICA
;–这个表里数据多吗,这个是真实用到了tiflash副本的表
没有。。。。。
那你没有用到tiflash啊,你的表要用tiflash需要添加tiflash副本才可以
ALTER TABLE sbtest1 SET tiflash replica 1;
如果上面那个表一条数据都没有的话,我觉得你的tiflash可以缩容掉。
估计你这个版本的tiflash即使你没添加tiflash副本,还是会默认在tiflash下创建表的tiflash元数据,所以在tiflash目录下会有很多表的元数据信息,但是数据信息很少,所以会出现,inode用了很多,但是空间用的很少的情况。
盲猜你的tikv节点很多,数据库中的表也很多,但是tiflash节点很少。
对,数据库表很多,kv 6个节点,但是只有两个tiflash
要预防这个问题 只能升级tidb 版本吗,有建议的版本没有
如果你用tiflash的话,我觉得可以用比较新的,因为tiflash最近几个版本优化还是挺多的。我手上有两个版本的一个5.4.3也是跟你这个差不多,另外一个6.5,就只有设置了tiflash副本才会保存元数据了