统计信息收集器没有响应/Stats collector is not responding

问题现象:

kingbase数据库日志提示:统计信息收集器没有响应/Stats collector is not responding

示例Kingbase日志输出:

LOG: using stale statistics instead of current ones because stats collector is not responding
日志:由于统计信息收集器无响应而使用旧的统计信息来替代当前的统计信息.

原因:

场景1.统计信息收集器“stats collector”进程内部 UDP 连接连接超时,没有及时写入新的统计信息,导致过时的统计信息和其他潜在问题。
场景2.Kingbase数据日志持续大量的出现此信息,此场景下说明系统负载较高,资源不够用.

建议操作:

场景1,偶尔在数据库日志出现此问题,基本不用担心.保持关注就行.
场景2:统计收集器需要频繁收集统计信息,在高负载期间可能会导致上述的日志信息。
如果系统负载较高,系统资源紧张不够用,可以考虑将stats_temp_directory参数设置到基于 RAM 的文件系统上.
#需要关注内存的大小
1.kingbase.conf设置stats_temp_directory参数,需要重启数据库服务器.stats_temp_directory='/dev/shm'
2.手动mkdir 目录,使用mount挂载为tmpfs格式.tmpfs 的主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。 [root@postgres ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 1.1G 0 1.1G 0% /dev
tmpfs tmpfs 1.1G 8.2k 1.1G 1% /dev/shm
tmpfs tmpfs 1.1G 9.4M 1.1G 1% /run
tmpfs tmpfs 1.1G 0 1.1G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 19G 15G 3.9G 80% /
/dev/sda1 xfs 1.1G 212M 852M 20% /boot
/dev/mapper/datavg-datalv xfs 11G 9.7G 1.1G 90% /dbdata
tmpfs tmpfs 210M 0 210M 0% /run/user/0 --不使用/dev/shm 手动mkdir创建stats_temp_directory目录并mount mount -t tmpfs -o size=1G tmpfs /stat_test/
[root@postgres ~]# mkdir /stat_test
[root@postgres ~]# mount -t tmpfs -o size=1G tmpfs /stat_test/
[root@postgres ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 984M 0 984M 0% /dev
tmpfs tmpfs 1000M 8.0K 1000M 1% /dev/shm
tmpfs tmpfs 1000M 9.0M 991M 1% /run
tmpfs tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 14G 3.6G 80% /
/dev/sda1 xfs 1014M 203M 812M 20% /boot
/dev/mapper/datavg-datalv xfs 10G 9.0G 1.1G 90% /dbdata
tmpfs tmpfs 200M 0 200M 0% /run/user/0
tmpfs tmpfs 1.0G 0 1.0G 0% /stat_test 然后kingbase.conf设置stats_temp_directory='/stat_test'

设置stats_temp_directory='/dev/shm' (或者使用手动创建的目录)

[kingbase@postgres ora_data]$ ksql -Usystem -dtest
ksql (V8.0)
输入 "help" 来获取帮助信息. test=# show stats_temp_directory ; stats_temp_directory
---------------------- /dev/shm
(1 行记录) --查看/dev/shm目录,有文件生成
[kingbase@postgres shm]$ pwd
/dev/shm
[kingbase@postgres shm]$ ls -l
总用量 48
-rw------- 1 kingbase kingbase 3892 1月 17 11:05 db_0.stat
-rw------- 1 kingbase kingbase 29073 1月 17 11:05 db_16269.stat
-rw------- 1 kingbase kingbase 639 1月 17 11:05 global.stat
-rw------- 1 kingbase kingbase 7408 1月 17 11:02 kingbase.94006976 --查看sys_stat_tmp目录
[kingbase@postgres sys_stat_tmp]$ ls -l
总用量 4
-rw------- 1 kingbase kingbase 423 1月 17 11:03 pgss_query_texts.stat
--查看sys_stat目录
[kingbase@postgres sys_stat]$ pwd
/home/kingbase/ora_data/sys_stat
[kingbase@postgres sys_stat]$ ls -l
总用量 0 --正常关闭数据库
[kingbase@postgres sys_stat]$ sys_ctl -D /home/kingbase/ora_data/ stop
waiting for server to shut down.... done
server stopped --查看sys_stat目录
--正常关闭数据库会将/dev/shm下的统计信息文件拷贝到sys_stat目录持久保存.
[kingbase@postgres sys_stat]$ pwd
/home/kingbase/ora_data/sys_stat
[kingbase@postgres sys_stat]$ ls -l
总用量 48
-rw------- 1 kingbase kingbase 3892 1月 17 11:08 db_0.stat
-rw------- 1 kingbase kingbase 29073 1月 17 11:08 db_16269.stat
-rw------- 1 kingbase kingbase 639 1月 17 11:08 global.stat
-rw------- 1 kingbase kingbase 19 1月 17 11:08 instance.stat
-rw------- 1 kingbase kingbase 1915 1月 17 11:08 sys_stat_statements.stat --启动数据库
[kingbase@postgres sys_stat]$ sys_ctl -D /home/kingbase/ora_data/ start
waiting for server to start....2023-01-17 11:10:18.739 CST [25116] LOG: sepapower extension initialized
2023-01-17 11:10:18.744 CST [25116] LOG: starting KingbaseES V008R006C006B0021 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
2023-01-17 11:10:18.745 CST [25116] LOG: listening on IPv4 address "0.0.0.0", port 54321
2023-01-17 11:10:18.745 CST [25116] LOG: listening on IPv6 address "::", port 54321
2023-01-17 11:10:18.751 CST [25116] LOG: listening on Unix socket "/tmp/.s.KINGBASE.54321"
2023-01-17 11:10:18.884 CST [25116] LOG: redirecting log output to logging collector process
2023-01-17 11:10:18.884 CST [25116] HINT: Future log output will appear in directory "sys_log".
done
server started
[kingbase@postgres sys_stat]$
--sys_stat目录下无文件
[kingbase@postgres sys_stat]$ pwd
/home/kingbase/ora_data/sys_stat
[kingbase@postgres sys_stat]$ ls -l
总用量 0 --启动数据库后加载统计信息临时文件到/dev/shm目录 [kingbase@postgres sys_stat]$ ls -l /dev/shm
总用量 16
-rw------- 1 kingbase kingbase 3892 1月 17 11:10 db_0.stat
-rw------- 1 kingbase kingbase 639 1月 17 11:10 global.stat
-rw------- 1 kingbase kingbase 7408 1月 17 11:10 kingbase.166558517 [kingbase@postgres sys_stat]$ pwd
/home/kingbase/ora_data/sys_stat
[kingbase@postgres sys_stat]$ ls -l

关于统计信息收集器:

1.统计信息收集器可以对表和索引的访问计数,计数可以按磁盘块和个体行来进行。
2.跟踪每个表中的总行数、每个表的清理和分析动作的信息。
3.统计调用用户定义函数的次数以及在每次调用中花费的总时间。
4.会话的每个后端都是Kingbase中的一个单独进程,在负载较高的系统收集统计信息并不是一件容易的事。
5.每个后端进程将(通过UDP套接字进行通信)有关他们所做的活动的信息发送到单个"stats collector"进程。
6.Kingbase数据库通过与“stats collector”进程的内部 UDP 连接,将每个表的统计信息和其他内部指标写入目录统计表。

类别:服务器事件(Server Events)

Kingbase数据库后台进程:统计信息收集器进程stats collector

kingbase: stats collector 进程为统计信息收集器进程
[kingbase@postgres ~]$ ps -ef|grep kingbase | grep -v grep
root 20288 20157 0 09:18 pts/1 00:00:00 su - kingbase
kingbase 20290 20288 0 09:18 pts/1 00:00:00 -bash
kingbase 20708 1 0 09:26 ? 00:00:01 /home/kingbase/V8R6C6B21/ES/V8/KESRealPro/V008R006C006B0021/Server/bin/kingbase -D /home/kingbase/ora_data
kingbase 20710 20708 0 09:26 ? 00:00:00 kingbase: logger
kingbase 20713 20708 0 09:26 ? 00:00:00 kingbase: checkpointer
kingbase 20714 20708 0 09:26 ? 00:00:00 kingbase: background writer
kingbase 20715 20708 0 09:26 ? 00:00:00 kingbase: walwriter
kingbase 20716 20708 0 09:26 ? 00:00:00 kingbase: autovacuum launcher
kingbase 20717 20708 0 09:26 ? 00:00:00 kingbase: archiver
kingbase 20718 20708 0 09:26 ? 00:00:00 kingbase: stats collector
kingbase 20719 20708 0 09:26 ? 00:00:00 kingbase: ksh writer
kingbase 20720 20708 0 09:26 ? 00:00:00 kingbase: ksh collector
kingbase 20721 20708 0 09:26 ? 00:00:00 kingbase: kwr collector
kingbase 20722 20708 0 09:26 ? 00:00:00 kingbase: job bgworker
kingbase 20723 20708 0 09:26 ? 00:00:00 kingbase: logical replication launcher
kingbase 21990 20290 0 10:00 pts/1 00:00:00 ps -ef

统计信息收集配置参数:

track_activities:允许监控当前被任意服务器进程执行的命令。
track_counts:控制是否收集关于表和索引访问的统计信息。
track_functions:启用对用户定义函数使用的跟踪。
track_io_timing:启用对块读写次数的监控。 test=> show track_activities;
track_activities
------------------
on
(1 行记录)
test=> set track_activities to off;
ERROR: permission denied to set parameter "track_activities" test=# show track_activities;
track_activities
------------------
off
(1 行记录) test=# set track_activities to on;
SET 参数设置在kingbase.conf中,会应用于所有服务器进程.可以在单个会话中使用SET命令打开或关闭(只有超级用户允许使用SET来改变这些参数)。

统计收集器通过临时文件将收集到的信息传送给其他Kingbase进程。这些文件被存储在参数stats_temp_directory指定的目录中,默认是sys_stat_tmp.

test=# show stats_temp_directory ;

 stats_temp_directory
---------------------- sys_stat_tmp
(1 行记录) [kingbase@postgres sys_stat_tmp]$ pwd
/home/kingbase/ora_data/sys_stat_tmp
[kingbase@postgres sys_stat_tmp]$ ls -l *
-rw------- 1 kingbase kingbase 3892 1月 17 10:20 db_0.stat
-rw------- 1 kingbase kingbase 29073 1月 17 10:20 db_16269.stat
-rw------- 1 kingbase kingbase 639 1月 17 10:20 global.stat
-rw------- 1 kingbase kingbase 19 1月 17 10:06 instance.stat
-rw------- 1 kingbase kingbase 1584 1月 17 10:19 pgss_query_texts.stat

服务器正常关闭时,统计数据会拷贝sys_stat_tmp目录的副本会永久的存储在sys_stat目录中,这样在服务器重启后统计信息能被正常的加载访问。当服务器启动异常故障需要执行恢复时(例如立即关闭、服务器崩溃以及时间点恢复之后),所有统计计数器会被重置。

[kingbase@postgres sys_stat]$ pwd
/home/kingbase/ora_data/sys_stat
[kingbase@postgres sys_stat]$ ls -l
总用量 52
-rw------- 1 kingbase kingbase 3892 1月 17 10:23 db_0.stat
-rw------- 1 kingbase kingbase 29073 1月 17 10:23 db_16269.stat
-rw------- 1 kingbase kingbase 639 1月 17 10:23 global.stat
-rw------- 1 kingbase kingbase 19 1月 17 10:23 instance.stat
-rw------- 1 kingbase kingbase 4852 1月 17 10:23 sys_stat_statements.stat

Stats collector is not responding 统计信息收集器没有响应的更多相关文章

  1. OstrichNet 简易统计信息收集工具

    Ostrich 是twitter用于监控服务器性能的一个scala库,项目地址https://github.com/twitter/ostrich, 主要功能是收集.展示统计信息, 同时也提供了关闭服 ...

  2. Oracle 统计信息收集

    官网网址参考: https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_stats.htm#CIHBIEII https://docs.ora ...

  3. [统计信息系列7] Oracle 11g的自动统计信息收集

    (一)统计信息收集概述 在Oracle 11g中,默认有3个自动任务,分别是:自动统计信息收集.SQL调优顾问.段空间调整顾问,查看方法如下: SQL> SELECT CLIENT_NAME,T ...

  4. 10G之后统计信息收集后为什么执行计划不会被立马淘汰

    在10G之前,使用DBMS_STATS收集统计信息将会导致与此对象相关的游标失效,下次执行此 的时候将会进行HARD PARSE,除非收集的时候NO_INVALIDATE设置为TRUE. 由于硬解析会 ...

  5. 11g新特性-如何禁用自动统计信息收集作业

    一.11g中auto stats gather job被集成到了auto task中. SQL> select client_name,status from DBA_AUTOTASK_CLIE ...

  6. Mysql 碎片整理与统计信息收集

    ======重新收集统计信息======= 1.分析和存储表的关键字分布 analyze table table_name; analyze 用于收集优化器的统计信息.和tuning相关:对 myis ...

  7. python 信息收集器和CMS识别脚本

    前言: 信息收集是渗透测试重要的一部分 这次我总结了前几次写的经验,将其 进化了一下 正文: 信息收集脚本的功能: 1.端口扫描 2.子域名挖掘 3.DNS查询 4.whois查询 5.旁站查询 CM ...

  8. Python黑客——快速编写信息收集器

    i春秋作家:大木瓜 环境:Python 3模块:LxmlRequestBeautifulsoup开始:首先看一下目标站: http://gaokao.chsi.com.cn/gkxx/zszcgd/d ...

  9. 【PostgreSQL】PostgreSQL 15移除了Stats Collector

    试用即将发行的PostgreSQL 15的人会发现少了一个后台进程:​ postgres 1710 1 0 04:03 ? 00:00:00 /usr/pgsql-15/bin/postmaster ...

  10. Oracle的自动统计信息不收集直方图的信息

    Oracle的自动统计信息不收集直方图的信息 在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1 在10 ...

随机推荐

  1. 1分钟完成在线测试部署便捷收集班级同学文件的web管理系统

    最近CSDN推出了一个新功能[云IDE],个人对这个新功能(比赛奖金 )挺感兴趣的,于是瞬速地拿之前自己搞的一个便捷收集班级同学文件的web管理系统(下面简称该项目为cfile)体验了一下,发现功能还 ...

  2. Redisson源码解读-公平锁

    前言 我在上一篇文章聊了Redisson的可重入锁,这次继续来聊聊Redisson的公平锁.下面是官方原话: 它保证了当多个Redisson客户端线程同时请求加锁时,优先分配给先发出请求的线程.所有请 ...

  3. Nginx重写功能(rewrite与location)

    一.常用的Nginx 正则表达式 二.访问路由location 2.1location的分类 location 大致可以分为三类: 精准匹配:location = / {} 一般匹配:location ...

  4. 第一章:TypeScript快速入门

    一.TypeScript 开发环境搭建 1.TypeScript 是什么? TypeScript 是一种由微软开发的自由和开源的编程语言.它是 JavaScript 的一个超集,而且本质上向这个语言添 ...

  5. java 分布式游戏服务器框架,集群游戏服务器框架,游戏服务器网关框架 ioGame 网络游戏服务器框架

    ioGame 国内首个基于蚂蚁金服 SOFABolt 的 java 网络游戏服务器框架:无锁异步化.事件驱动的架构设计 通过 ioGame 可以很容易的搭建出一个集群无中心节点.有状态多进程的分步式游 ...

  6. CPU cache知识 —— ARM架构cache结构和细节

    cache如何寻址 处理器访问cache时,cache电路会将CPU地址进行解码,分成3个部分,分别是: offset: 用于某个cache line -- 字抽取: index: 用于匹配某个cac ...

  7. GO开发工具litelDE的安装与使用

    1.MinGW的下载与安装 地址:http://sourceforge.net/projects/mingw/ 下载安装 D:\Program Files\MinGW 然后打开D:\Program F ...

  8. 互斥锁 线程理论 GIL全局解释器锁 死锁现象 信号量 event事件 进程池与线程池 协程实现并发

    目录 互斥锁 multiprocessing Lock类 锁的种类 线程理论 进程和线程对比 开线程的两种方式(类似进程) 方式1 使用Thread()创建线程对象 方式2 重写Thread类run方 ...

  9. Jmeter 之连接数据库

    1.下载mysql-connector-java-5.1.7-bin.jar 2.下载后将该jar包放于bin目录下,如:D:\Program Files\apache-jmeter-5.2\bin ...

  10. JavaScript:操作符:操作符的特点

    在JS中,所有的操作符,都同时在做两件事,第一件事是进行计算,第二件事是返回计算的结果,这个结果需要有变量去接收,否则就成为无人认领的数据而被垃圾回收: 在JS中,有很多不常用的操作符以及语法,容易让 ...