咨询一下:怎么自定义run_tikv.sh的格式,不被reload或或者restart tikv覆盖。

【 TiDB 使用环境】
【 TiDB 版本】
【复现路径】
【遇到的问题:问题现象及影响】
当前环境的run_tikv.sh的内容是:
#!/bin/bash
set -e

WARNING: This file was auto-generated. Do not edit!

All your edit might be overwritten!

cd “/var/lib/tikv/deploy/tikv-20160” || exit 1

echo -n 'sync … ’
stat=$(time sync || sync)
echo ok
echo $stat

export MALLOC_CONF=“prof:true,prof_active:false”
exec bin/tikv-server
{后面涉及ip的内容就不展示了}

然后我想在run_tikv.sh的export MALLOC_CONF="prof:true,prof_active:false"后面加上export MALLOC_ARENA_MAX=8,例如
#!/bin/bash
set -e

WARNING: This file was auto-generated. Do not edit!

All your edit might be overwritten!

cd “/var/lib/tikv/deploy/tikv-20160” || exit 1

echo -n 'sync … ’
stat=$(time sync || sync)
echo ok
echo $stat

export MALLOC_CONF=“prof:true,prof_active:false”
MALLOC_ARENA_MAX=8
exec bin/tikv-server \

但是我不能直接编辑run_tikv.sh,因为直接编辑的话,后续reload或者restart,run_tikv.sh会被覆盖。
(我本身不会go,会python)我去看tiup的源码tiup/embed/templates/scripts/run_tikv.sh.tpl at master · pingcap/tiup · GitHub

发现有一个模板文件,run_tikv.sh.tpl,我就认为run_tikv.sh是依赖run_tikv.sh.tpl生成的,因此我下载了tiup源码,然后修改了run_tikv.sh.tpl,模板中加了MALLOC_ARENA_MAX=8,然后编译新的tiup二进制,最后用新的tiup二进制去deploy tikv集群还是没有加上这个MALLOC_ARENA_MAX=8,请问知道我的问题出在哪里吗?
【资源配置】

deploy命令是cluster组件下的,试试编译cluster组件再替换

1 个赞

好的,谢谢,我试试

感觉有戏,正在创建tikv集群,


确实tiup cluster deploy应该跟tiup-cluster有关,应该run_tikv.sh.tpl编译进去二进制tiup-cluster中,而不是二进制tiup中

验证了,更换编译后的tiup-cluster有效,谢谢。这里提醒一下,在更换tiup-cluster的时候,需要update (通过tiup mirror publish)去更新cluster的版本管理文件cluster.json。

1 个赞

是的,正常来说要走组件upgrade流程

:100: :100: :100:

:100: :100: :100: