Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file: /tmp/hsperfdata_hadoop/44512

早上登录hbase shell,出现异常:

[hadoop@node002 ~]$ hbase shell
Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:
   /tmp/hsperfdata_hadoop/44512
Try using the -Djava.io.tmpdir= option to select an alternate temp location.

Error: Could not find or load main class HotSpot(TM)

报磁盘空间不足,查看一下磁盘空间发现:

[hadoop@node002 hsperfdata_hadoop]$ df -a
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda5             20641404  19593080         0 100% /
proc                         0         0         0   -  /proc
sysfs                        0         0         0   -  /sys
devpts                       0         0         0   -  /dev/pts
tmpfs                  8173280         0   8173280   0% /dev/shm
/dev/sda3            443850904 406428196  14876328  97% /app
/dev/sda1                99150     32465     61565  35% /boot
/dev/sdb1            480719056 394902308  61397548  87% /opt/mdisk/disk1
/dev/sdc1            480719056 418919008  37380848  92% /opt/mdisk/disk2
/dev/sdd1            480719056 397923492  58376364  88% /opt/mdisk/disk3
none                         0         0         0   -  /proc/sys/fs/binfmt_misc
sunrpc                       0         0         0   -  /var/lib/nfs/rpc_pipefs
[hadoop@node002 hsperfdata_hadoop]$ df /tmp
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda5             20641404  19593084         0 100% /

查看磁盘使用率发现,的确磁盘被人拷了大量文件占满了,解决方法可选:

1、移除部分文件,腾出磁盘空间。

2、通过 -Djava.io.tmpdir 参数指定其他磁盘。

3、也有人说可通过参数-XX:-UsePerfData 取消jvm自动创建pid文件(jvm默认会在/tmp目录下创建pid文件,未测试,有兴趣可测试一下)。

解决大致步骤:df发现某一个满的分区,然后选择挂载新磁盘或移走部分文件,du -sh /xxx 计算这个目录的总占用量 然后层层往下 找出占用较大空间的文件 ,最后做文件迁移。

另外,附带说明一下 /tmp/hsperfdata_$user/$number的作用(比较关键的一句):

That directory is part of a Java performance counter.

这个文件存的应该是JVM进程当前的运行信息或者说是一些性能参数。

 

posted on 2016-05-09 10:38  jessezeng  阅读(1284)  评论(0编辑  收藏  举报

导航