225 lines
14 KiB
Markdown
225 lines
14 KiB
Markdown
---
|
||
title: "taosd 参考手册"
|
||
sidebar_label: "taosd"
|
||
toc_max_heading_level: 4
|
||
---
|
||
|
||
taosd 是 TDengine 数据库引擎的核心服务,其配置文件默认是 `/etc/taos/taos.cfg` 但也可以指定不同路径的配置文件。本节详细介绍 taosd 的命令行参数及配置文件中的配置参数。
|
||
|
||
## 命令行参数
|
||
|
||
taosd 命令行参数如下
|
||
- -a `<json file>`:指定一个 JSON 文件,其中包含服务启动时的各项配置参数,其格式形如 `{"fqdn":"td1"}`,关于配置参数的细节请参考下一节
|
||
- -c `<directory>`:指定配置文件所在目录
|
||
- -s:打印 SDB 信息
|
||
- -C: 打印配置信息
|
||
- -e: 指定环境变量,其格式形如 `-e 'TAOS_FQDN=td1'`
|
||
- -k: 获取机器码
|
||
- -dm: 启用内存调度
|
||
- -V: 打印版本信息
|
||
|
||
## 配置参数
|
||
|
||
:::note
|
||
配置文件参数修改后,需要重启*taosd*服务,或客户端应用才能生效。
|
||
|
||
:::
|
||
|
||
### 连接相关
|
||
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
|firstEp | taosd 启动时,主动连接的集群中首个 dnode 的 end point,缺省值:localhost:6030 |
|
||
|secondEp | taosd 启动时,如果 firstEp 连接不上,尝试连接集群中第二个 dnode 的 endpoint,缺省值:无|
|
||
|fqdn | 启动 taosd 后所监听的服务地址,缺省值:所在服务器上配置的第一个 hostname |
|
||
|serverPort | 启动 taosd 后所监听的端口,缺省值:6030 |
|
||
|maxShellConns | 一个 dnode 容许的连接数,取值范围为 10-5000000,缺省值:5000 |
|
||
|numOfRpcSessions | 允许一个客户端能创建的最大连接数,取值范围 100-100000,缺省值:30000 |
|
||
|timeToGetAvailableConn | 获得可用连接的最长等待时间,取值范围 10-50000000,单位为毫秒,缺省值:500000 |
|
||
|
||
### 监控相关
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
|monitor | 是否收集监控数据并上报,0: 关闭;1:打开;缺省值:0 |
|
||
|monitorFqdn | taosKeeper 服务所在服务器的 FQDN,缺省值:无 |
|
||
|monitorPort | taosKeeper 服务所监听的端口号,缺省值:6043 |
|
||
|monitorInternal | 监控数据库记录系统参数(CPU/内存)的时间间隔,单位是秒,取值范围 1-200000 ,缺省值:30|
|
||
|telemetryReporting | 是否上传 telemetry,0: 不上传,1:上传,缺省值:1 |
|
||
|crashReporting | 是否上传 crash 信息;0: 不上传,1: 上传;缺省值: 1|
|
||
|
||
### 查询相关
|
||
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
|queryPolicy | 查询策略,1: 只使用 vnode,不使用 qnode; 2: 没有扫描算子的子任务在 qnode 执行,带扫描算子的子任务在 vnode 执行; 3: vnode 只运行扫描算子,其余算子均在 qnode 执行 ;缺省值:1 |
|
||
|maxNumOfDistinctRes | 允许返回的 distinct 结果最大行数,默认值 10 万,最大允许值 1 亿 |
|
||
|countAlwaysReturnValue | ount/hyperloglog函数在输入数据为空或者NULL的情况下是否返回值,0: 返回空行,1: 返回;该参数设置为 1 时,如果查询中含有 INTERVAL 子句或者该查询使用了TSMA时, 且相应的组或窗口内数据为空或者NULL, 对应的组或窗口将不返回查询结果. 注意此参数客户端和服务端值应保持一致.|
|
||
|
||
|
||
### 区域相关
|
||
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
|timezone | 时区,缺省值:当前服务器所配置的时区 |
|
||
|locale | 系统区位信息及编码格式 ,缺省值:系统中动态获取,如果自动获取失败,需要用户在配置文件设置或通过 API 设置 |
|
||
|charset | 字符集编码,缺省值:系统自动获取 |
|
||
|
||
:::info
|
||
1. 为应对多时区的数据写入和查询问题,TDengine 采用 Unix 时间戳(Unix Timestamp)来记录和存储时间戳。Unix 时间戳的特点决定了任一时刻不论在任何时区,产生的时间戳均一致。需要注意的是,Unix 时间戳是在客户端完成转换和记录。为了确保客户端其他形式的时间转换为正确的 Unix 时间戳,需要设置正确的时区。
|
||
|
||
在 Linux/macOS 中,客户端会自动读取系统设置的时区信息。用户也可以采用多种方式在配置文件设置时区。例如:
|
||
|
||
```
|
||
timezone UTC-8
|
||
timezone GMT-8
|
||
timezone Asia/Shanghai
|
||
```
|
||
|
||
均是合法的设置东八区时区的格式。但需注意,Windows 下并不支持 `timezone Asia/Shanghai` 这样的写法,而必须写成 `timezone UTC-8`。
|
||
|
||
时区的设置对于查询和写入 SQL 语句中非 Unix 时间戳的内容(时间戳字符串、关键词 now 的解析)产生影响。例如:
|
||
|
||
```sql
|
||
SELECT count(*) FROM table_name WHERE TS<'2019-04-11 12:01:08';
|
||
```
|
||
|
||
在东八区,SQL 语句等效于
|
||
|
||
```sql
|
||
SELECT count(*) FROM table_name WHERE TS<1554955268000;
|
||
```
|
||
|
||
在 UTC 时区,SQL 语句等效于
|
||
|
||
```sql
|
||
SELECT count(*) FROM table_name WHERE TS<1554984068000;
|
||
```
|
||
|
||
为了避免使用字符串时间格式带来的不确定性,也可以直接使用 Unix 时间戳。此外,还可以在 SQL 语句中使用带有时区的时间戳字符串,例如:RFC3339 格式的时间戳字符串,2013-04-12T15:52:01.123+08:00 或者 ISO-8601 格式时间戳字符串 2013-04-12T15:52:01.123+0800。上述两个字符串转化为 Unix 时间戳不受系统所在时区的影响。
|
||
|
||
|
||
2. TDengine 为存储中文、日文、韩文等非 ASCII 编码的宽字符,提供一种专门的字段类型 nchar。写入 nchar 字段的数据将统一采用 UCS4-LE 格式进行编码并发送到服务器。需要注意的是,编码正确性是客户端来保证。因此,如果用户想要正常使用 nchar 字段来存储诸如中文、日文、韩文等非 ASCII 字符,需要正确设置客户端的编码格式。
|
||
|
||
客户端的输入的字符均采用操作系统当前默认的编码格式,在 Linux/macOS 系统上多为 UTF-8,部分中文系统编码则可能是 GB18030 或 GBK 等。在 docker 环境中默认的编码是 POSIX。在中文版 Windows 系统中,编码则是 CP936。客户端需要确保正确设置自己所使用的字符集,即客户端运行的操作系统当前编码字符集,才能保证 nchar 中的数据正确转换为 UCS4-LE 编码格式。
|
||
|
||
在 Linux/macOS 中 locale 的命名规则为: \<语言>_\<地区>.\<字符集编码> 如:zh_CN.UTF-8,zh 代表中文,CN 代表大陆地区,UTF-8 表示字符集。字符集编码为客户端正确解析本地字符串提供编码转换的说明。Linux/macOS 可以通过设置 locale 来确定系统的字符编码,由于 Windows 使用的 locale 中不是 POSIX 标准的 locale 格式,因此在 Windows 下需要采用另一个配置参数 charset 来指定字符编码。在 Linux/macOS 中也可以使用 charset 来指定字符编码。
|
||
|
||
|
||
3. 如果配置文件中不设置 charset,在 Linux/macOS 中,taos 在启动时候,自动读取系统当前的 locale 信息,并从 locale 信息中解析提取 charset 编码格式。如果自动读取 locale 信息失败,则尝试读取 charset 配置,如果读取 charset 配置也失败,则中断启动过程。
|
||
|
||
在 Linux/macOS 中,locale 信息包含了字符编码信息,因此正确设置了 Linux/macOS 的 locale 以后可以不用再单独设置 charset。例如:
|
||
|
||
```
|
||
locale zh_CN.UTF-8
|
||
```
|
||
|
||
在 Windows 系统中,无法从 locale 获取系统当前编码。如果无法从配置文件中读取字符串编码信息,taos 默认设置为字符编码为 CP936。其等效在配置文件中添加如下配置:
|
||
|
||
```
|
||
charset CP936
|
||
```
|
||
|
||
如果需要调整字符编码,请查阅当前操作系统使用的编码,并在配置文件中正确设置。
|
||
|
||
在 Linux/macOS 中,如果用户同时设置了 locale 和字符集编码 charset,并且 locale 和 charset 的不一致,后设置的值将覆盖前面设置的值。
|
||
|
||
```
|
||
locale zh_CN.UTF-8
|
||
charset GBK
|
||
```
|
||
|
||
则 charset 的有效值是 GBK。
|
||
|
||
```
|
||
charset GBK
|
||
locale zh_CN.UTF-8
|
||
```
|
||
|
||
charset 的有效值是 UTF-8。
|
||
|
||
:::
|
||
|
||
### 存储相关
|
||
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
|dataDir | 数据文件目录,所有的数据文件都将写入该目录,缺省值:/var/lib |
|
||
|tempDir | 指定所有系统运行过程中的临时文件生成的目录,缺省值:/tmp |
|
||
|minimalTmpDirGB | tempDir 所指定的临时文件目录所需要保留的最小空间,单位 GB,缺省值: 1|
|
||
|minimalDataDirGB | dataDir 指定的时序数据存储目录所需要保留的最小空间,单位 GB,缺省值: 2 |
|
||
|
||
### 集群相关
|
||
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
|supportVnodes | dnode 支持的最大 vnode 数目,取值范围:0-4096,缺省值: CPU 核数的 2 倍 + 5 |
|
||
|
||
### 性能调优
|
||
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
|numOfCommitThreads | 写入线程的最大数量,取值范围 0-1024,缺省值为 4 |
|
||
|
||
### 日志相关
|
||
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
|logDir | 日志文件目录,运行日志将写入该目录,缺省值:/var/log/taos |
|
||
|minimalLogDirGB | 当日志文件夹所在磁盘可用空间大小小于该值时,停止写日志,单位GB,缺省值:1|
|
||
|numOfLogLines | 单个日志文件允许的最大行数,缺省值:10,000,000 |
|
||
|asyncLog | 日志写入模式,0: 同步,1: 异步,缺省值: 1 |
|
||
|logKeepDays | 日志文件的最长保存时间 ,单位:天,缺省值:0,意味着无限保存;当设置为大于0 的值时,日志文件会被重命名为 taosdlog.xxx,其中 xxx 为日志文件最后修改的时间戳。 |
|
||
|slowLogThreshold | 慢查询门限值,大于等于门限值认为是慢查询,单位秒,默认值: 3 |
|
||
|slowLogScope | 定启动记录哪些类型的慢查询,可选值:ALL, QUERY, INSERT, OHTERS, NONE; 默认值:ALL |
|
||
|debugFlag | 运行日志开关,131(输出错误和警告日志),135(输出错误、警告和调试日志),143(输出错误、警告、调试和跟踪日志); 默认值:131 或 135 (取决于不同模块)|
|
||
|tmrDebugFlag | 定时器模块的日志开关,取值范围同上 |
|
||
|uDebugFlag | 共用功能模块的日志开关,取值范围同上 |
|
||
|rpcDebugFlag | rpc 模块的日志开关,取值范围同上 |
|
||
|jniDebugFlag | jni 模块的日志开关,取值范围同上 |
|
||
|qDebugFlag | query 模块的日志开关,取值范围同上 |
|
||
|dDebugFlag | dnode 模块的日志开关,取值范围同上,缺省值 135 |
|
||
|vDebugFlag | vnode 模块的日志开关,取值范围同上 |
|
||
|mDebugFlag | mnode 模块的日志开关,取值范围同上 |
|
||
|wDebugFlag | wal 模块的日志开关,取值范围同上 |
|
||
|sDebugFlag | sync 模块的日志开关,取值范围同上 |
|
||
|tsdbDebugFlag | tsdb 模块的日志开关,取值范围同上 |
|
||
|tqDebugFlag | tq 模块的日志开关,取值范围同上 |
|
||
|fsDebugFlag | fs 模块的日志开关,取值范围同上 |
|
||
|udfDebugFlag | udf 模块的日志开关,取值范围同上 |
|
||
|smaDebugFlag | sma 模块的日志开关,取值范围同上 |
|
||
|idxDebugFlag | index 模块的日志开关,取值范围同上 |
|
||
|tdbDebugFlag | tdb 模块的日志开关,取值范围同上 |
|
||
|
||
### 压缩参数
|
||
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
| compressMsgSize | 是否对 RPC 消息进行压缩;-1: 所有消息都不压缩; 0: 所有消息都压缩; N (N>0): 只有大于 N 个字节的消息才压缩;缺省值 -1 |
|
||
| fPrecision | 设置 float 类型浮点数压缩精度 ,取值范围:0.1 ~ 0.00000001 ,默认值 0.00000001 , 小于此值的浮点数尾数部分将被截断 |
|
||
|dPrecision | 设置 double 类型浮点数压缩精度 , 取值范围:0.1 ~ 0.0000000000000001 , 缺省值 0.0000000000000001 , 小于此值的浮点数尾数部分将被截取 |
|
||
|lossyColumn | 对 float 和/或 double 类型启用 TSZ 有损压缩;取值范围: float, double, none;缺省值: none,表示关闭无损压缩。**注意:此参数在 3.3.0.0 及更高版本中不再使用**|
|
||
|ifAdtFse | 在启用 TSZ 有损压缩时,使用 FSE 算法替换 HUFFMAN 算法, FSE 算法压缩速度更快,但解压稍慢,追求压缩速度可选用此算法; 0: 关闭,1:打开;默认值为 0 |
|
||
|
||
|
||
**补充说明**
|
||
1. 在 3.2.0.0 ~ 3.3.0.0(不包含)版本生效,启用该参数后不能回退到升级前的版本
|
||
2. TSZ 压缩算法是通过数据预测技术完成的压缩,所以更适合有规律变化的数据
|
||
3. TSZ 压缩时间会更长一些,如果您的服务器 CPU 空闲多,存储空间小的情况下适合选用
|
||
4. 示例:对 float 和 double 类型都启用有损压缩
|
||
```shell
|
||
lossyColumns float|double
|
||
```
|
||
5. 配置需重启服务生效,重启如果在 taosd 日志中看到以下内容,表明配置已生效:
|
||
```sql
|
||
02/22 10:49:27.607990 00002933 UTL lossyColumns float|double
|
||
```
|
||
|
||
### 其他参数
|
||
|
||
| 参数名称 | 参数说明 |
|
||
|:-------------:|:----------------------------------------------------------------:|
|
||
|enableCoreFile | crash 时是否生成 core 文件;0: 不生成,1:生成;默认值 为 1; 不同的启动方式,生成 core 文件的目录如下:1、systemctl start taosd 启动:生成的 core 在根目录下 <br/> 2、手动启动,就在 taosd 执行目录下。|
|
||
|udf | 是否启动 UDF 服务;0: 不启动,1:启动;默认值 为 0 |
|
||
|ttlChangeOnWrite | ttl 到期时间是否伴随表的修改操作改变; 0: 不改变,1:改变 ;默认值 为 |
|
||
| tmqMaxTopicNum| 订阅最多可建立的 topic 数量; 取值范围 1-10000;缺省值 为20 |
|
||
|maxTsmaNum | 集群内可创建的TSMA个数;取值范围:0-3;缺省值: 3| |