统计信息收集器没有响应/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. javax.script.ScriptException: ReferenceError: "window" is not defined in security.js at line number 10

    使用jmeter执行加密登录接口的测试遇到的问题. 问题记录: 今天使用jmeter执行加密登录接口的测试,因为测试环境的应用包是以前的老版本(可能有两年了),所以需要替换加密文件:security. ...

  2. AR Engine光照估计能力,让虚拟物体在现实世界更具真实感

    AR是一项现实增强技术,即在视觉层面上实现虚拟物体和现实世界的深度融合,打造沉浸式AR交互体验.而想要增强虚拟物体与现实世界的融合效果,光照估计则是关键能力之一. 人们所看到的世界外观,都是由光和物质 ...

  3. Kubernetes—资源管理

    3. 资源管理 3.1 资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes. kubernetes的本质上就是一个集群系统,用户可以在集群中 ...

  4. java基础知识-lambda表达式

    一.什么是lambda? 在Java中,我们可以将一个值赋值给一个Java变量. int aValue = 129; String aString = "hello world"; ...

  5. Excel2010表格内容被加密,无法编辑内容。

    Sub PasswordBreaker() Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m As Integer, n ...

  6. 【Java面试指北】Exception Error Throwable 你分得清么?

    读本篇文章之前,如果让你叙述一下 Exception Error Throwable 的区别,你能回答出来么? 你的反应是不是像下面一样呢? 你在写代码时会经常 try catch(Exception ...

  7. 【大数据-课程】高途-天翼云侯圣文-Day1:互联网大数据揭秘(大数据介绍&MR实现双十一举牌)

    一.大厂职级 P7:年薪百万 二.大数据发展 1.职业路线和岗位角色 2.大数据行业发展 三.大数据的位置 1.热门行业 大数据承上启下 2.三者关系 啤酒和尿不湿:启发可以放在一块 3.大数据作用 ...

  8. 【每日一题】【第一个出现的值】【二分】2022年1月10日-NC105 二分查找-II

    描述请实现有重复数字的升序数组的二分查找给定一个 元素有序的(升序)长度为n的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的第一个出现的target,如果目标值存在返 ...

  9. websockets的原理

    一.应用场景 http 协议 客户端发起请求的时候才会返回内容,如果要处理类似于聊天室的应用,需要客户端不间断的发起请求(轮询),非常占用服务器的性能.所以websocket出现了. 二.ws(wss ...

  10. 玩好.NET高级调试,你也要会写点汇编

    一:背景 1. 简介 .NET 高级调试要想玩的好,看懂汇编是基本功,但看懂汇编和能写点汇编又完全是两回事,所以有时候看的多,总手痒痒想写一点,在 Windows 平台上搭建汇编环境不是那么容易,大多 ...