三台机器,每台机器部署多个tidb和tikv实例,启动tidb实例时,报超时。
机器cpu 40线程,256G内存,两块ssd盘
希望在51和52上分别启动2个tidb实例,端口分别伟4000,4001,启动时如下实例启动超时。
172.16.38.51:4000
172.16.38.52:4001
并且在对应tidb日志目录中,无日志生成。
以下提供的tidb日志是正常启动的实例的日志。
tidb log 是?
因为在 tiup cluster start tidb-pro 时,报错信息为:【2020-07-27T16:56:55.193+0800 ERROR tidb 172.16.38.51:4000 failed to start: timed out waiting for port 4000 to be started after 1m0s, please check the log of the instance】
所以需要提供 tidb log 看是否有详细信息。
启动超时的tidb没有生成tidb.log文件,只有启动成功的tidb.log文件,但可能没有太大意义。
在/var/log/message日志中发现错误信息与原因。
run_tidb.sh: [2020/07/28 09:06:23.363 +08:00] [ERROR] [main.go:213] [“The current temporary storage dir has been occupied by another instance, check tmp-storage-path config and make sure they are different.”] [TempStoragePath=/data1/tidata/temp/] [error=“fslock: lock is held”]
临时存储文件目录被其他占用导致的问题。
我是在server_configs:下配置了统一的tmp-storage-path: “/data1/tidata/temp/”
可能时多个tidb实例无法使用同一个临时存储文件目录导致启动失败
试图在tidb_servers:添加配置tmp-storage-path,为每个tidb实例单独配置临时存储文件目录,但是部署时报错:field tmp-storage-path not found in type meta.TiDBSpec
也就是tidb_servers不能单独配置临时存储文件目录,或者名称书写不正确。
那么问题是是否有办法在多实例下独立配置临时存储目录?
若采用系统默认/tmp目录,空间有限,并且也不是SSD盘。
问题已解决,在tidb_servers下单独配置临时存储目录成功,启动成功。多谢关注!
tidb_servers:
config:
tmp-storage-path: “/data1/tidata/temp/”
ok,
可以考虑在线上使用 tidb-server 多服务器部署,单机多实例 tidb-server 需要根据当前服务器来判断,考虑到服务器宕机或者网络因素的影响,及时有 LB 可能会有风险存在。
instance 的参数除了在server_configs 中进行统一配置,还可在每个 instance 下单独配置。
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。