统计信息收集器没有响应/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. civil3d安装教程2022序列号和密钥

    Civil3D2021 WIN10 64位安装步骤:1.先使用"百度网盘客户端"下载C3D21_CN_x64软件安装包到电脑磁盘里,并右击进行解压,安装前先断网,然后找到Autod ...

  2. 「工具推荐」golang 代码可视化工具 go-callvis

    「工具推荐」go-callvis go-callvis是相对 以图片的形式展示了go程序的调用关系,这个工具在看复杂项目时尤其有用. 亲测,借助它看祖传golang代码,头痛好多了. 安装 go ge ...

  3. Go语言核心36讲53

    你好,我是郝林. 在2019年的春节来临之际,我恰好也更新完了专栏所有的配图和思考题答案.希望这些可以帮助到你,在新的一年中,祝你新年快乐,Go语言学习之路更加顺利. 基础概念篇 1. Go语言在多个 ...

  4. 【Spring系列】- Bean生命周期底层原理

    Bean生命周期底层原理 生命不息,写作不止 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 前言 上次学到动 ...

  5. day19-web开发会话技术01

    WEB开发会话技术01 1.会话 Web开发中,用到的4种会话跟踪技术 - 博客园 (cnblogs.com) 会话的基本介绍 什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服 ...

  6. 将现有源码添加进repo管理

    将现有源码添加进repo管理 适用于大型项内无源码管理(git/repo)的源码 前言 ​ 公司在进行一些项目的开发时,从供应商原厂给的code内没有包含任何源码管理的文件.需要多人协同开发,但由于项 ...

  7. 关于Linux mint更换中文字体后全局楷体修改办法

    问题描述 linux mint 更新中文字体后,全局都变成了楷体,浏览器里面,终端里(英文字体可以在终端设置里面修改),这里指的是中文字体,而英文字体可以在 linux mint 设置 - 选择字体 ...

  8. form enctype="multipart/form-data" ajax 文件上传

    <form method="post" enctype="multipart/form-data" id="resource"> ...

  9. Java常用开发文档及工具

    一.实用工具/网站 1.PHP中文网:https://www.php.cn/ 2.Json工具:http://www.bejson.com/ 3.IT大哥导航:https://itdage.com/ ...

  10. 【每日一题】【动态规划】2022年2月22日-NC59 矩阵的最小路径和

    描述 给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和. 例如:当输入[[1,3,5,9], ...