KingbaseES V8R3集群运维案例---进程内核参数配置集群启动故障
案例说明:
KingbaseES V8R3集群在部署时需要配置与进程间通讯(IPC)相关的内核参数,如果缺失配置或配置错误,kingbasecluster服务在启动过程中将因为内核参数配置错误导致启动失败。
适用版本:
KingbaseES V8R3
一、官方部署建议配置
共享内存
共享存储区(Share Memory)是Linux系统中通信速度最高的通信机制,因为数据不需要在客户机和服务器端之间复制,数据直接写到内存,不用若干次数据拷贝,所以这是最快的一种IPC。
系统内核相关配置:kernel.shmmax :定义了共享内存段的最大尺寸(以字节为单位)
kernel.shmall :表示系统一次可以使用的共享内存总量(以页为单位))
kernel.shmmni:设置系统范围内共享内存段的最大数量,默认4096
信号量
信号量是一个计数器,可以用来控制多个线程对共享资源的访问。它不是用于交换大批数据,而用于多线程之间的同步。它常作为一种锁机制,防止某进程在访问资源时其它进程也访问该资源。因此,主要作为进程间以及同一个进程内不同线程之间的同步手段。
系统内核相关配置:SEMMNI:系统中信号量的总数最大值
SEMMSL:每个信号量中信号量元素的最大值
SEMMNS:系统中所有信号量中的信号量元素的最大值
SEMOPM: 定义了每个semop系统调用能够操作的最大信号量数
建议配置:
二、shm相关案例
1、集群启动故障:“failed system call shmget(xxx,xxx,xxx)”错误。
shmget()函数,该函数用来创建共享内存。如上图所示,shmget函数无法获取到共享的内存空间,进程启动失败,经检查配置shmmax和shmmni参数后,重新启动集群问题解决。
2、集群启动故障:“could not create shared memory segment: No space left on device”错误。
检查发现重新配置kernel.sem参数后,重启系统后问题解决。
3、集群启动故障“could not create shared memory for request size”错误
检查配置kernel.shmmax = 128000000,重启服务器后,kingbasecluster进程启动成功。(物理内存16G)
4、集群启动故障: “shared memory creation failed with error "Invalid argument"错误。
如下图所示,调整shmmax参数后,kingbasecluster进程启动成功。
5、数据库启动故障: “could not open shared memory segment“错误
问题分析:
# 查看数据库进程
[kingbase@node202 bin]$ ps -ef |grep "kingbase -D"
kingbase 4537 1 0 10:03 ? 00:00:00 /home/kingbase/cluster/R6C8/HAC8/kingbase/bin/kingbase -D /home/kingbase/cluster/R6C8/HAC8/kingbase/data
# 查看数据库进程访问文件
[kingbase@node202 bin]$ lsof -p 4537|grep shm
kingbase 4537 kingbase mem REG 0,17 8464 34985 /dev/shm/kingbase.499787157
# 查看共享内存对应的临时文件
[kingbase@node202 bin]$ ls -lh /dev/shm
total 96K
-rw------- 1 kingbase kingbase 8.3K Oct 31 10:03 kingbase.499787157
# 查看共享内存目录属性
[kingbase@node202 bin]$ ls -lhd /dev/shm
drwxrwxrwt 2 root root 160 Oct 31 10:03 /dev/shm
问题解决:
从故障现象看,是没有权限访问/dev/shm下的共享内存段对应的文件及/dev/shm目录权限,检查权限,赋予合适的权限。
三、问题总结
对于共享内存配置所导致的故障,可以通过ipcs命令获取共享内存和信号量的应用情况,分析问题产生的原因。
正常内核资源限制和使用:
[root@node101 ~]# ipcs -l
------ Messages Limits --------
max queues system wide = 32000
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398442373116
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 256
max semaphores per array = 5010
max semaphores system wide = 641280
max ops per semop call = 5010
semaphore max value = 32767
查看当前系统共享内存和信号量使用:
KingbaseES V8R3集群运维案例---进程内核参数配置集群启动故障的更多相关文章
- KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析
案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
- KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例
案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...
- KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed
案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- PB 级大规模 Elasticsearch 集群运维与调优实践
PB 级大规模 Elasticsearch 集群运维与调优实践 https://mp.weixin.qq.com/s/PDyHT9IuRij20JBgbPTjFA | 导语 腾讯云 Elasticse ...
- 阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践
作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击即可完成下载. 导读:值得阿里巴巴技术人骄傲的是 2019 ...
- 集群运维ansible
ssh免密登录 集群运维 生成秘钥,一路enter cd ~/.ssh/ ssh-keygen -t rsa 讲id_rsa.pub文件追加到授权的key文件中 cat ~/.ssh/id_rsa.p ...
- 运维小知识之nginx---nginx配置Jboss集群负载均衡
codyl 2016-01-26 00:53:00 浏览385 评论0 负载均衡 转自 运维小知识之nginx---nginx配置Jboss集群负载均衡-博客-云栖社区-阿里云https://yq ...
- 运维开发笔记整理-URL配置
运维开发笔记整理-URL配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.URL路由 对于高质量的Web应用来说,使用简洁,优雅的URL的路由是一个非常值得重视的细节.Dja ...
随机推荐
- 【Unity3D】Photon环境搭建
1 简介 Photon 是一个泛用性的 ScoketServer 套装软件,可用于多人在线游戏.聊天室.大厅游戏,并同时支持 Windows.Unity3D.iOS.Android.Flash 等 ...
- 《深入理解Java虚拟机》(八) 记录一次OOM问题分析实战
目录 一.问题分析思路 二.主要问题概述以及分析 1.相关操作 2.主要问题现象 3.初步分析问题 三.相关工具介绍 四.实际问题快照分析 1.通过Memory查看老年代内存占用情况 2.选择Live ...
- C# 操作国产数据库之【 人大金仓 】之四大模式
人大金仓优点 人大金仓是国产最主流ORM之一 具有和PgSql一样强悍的性能,同时人大金仓支持了四种数据库模式 : Oracle.PgSql.MySql和SqlServer ,假如你们系统有多种数据库 ...
- 有n步台阶,一次只能上1步或2步,共有多少种走法
循环迭代: 1 public class steps { 2 public int js(int n) { 3 int one = 2; //初始化为第三级台阶最后跨一步的走法 4 int two ...
- Redis哨兵模式搭建
一:哨兵主要作用 监控:监控redis主库及从库运行状态: 通知:如果redis发生故障转移,可以通过邮件通知管理员: 自动故障转移:一旦发现主库宕机,则在从库中通过选举新的master进行故障转移. ...
- PDF/Excel文件预览功能完整实现-java版本
新需求 最近接到一个新的需求,说是之前直接下载的PDF文件或者是Excel文件,现在不能直接下载,需要实现在线预览功能. 前端人员拿到这个需求后,去看了一下以前的代码,以前调用的下载接口和PDF文件预 ...
- nvm-windows 安装遇到的问题 node目录卸载后(有残留)记得改名
需求 网上好多新项目都需要最新版的node,所有需要切换node版本 nvm-windows https://github.com/coreybutler/nvm-windows 安装步骤-问题 删除 ...
- snippet n. 小片, 片断, 摘录 单词记忆
snippet 助记:snip[剪断] + -et小词后缀. 关键是 snip 怎么记忆 snip : 拟声词,模仿剪断东西的声音. 助记单词 slip 滑 根据字母 n是done的缩写,可以 想成 ...
- 使用 libreoffice 批量化转化文件为 .pdf 并合并
介绍使用 libreoffice 批量化将文件转化为 .pdf 然后合并.pdf文件的方法 很多人知道,在 Linux 系统中 WPS 是办公软件中很棒的选择.但其实 libreoffice 也是一个 ...
- hibernate之createQuery与createSQLQuery
信息: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.miracle.dm.doc.catalog.m ...