Trafodion中有一个很重要的组件叫RMS,通过sqcheck我们可以看到RMS进程的状态。RMS,全称Runtime Management Service,即运行时管理服务,它在每个节点上由两个进程组成:mxsscp和mxssmp,可以通过sqps| grep mxss*查看到进程及所在的节点,
[trafodion@p08 ~]$ sqps | egrep mxss*
[$Z0000000RP1] 000,00045432 001 PERS ES--A-- $ZSC0 NONE mxsscp
[$Z0000000RP1] 000,00045465 001 SSMP ES--A-- $ZSM0 NONE mxssmp
[$Z0000000RP1] 001,00011610 001 PERS ES--A-- $ZSC1 NONE mxsscp
[$Z0000000RP1] 001,00011616 001 SSMP ES--A-- $ZSM1 NONE mxssmp
[$Z0000000RP1] 002,00016659 001 PERS ES--A-- $ZSC2 NONE mxsscp
[$Z0000000RP1] 002,00016665 001 SSMP ES--A-- $ZSM2 NONE mxssmp
[$Z0000000RP1] 003,00019938 001 PERS ES--A-- $ZSC3 NONE mxsscp
[$Z0000000RP1] 003,00019943 001 SSMP ES--A-- $ZSM3 NONE mxssmp
从以上输出可以看到,因为是一个4节点的环境,每个节点上有一对mxsscp和mxssmp进程,因此输出总共有8个进程。
关于mxsscp与mxssmp的关系,简单理解就是,ssmp是sscp和外界的接口, 外界和ssmp通讯,ssmp向sscp拿数据,sscp访问了共享内存之后把数据返回给ssmp,ssmp再把数据传给给它发消息的人。ssmp可以和所有节点的sscp联系,sscp和sscp之间,ssmp和ssmp之间不能通讯。
说到RMS,它主要有以下几项功能:
- 可以通过多种RMS命令监测并分析正在运行的语句运行情况,如offender、get statistics等
- 可以取消正在执行的语句
- 当DDL改变或调用grant/revoke后可以使查询缓存失效
- 备份恢复任务时可以使用RMS来静默系统(阻塞活跃的事务)
- 可以通过query_id来查询语句的执行计划
鉴于此,每个节点上会有一个单独的RMS共享内存段(RMS shared segment),共享内存段保存正在执行或正在被移除的语句的一些信息,这些信息在语句执行时直到语句状态成为deallocated状态后才会被释放。
RMS进程可以单独打开、关闭并检查服务是否正常,使用的命令如下,
rmsstart //打开rms服务
rmsstop //关闭rms服务
rmscheck //检查rms服务
rmscheck的输出如下,以下输出表示每个节点的rms服务均处于正常状态。
[trafodion@p08 ~]$ rmscheck
Timestamp Id Status
2018-12-21 11:36:31.000939 Node 0 OK
2018-12-21 11:36:31.000951 Node 1 OK
2018-12-21 11:36:31.000953 Node 2 OK
2018-12-21 11:36:31.000955 Node 3 OK
默认情况下,RMS是打开的,RMS当然也可以关闭,关闭RMS会导致上述5个功能失效,因此生产环境上建议打开RMS。我们也可以通过使用CQD来控制RMS不保存语句的相关执行信息,主要使用以下两个CQD,其中CQD DETAILED_STATISTICS ‘OFF’ 是关闭所有收集语句运行时的相关信息,CQD EXPLAIN_IN_RMS ‘OFF’ 只是关闭explain for qid query_id的功能。
CQD DETAILED_STATISTICS ‘OFF’
CQD EXPLAIN_IN_RMS ‘OFF’
RMS共享内存段默认大小是64MB,这可以通过在ms.env中添加RMS_SHARED_SEG_SIZE_MB=128来修改为128MB或修改为256MB,但避免设置为更大的值,因为太大的共享内存会导致系统整体性能下降。
另外,我们可以通过以下命令来查看所有节点的RMS运行情况或单个节点的RMS运行情况,
get statistics for rms all; //查看所有节点的rms运行情况
get statistics for rms <node-id>; //查看单个节点的rms运行情况
以下是某集群的输出结果(供参考),
Node name p08
Node Id 0
RMS Version 2511
SSCP PID 45432
SSCP Creation Timestamp 2018/12/20 14:00:47.771150
SSMP PID 45465
SSMP Creation Timestamp 2018/12/20 14:00:48.929529
Source String Store Len 254
Stats Heap Allocated 67,107,136
Stats Heap Used 10,836,976
Stats Heap High WM 10,886,352
No.of Process Stats Heaps 199
No.of Process Regd. 199
No.of Query Fragments Regd. 3419
RMS Semaphore Owner -1
No.of SSCPs Opened 4
No.of SSCPs Open Deleted 0
Last GC Time 2018/12/20 14:20:50.032402
Queries GCed in Last Run 0
Total Queries GCed 1
SSMP Request Message Count 1
SSMP Request Message Bytes 400
SSMP Reply Message Count 1
SSMP Reply Message Bytes 0
SSCP Request Message Count 1
SSCP Request Message Bytes 400
SSCP Reply Message Count 0
SSCP Reply Message Bytes 0
RMS Stats Reset Timestamp 2018/12/20 14:00:47.907435
No. Query Invalidation Keys 0
Configured Pid Max 65535
Node name p09
Node Id 1
RMS Version 2511
SSCP PID 11610
SSCP Creation Timestamp 2018/12/20 14:00:47.991834
SSMP PID 11616
SSMP Creation Timestamp 2018/12/20 14:00:49.092880
Source String Store Len 254
Stats Heap Allocated 67,107,136
Stats Heap Used 10,623,816
Stats Heap High WM 10,640,208
No.of Process Stats Heaps 200
No.of Process Regd. 200
No.of Query Fragments Regd. 3380
RMS Semaphore Owner -1
No.of SSCPs Opened 0
No.of SSCPs Open Deleted 0
Last GC Time 2018/12/20 14:20:48.242967
Queries GCed in Last Run 0
Total Queries GCed 0
SSMP Request Message Count 0
SSMP Request Message Bytes 0
SSMP Reply Message Count 0
SSMP Reply Message Bytes 0
SSCP Request Message Count 1
SSCP Request Message Bytes 400
SSCP Reply Message Count 0
SSCP Reply Message Bytes 0
RMS Stats Reset Timestamp 2018/12/20 14:00:48.157296
No. Query Invalidation Keys 0
Configured Pid Max 65535
Node name p10
Node Id 2
RMS Version 2511
SSCP PID 16659
SSCP Creation Timestamp 2018/12/20 14:00:48.292686
SSMP PID 16665
SSMP Creation Timestamp 2018/12/20 14:00:49.393791
Source String Store Len 254
Stats Heap Allocated 67,107,136
Stats Heap Used 10,728,280
Stats Heap High WM 10,728,400
No.of Process Stats Heaps 199
No.of Process Regd. 199
No.of Query Fragments Regd. 3361
RMS Semaphore Owner -1
No.of SSCPs Opened 0
No.of SSCPs Open Deleted 0
Last GC Time 2018/12/20 14:20:53.188281
Queries GCed in Last Run 0
Total Queries GCed 0
SSMP Request Message Count 0
SSMP Request Message Bytes 0
SSMP Reply Message Count 0
SSMP Reply Message Bytes 0
SSCP Request Message Count 1
SSCP Request Message Bytes 400
SSCP Reply Message Count 0
SSCP Reply Message Bytes 0
RMS Stats Reset Timestamp 2018/12/20 14:00:48.412091
No. Query Invalidation Keys 0
Configured Pid Max 65535
Node name p11
Node Id 3
RMS Version 2511
SSCP PID 19938
SSCP Creation Timestamp 2018/12/20 14:00:48.591228
SSMP PID 19943
SSMP Creation Timestamp 2018/12/20 14:00:49.692393
Source String Store Len 254
Stats Heap Allocated 67,107,136
Stats Heap Used 715,440
Stats Heap High WM 2,465,400
No.of Process Stats Heaps 14
No.of Process Regd. 14
No.of Query Fragments Regd. 25
RMS Semaphore Owner -1
No.of SSCPs Opened 0
No.of SSCPs Open Deleted 0
Last GC Time 2018/12/20 14:20:51.599603
Queries GCed in Last Run 40
Total Queries GCed 40
SSMP Request Message Count 0
SSMP Request Message Bytes 0
SSMP Reply Message Count 0
SSMP Reply Message Bytes 0
SSCP Request Message Count 1
SSCP Request Message Bytes 400
SSCP Reply Message Count 0
SSCP Reply Message Bytes 0
RMS Stats Reset Timestamp 2018/12/20 14:00:48.845684
No. Query Invalidation Keys 0
Configured Pid Max 32768