返回首页

gbase数据、南大通用产品文档:GBase8sbyleng() 函数

更新日期:2024年09月11日


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 618 -

byleng() 函数返回字符串中有效字符的数目,结尾的空格符不计数。

语法
mint byleng(from, count)
char *from;
mint count;
from
指向定长字符串(不以空结尾)的指针。
count
定长字符串中的字节数。这不包括结尾的空格符。

示例

此样例程序位于 demo 目录中的 byleng.ec 文件中。
/*
* byleng.ec *

The following program uses byleng() to count the significant characters in an area.
*/

#include

main()
{
mint x;
static char area[20] = "xxxxxxxxxx ";


printf("BYLENG Sample Program running.\n\n");

/* initial length */
printf("Initial string:\n");

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 619 -

x = byleng(area, 15);
printf(" Length = %d, String = '%s'\n", x, area);

/* after copy */
printf("\nAfter copying two 's' characters starting ");
printf("at position 16:\n");
bycopy("ss", &area[16], 2);
x = byleng(area, 19);
printf(" Length = %d, String = '%s'\n", x, area);

printf("\nBYLENG Sample Program over.\n\n");
}

输出
BYLENG Sample Program running.

Initial string:
Length = 10, String = 'xxxxxxxxxx '
After copying two 's' characters starting at position 16:
Length = 18, String = 'xxxxxxxxxx ss '

BYLENG Sample Program over.

参数说明

-a [--abort]
对满足设定的异常阈值的作业执行终止动作。

-b pct
Backend Cgroups 占用Top Backend 资源的百分比,需同时指定-B backendname 参数。
取值范围:
为1 ~ 99。
在不进行设置的情况下,
默认CPU 配额设置为Vacuum 控制组占
20%,DefaultBackend 控制组占80%。Vacuum 和DefaultBackend 控制组配额之和设置应小
于100%。

-B name
Backend Cgroups 名称,仅可指定-u 参数来更新此Cgroups 的资源配额。
-b percent 和-B backendname 参数共同作用来控制数据库后备线程的资源比例。
取值范围:字符串,最长为64 个字节。

-c
创建Cgroups 并指定其标识。
普通用户指定“-c”和“-S classname”可以创建新的Class Cgroups,如果再指定“-G
groupname”则创建属于Class Cgroups 的Workload Cgroups,
新的Workload Cgroups 位于Class

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
57
Cgroups 的最底层(4 层是最底层)。

-d
删除Cgroups 及标识。
普通用户指定“-d”和“-S classname”可以删除已有的Class Cgroups,如果再指定“-G
groupname” 则删除属于Class Cgroups 的Workload Cgroups ,并将附属的线程重置到
“DefaultClass:DefaultWD:1”Cgroups 中;
若删除的Workload Cgroups 位于Class Cgroups 的高
层(1 层是最高层),则需调整低层的Cgroups 的层级,重建新的Cgroups 附属的线程加载
到新的Cgroups。

-E data
设定异常阈值,
目前阈值包括:
blocktime、
elapsedtime、
allcputime、
spillsize、
broadcastsize
以及qualificationtime 和cpuskewpercent,指定多个阈值时用“,”分隔。参数值0 表示取消设
置,设置不合法的值时会提示。
表3-1 异常阈值类型
异常阈值类型
说明
取值范围(0
表示取消设
置)
支持的
异常操

blocktime
作业的阻塞时间,单位秒。包括全局并发
排队以及局部并发排队的总时间。
0~UINT_MAX
abort
elapsedtime
作业的已被执行时间,单位秒。从开始执
行到当前所消耗的时间。
0~UINT_MAX
abort
allcputime
作业在所有数据库节点上执行时所耗费的
CPU 总时间,单位秒。
0~UINT_MAX
abort,
penalty
cpuskewpercent
作业在数据库节点上执行时的CPU 时间
的倾斜率,
依赖于qualificationtime 的设置。
0~100
abort,
penalty

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
58
异常阈值类型
说明
取值范围(0
表示取消设
置)
支持的
异常操

qualificationtime
检查作业执行cpu 倾斜率的间隔时间,单
位秒,需同cpuskewpercent 一起设置。
0~UINT_MAX
none
spillsize
作业在数据库节点上下盘的数据量,单位
MB。
0~UINT_MAX
abort
broadcastsize
作业在数据库节点上算子大表广播数据
量,单位MB。
0~UINT_MAX
abort

-h [--help]
显示命令帮助信息。

-H
用户环境中$GAUSSHOME 信息。
取值范围:字符串,最长为1023 个字符。

-f
仅Gaussdb 控制组可用。设置使用的核数范围,范围必须是a-b 或a 的形式。其他控制
组可以使用--fixed 进行设置核数范围。

--fixed
设置控制组使用的核数范围比例占上一层级的百分比或者设置IO 资源。
设置核数范围比例时--fixed 设置核数范围与-s、-g、-t、-b 参数一起使用。
核数比例范围0-100,同一层级的核数比例总和小于或者等于100,0 代表核数与上一
层级相同,
对于所有的控制组,
CPU 限额默认设置为0。
-f 和--fixed 不能同时设置。
设置--fixed
之后,-f 设置的范围自动失效。设置的比例以quota 值在-p 中进行显示。
设置IO 资源配额时,与-R、-r、-W、-w 参数一起使用。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
59

-g pct
指定Workload Cgroups 的资源占用Class Cgroups 资源的百分比,需同时指定-G
groupname 参数;用于创建(-c 参数)或更新(-u 参数)Workload Cgroups。
取值范围:1 ~ 99。默认Workload 控制组CPU 配额设置为20%。各Workload 控制组配
额之和应小于99%。

-G name
指定Workload Cgroups 的名称,需同时指定-S classname 参数来表示该group 属于哪个
Class Cgroups;
可以连同-c 参数创建新的Cgroups、
-d 参数删除此Cgroups 及-u 更新此Cgroups
的资源配额;
需要注意,
此名称不可是Timeshare Cgroups 的默认名称,

“Low”

“Medium”

“High”或“Rush”。
如果用户自己创建Workload 控制组,
指定名称时不能指定带':' 的名称。
不能创建同名
控制组。
取值范围:字符串,最长为28 个字节。

-N [--group] name
可以将组名简写成classname:wordloadname。

-p
显示Cgroups 配置文件的信息。

-P
显示Cgroups 树形结构信息。

--penalty
对满足设定的异常阈值的作业执行降级动作,
如果没有设定任何操作,
则该操作将为默
认操作。

-r data
仅用于更新I/O 资源读数据上限,用于设置blkio.throttle.read_bps_device 的数值;为字

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
60
符串类型,
该字符串由major:minor value 构成,
其中major 为要访问的磁盘的主设备号,
minor
为要访问的磁盘的次设备号,value 为设备每秒读操作次数上限数值,取值范围为0 ~
ULONG_MAX,其中取值0 用来初始化此字段为空;需和-u 参数及Cgroups 名称一同使用;
如果Class Cgroups 和Workload Cgroups 的名称同时指定,则只应用到Workload Cgroups。
取值范围:字符串,最长为32 个字符。

-R data
仅用于更新IO 资源每秒读操作次数上限,用于设置blkio.throttle.read_iops_device 的数
值;
取值信息同-r 参数;
需和-u 参数及Cgroups 名称一同使用;
如果Class Cgroups 和Workload
Cgroups 的名称同时指定,则只应用到Workload Cgroups。
取值范围:字符串,最长为32 个字符。

--recover
仅用于回退Class 控制组和Workload 控制组的增删改操作,且只能回退一步。

--revert
恢复控制组为默认状态。

-D mpoint
指定的挂载点,默认的挂载点“/dev/cgroup/subsystem”。

-m
挂载cgroup。

-M
取消挂载cgroup。

-U
数据库用户名称。

--refresh

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
61
刷新控制组状态。

-s pct
指定Class Cgroups 的资源占用Top Class Cgroups 资源的百分比,需同时指定-S
classname 参数;用于创建(-c 参数)或更新(-u 参数)Class Cgroups。
取值范围:1-99。默认Class 控制组的CPU 配额设置为20%,R6C10 版本中,Class 控
制组的CPU 配额设置为40%,升级过程中,不会对此配额做更新。新创建的Class 控制组
的CPU 配额以及默认的DefaultClass 之和应小于100%。

-S name
指定Class group 的名称;可以连同-c 参数创建新的Cgroups、-d 参数删除此Cgroups
及-u 更新此Cgroups 的资源配额。创建子Class 名称不能带‘:’。
取值范围:字符串,最长为31 个字节。

-t percent
指定Top Cgroups(Root、Gaussdb:user、Backend 和Class Cgroups)占用资源的百分比,
需同时指定-T name 参数。若指定-T Root 所在的Cgroups,其在Cgroups 配置文件中显示的
名称为“Root”,此数值代表的含义是blkio.weight 值的百分比,最小值为10%,CPU 资源
配额如cpu.shares 的数值不可修改;
若指定Gaussdb:user Cgroups,
则表示占用整个系统CPU
资源的百分比(可根据Root Cgroups 的默认CPU 配额1024 得出该组的cpu.shares 数值,此
数值默认当前系统仅含有1 套数据库环境),对于IO 资源配额为1000,不再变化;若指定
Class 或Backend Cgroups,则表示资源占用Gaussdb Cgroups 资源的百分比。
取值范围:1 ~ 99。默认Class 控制组配额为60%,Backend 控制组配额为40%。修改
Class 控制组配额,同时会自动更新Backend 控制组配额,使两者之和保持100%。

-T name
指定Top Cgroups 的名称。
取值范围:字符串,最长为64 个字节。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
62

-u
更新Cgroups。

-V [--version]
显示gs_cgroup 工具的版本信息。

-w data
仅用于更新I/O 资源每秒写数据上限,用于设置blkio.throttle.write_bps_device 的数值。
取值信息同-r 参数,需和-u 参数及Cgroups 名称一同使用。如果Class Cgroups 和Workload
Cgroups 的名称同时指定,则只应用到Workload Cgroups。
取值范围:字符串,最长为32 个字符。

-W data
仅用于更新IO 资源每秒写操作次数上限,
用于设置blkio.throttle.write_iops_device 的数
值。
取值信息同-r 参数,
需和-u 参数及Cgroups 名称一同使用。
如果Class Cgroups 和Workload
Cgroups 的名称同时指定,则只应用到Workload Cgroups。
取值范围:字符串,最长为32 个字符。

对于磁盘major:minor 的编号获取,可以通过下面方式。例如,获取/mpp 目录对应
的磁盘编号:
[gbase@gbasehost ~]$ df
Filesystem
1K-blocks
Used
Available Use% Mounted on
/dev/sda1
524173248
41012784
456534008
9% /
devtmpfs
66059264
236
66059028
1% /dev
tmpfs
66059264
88
66059176
1% /dev/shm
/dev/sdb1
2920486864 135987592 2784499272
5% /data
/dev/sdc1
2920486864
24747868 2895738996
1% /data1
/dev/sdd1
2920486864
24736704 2895750160
1% /mpp
/dev/sde1
2920486864
24750068 2895736796
1% /mpp1
[gbase@gbasehost ~]$ ls -l /dev/sdd
brw-rw---- 1 root disk 8, 48 Feb 26 11:20 /dev/sdd

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
63

这里一定要查sdd 的磁盘号,不能是sdd1 的磁盘号。否则执行时会报错。如果更
新IO 的限额配置信息超过了可允许的最大配置字串,则新的更新不存储在配置文
件中。如当前设置的字串长度为96,更新IO 的磁盘数量大于8 个,则有可能超出
字串限制,更新成功,但是不存储在配置文件中。

%
Shared Buffer Hit ratio
: