在 OceanBase 数据库的运维工作中,需要对剩余资源进行预设。本文主要介绍 OceanBase 数据库预设资源的监控点。
适用版本
OceanBase 数据库所有版本
资源监控点
一般情况下,需要为 OceanBase 集群预留 1/N 的系统资源,其中 N 为单个 Zone 中 OBServer 的数量。例如 3-3-3 集群中,需要预留的系统资源为 1/3。
集群资源的监控点包含以下几项:
单 OBServer 的 CPU、内存与数据文件大小均需要预留 1/N 的资源。
检查 OBServer 的 CPU 与 内存是否预留足够资源。
其中
CPU_PER表示使用 CPU 的百分比,MEM_PER表示使用内存的百分比。obclient> SELECT ZONE,SVR_IP,CPU_TOTAL,CPU_ASSIGNED, ROUND(CPU_ASSIGNED_PERCENT,2) CPU_PER,ROUND(MEM_TOTAL/1024/1024/1024,2) MEM_TOTAL_GB, ROUND(MEM_ASSIGNED/1024/1024/1024,2) MEM_ASS_GB,MEM_ASSIGNED_PERCENT MEM_PER, UNIT_NUM,LEADER_COUNT FROM __ALL_VIRTUAL_SERVER_STAT ORDER BY MEM_PER DESC; +-------+----------------+-----------+--------------+---------+--------------+------------+---------+----------+--------------+ | ZONE | SVR_IP | CPU_TOTAL | CPU_ASSIGNED | CPU_PER | MEM_TOTAL_GB | MEM_ASS_GB | MEM_PER | UNIT_NUM | LEADER_COUNT | +-------+----------------+-----------+--------------+---------+--------------+------------+---------+----------+--------------+ | zone3 | xxx.xx.xxx.xxx | 62 | 2.5 | 4 | 30.00 | 7.50 | 25 | 1 | 0 | | zone1 | xxx.xx.xxx.xxx | 62 | 2.5 | 4 | 30.00 | 7.50 | 25 | 1 | 1227 | | zone2 | xxx.xx.xxx.xxx | 62 | 2.5 | 4 | 30.00 | 7.50 | 25 | 1 | 0 | +-------+----------------+-----------+--------------+---------+--------------+------------+---------+----------+--------------+ 3 rows in set (0.00 sec)检查数据文件大小。
其中
TABLE_SIZE_GB表示数据文件大小。obclient> SELECT /*+READ_CONSISTENCY(WEAK),QUERY_TIMEOUT(100000000)*/ A.ZONE,A.SVR_IP,ROUND(SUM(A.DATA_SIZE) / 1024 / 1024 / 1024, 2) TABLE_SIZE_GB FROM __ALL_VIRTUAL_META_TABLE A, __ALL_VIRTUAL_TABLE B, __ALL_TENANT C WHERE INSTR(A.MEMBER_LIST, A.SVR_IP)>0 AND A.TENANT_ID = B.TENANT_ID AND A.TABLE_ID = B.TABLE_ID AND B.TENANT_ID = C.TENANT_ID GROUP BY A.ZONE,A.SVR_IP ORDER BY A.ZONE,A.SVR_IP, TABLE_SIZE_GB DESC; +-------+----------------+---------------+ | ZONE | SVR_IP | TABLE_SIZE_GB | +-------+----------------+---------------+ | zone1 | xxx.xx.xxx.xxx | 15.27 | | zone2 | xxx.xx.xxx.xxx | 15.28 | | zone3 | xxx.xx.xxx.xxx | 14.93 | +-------+----------------+---------------+ 3 rows in set (0.03 sec)检查磁盘使用率。
其中
USED_PERCENT表示磁盘使用百分比。obclient> SELECT /*+READ_CONSISTENCY(WEAK),QUERY_TIMEOUT(100000000)*/ B.ZONE, A.SVR_IP,A.SVR_PORT,B.WITH_ROOTSERVER, ROUND(A.TOTAL_SIZE/1024/1024/1024,0) AS TOTAL_GB, ROUND(A.FREE_SIZE/1024/1024/1024,0) AS FREE_GB, ROUND((A.TOTAL_SIZE-A.FREE_SIZE)/1024/1024/1024,0) AS USED_GB, (A.TOTAL_SIZE-A.FREE_SIZE)/A.TOTAL_SIZE AS USED_PERCENT FROM __ALL_VIRTUAL_DISK_STAT A, __ALL_SERVER B WHERE A.SVR_IP=B.SVR_IP AND A.SVR_PORT=B.SVR_PORT ORDER BY B.ZONE,USED_PERCENT DESC; +-------+----------------+----------+-----------------+----------+---------+---------+--------------+ | ZONE | SVR_IP | SVR_PORT | WITH_ROOTSERVER | TOTAL_GB | FREE_GB | USED_GB | USED_PERCENT | +-------+----------------+----------+-----------------+----------+---------+---------+--------------+ | zone1 | xxx.xx.xxx.xxx | 2882 | 1 | 167 | 167 | 0 | 0.0014 | | zone2 | xxx.xx.xxx.xxx | 2882 | 0 | 167 | 167 | 0 | 0.0014 | | zone3 | xxx.xx.xxx.xxx | 2882 | 0 | 167 | 167 | 0 | 0.0014 | +-------+----------------+----------+-----------------+----------+---------+---------+--------------+ 3 rows in set (0.01 sec)
集群中分区数量之和不大于 3 万。
单 OBServer 的线程数与租户的资源单元中的
min_cpu与max_cpu相关,如果已经为单 OBServer 预留了 1/N 的 CPU,则该检查点可以忽略。单 OBServer 操作系统的网络吞吐量、磁盘的 MBPS 与 IOPS 与 CPU 荷载量。
网络吞吐量:通过
tsar命令检查。磁盘 MBPS 与 IOPS:通过
io_stat命令检查。CPU 荷载:通过
top命令检查。