jps 命令内容中出现Insufficient space for shared memory file:

本文探讨了在Hadoop运行过程中遇到的JVM内存不足导致的错误提示,并提供了清理日志文件的方法来解决问题。同时,解释了/tmp/hsperfdata_$user/$number目录的用途及其与JVM性能监控的关系。
#jps  报错了

Java HotSpot(TM) 64-Bit Server VM warning:
Insufficient space for shared memory file:    
/tmp/hsperfdata_root/15746 Try using the -Djava.io.tmpdir= option to select an alternate temp location.

df -h
发现某一个满的分区

清理一些日志文件 恢复正常

起namenode时,hadoop报错:

Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:
/tmp/hsperfdata_work/23408
Try using the -Djava.io.tmpdir= option to select an alternate temp location.

错误解决后,搜索学习这个 /tmp/hsperfdata_$user/$number的作用:
That directory is part of a Java performance counter.

这个文件存的应该是JVM进程当前的一些性能参数(或者说运行信息)
jvmstat会生成一个目录文件叫hsperfdata_username,那这个目录文件在哪里呢,默认的是生成在 java.io.tmpdir目录下, java.io.tmpdir在linux下默认是/tmp下,故默认开启了jvm monitor的功能以后就会在/tmp目录下生成一个目录叫 hsperfdata_username ,然后这个目录中会有一个pid文件,可以利用strings查看里面的文件内容,一般就是jvm的进程信息而已。

而jps、jconsole、jvisualvm等工具的数据来源就是这个文件(/tmp/hsperfdata_userName/pid)。所以当该文件不存在或是无法读取时就会出现jps无法查看该进程号,jconsole无法监控等问题

/tmp/hsperfdata_userName/pid文件会在对应java进程退出后被清除。如果java进程非正常退出(如kill -9),那么pid文件会被保留,直到执行一次java命令或是加载了jvm程序的命令(如jps、javac、jstat),会将所有无用的pid文件都清除掉
当你遇到 "jps: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory" 错误时,这通常发生在Java程序中,特别是当你运行Java进程(例如使用JPS命令检查Java进程状态)时,系统找不到名为 `libjli.so` 的共享库文件。`libjli.so` 通常与Oracle的Java Development Kit (JDK) 或者Java运行时环境 (JRE) 中的JavaFX库相关。 解决这个问题,你可以按照以下步骤操作: 1. **确认文件存在**:首先,请确保`libjli.so` 文件确实存在于预期的位置,如`<JAVA_HOME>/jre/lib/amd64/server` 或 `<JAVA_HOME>/jre/lib/`. 2. **检查安装**:如果文件不存在,可能是因为JavaFX没有正确安装,或者你尝试运行的Java程序依赖了JavaFX但系统没有找到它。确认你的系统是否安装了JavaFX,如果没有,你需要安装相应的版本。 3. **环境变量设置**:如果你的Java安装路径不是默认的 `/usr/lib/jvm/`,请确保`JAVA_HOME` 和`JRE_HOME` 环境变量已经配置正确,并指向你的Java安装目录。 4. **重新启动Java进程**:关闭并重新启动你的Java应用程序或服务,有时候仅重启就足以解决因加载库顺序问题导致的错误。 5. **更新或修复JDK/JRE**:如果文件缺失,尝试更新你的Java版本到最新稳定版,或者修复已安装的包。 6. **检查依赖和版本冲突**:如果有多个版本的Java或库文件,确保它们之间没有冲突。 如果上述步骤无法解决问题,你可能需要提供更多的上下文信息以便更准确地诊断,比如你在执行哪个具体的Java项目,或者你的系统环境(操作系统、JDK版本等)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值