生产环境cassandra问题二则

安稳与你 提交于 2019-12-20 01:07:25

生产环境cassandra问题二则

环境

操作系统:CentOS Linux release 7.3.1611 (Core)
jdk:java-1.8.0-openjdk-1.8.0.121
cassandra:3.11.2

1.使用systemctl启动无法生成pid

问题描述

root用户使用systemctl语句启动cassandra时,虽然cassandra正常启动了,但是未生产pid文件。

问题解决

经检查,发现是server文件的ExecStart脚本路径错误,导致pid文件无法生成。

调整:

vim /usr/lib/systemd/system/cassandra.service

ExecStart=/opt/database/apache-cassandra/bin/cassandra -p /opt/database/apache-cassandra/cassandra.pid

2.jps无法找到cassandra

问题描述

使用jps无法检测到cassandra进程:

[root@c1-redis01 ~]# jps
15285 Jps
1500 cassandra_exporter.jar

问题解决

百度后了解到cassandra的jvm配置有自选项PerfDisableSharedMem,如果启动,会无法使用jps,经抉择后决定关闭此功能:
调整

vim /opt/database/apache-cassandra-3.11.2/conf/jvm.options

-XX:-PerfDisableSharedMem

重启cassandra后检查:

[root@c1-redis01 ~]# jps
15285 Jps
50085 CassandraDaemon
1500 cassandra_exporter.jar

已可看到cassandra进程

参数说明:
PerfDisableSharedMem
启用标准内存使用。JVM控制分为标准或共享内存,区别在于一个是在JVM内存中,一个是生成/tmp/hsperfdata_{userid}/{pid}文件,存储统计数据,通过mmap映射到内存中,别的进程可以通过文件访问内容。通过这个参数,可以禁止JVM写在文件中写统计数据,代价就是jps、jstat这些命令用不了了,只能通过jmx获取数据。但是在问题排查是,jps、jstat这些小工具是很好用的,比jmx这种很重的东西好用很多,所以需要自己取舍。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!