我的 Linux 服务器上出现此错误。我对空间问题不太熟悉。有人能帮我解决这个问题吗?
Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file:
/tmp/hsperfdata_XXXXX/29161
Try using the -Djava.io.tmpdir= option to select an alternate temp location.
我的文件系统看起来像这样。
Filesystem Size Used Avail Use% Mounted on
/dev/xvda2 25G 24G 0 100% /
tmpfs 497M 0 497M 0% /dev/shm
答案1
您的磁盘已满,利用率达到 100%...您需要增加可用的磁盘大小并调整分区,或者删除一些内容。
您可以删除什么是关键问题,这是一个棘手的问题.../home/(user)/.Trash
首先检查,然后几乎任何tmp
目录的内容或临时文件都可以安全删除(从 /tmp 开始删除内容,而不是文件夹),几乎 /var/log 中的所有内容都可以保存删除。
互联网上有一些非常简单的清理 Linux 空间的工具和指南,MaryRoseCook 的教程非常简单:
要了解磁盘空间的使用情况:
- 通过运行
cd /
- 跑步
sudo du -h --max-depth=1
- 注意哪些目录占用了大量的磁盘空间。
- cd 进入其中一个大目录。
- 运行
ls -l
以查看哪些文件占用了大量空间。删除不需要的文件。- 重复步骤 2 至 5。
此外,您没有说明您正在使用的任何特定发行版,但这里有一些一般想法:
清理包管理器的缓存,例如在基于 Debian/Ubuntu 的发行版中,使用它sudo apt clean
来清除 apt 包管理器缓存。此外,在基于 apt 的包管理中,您还可以使用它sudo apt autoremove
来清除不需要的旧/未使用的应用程序和依赖项,在某些情况下,这可能非常重要。使用不同包管理的其他发行版有类似的工具来执行这些相同的操作。
删除旧内核...这些内核以及构建模块的相关库和源代码会占用大量空间。
这些简单的事情可以重新获得大量空间。否则,请联系您的管理员(可能是您自己)并决定是否只是需要为操作系统提供更多空间。
编辑:我没有注意到这是一个非常古老的帖子,由于问题的年代久远,答案可能相关也可能不相关。
答案2
可能是使用的临时位置已满。尝试使用其他位置。另外,检查每个分区中的可用 #inodes 并清理一些空间。无需在操作系统级别更改 /tmp。我们希望 nutch 和 hadoop 使用其他位置来存储临时文件。
这很令人困惑,但是 hadoop.tmp.dir 是本地临时目录的基础,也是 HDFS 的基础。文档不是很好,但是 mapred.system.dir 默认设置为“${hadoop.tmp.dir}/mapred/system”,这定义了 Map/Reduce 框架在 HDFS 上存储系统文件的路径。
如果您希望它们不绑定在一起,您可以编辑 mapred-site.xml,使得 mapred.system.dir 的定义不与 ${hadoop.tmp.dir} 绑定。