前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Heartbeat启动后无反应

Heartbeat启动后无反应

作者头像
星哥玩云
发布2022-07-04 10:27:47
1K0
发布2022-07-04 10:27:47
举报
文章被收录于专栏:开源部署开源部署

在将heartbeat应用到线上后,启动service heartbeat start,发现之后就再没反应了,查看日志tail -f /var/log/ha-log如下:

heartbeat[30680]: 2015/01/27_18:04:29 info: Version 2 support: false heartbeat[30680]: 2015/01/27_18:04:29 WARN: Logging daemon is disabled --enabling logging daemon is recommended heartbeat[30680]: 2015/01/27_18:04:29 info: ************************** heartbeat[30680]: 2015/01/27_18:04:29 info: Configuration validated. Starting heartbeat 2.1.3 heartbeat[30681]: 2015/01/27_18:04:29 info: heartbeat: version 2.1.3 heartbeat[30681]: 2015/01/27_18:04:29 WARN: No Previous generation - starting at 1422353070 heartbeat[30681]: 2015/01/27_18:04:29 info: Heartbeat generation: 1422353070 heartbeat[30681]: 2015/01/27_18:04:29 info: No uuid found for current node - generating a new uuid. heartbeat[30681]: 2015/01/27_18:04:29 info: Creating FIFO /var/lib/heartbeat/fifo.

一直保持在此不动,heartbeat所管理的资源也没有启动。

刚开始没有任何头绪,即使查看debug日志也没有什么作用,还会有什么地方会有报错信息呢?

终于想到service hearbeat status,终于有所提示:

Cannot shmget for process status: Invalid argument

顺着这根线百度,查到是由于kernel.shmmax,是内核参数导致的。因为这台机器是老机器,版本为5.5,而新配置的6.5服务器没有这个问题。

我的机器shmmax数据设置的过大,从而导致创建共享内存失败。

shmmax内核参数定义单个共享内存段的最大值,一般建议使用物理内存的一半,单位为字节。

以2G为例:2048/2*1024*1024=1073741824

在/etc/sysctl.conf中添加kernel.shmmax=1073741824,在系统重启后仍生效。

改完之后,service heartbeat start,仍未启动,再次service hearbeat status报错

Cannot shmget for process status: No space left on device

这是由于shmall共享内存设置过大导致

shmall内核参数定义共享内存页数,一般建议设置为物理内存大小,单位为页,1页=4k

以2G为例:2048*1024*1024/4000= 536870

在/etc/sysctl.conf中添加kernel.shmall=536870,在系统重启后仍生效。

以上全部改完后,再次service heartbeat start,正常启动且顺利接管VIP。

ok,希望给大家带来帮助。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档