【问题标题】:Linux virtual machine, memory overflow caused by endless loopLinux虚拟机,死循环导致内存溢出
【发布时间】:2014-10-19 17:39:36
【问题描述】:

我正在使用 linux 64 位的虚拟机进行汇编编程。 我使用的虚拟机是我大学计算机上的版本的副本。这意味着我无权以正常方式打开所有文件夹 “学生”帐户。例如,我无法打开根文件夹和 lost+found 文件夹。如果这是解决我的问题所必需的,我不这样做。

我的一个测试程序陷入了无限循环,产生了无限长的字符串。这导致我的虚拟机的虚拟硬盘驱动器现在完全满了,没有可用空间。我通常使用windows,所以不幸的是我对linux不太熟悉。

我尝试搜索我的文件夹,发现了一个 140.7TB 的大文件,名为 proc kore。经过一番搜索,我发现我不应该担心这个文件,因为它是某种虚拟文件,代表你的 linux 版本支持的最大 RAM 量。

但是,如果我想清除虚拟驱动器中保存字符串的位置,我不清楚在哪里查看。有没有什么捷径可以清除默认存储很多字符串的位置?

在此感谢

【问题讨论】:

  • 您应该将其发布在超级用户上,而不是堆栈溢出。不过快速指针:您应该使用 unix 工具 du 来查找您的主目录的哪个文件夹使用更多空间。 du -hxd1 ~ 之类的内容应该可以帮助您入门,然后将 ~ 替换为其他目录以缩小文件范围
  • 另外,/proc 不是您硬盘的目录。它是一个由 linux 创建的假目录,用于为您提供有关您计算机的信息。例如,如果您打开/proc/cpuinfo,您将获得有关您的 CPU 的信息。
  • 您可以使用新的虚拟机映像,也可以将磁盘映像挂载到您拥有 root 权限的小型通用虚拟机上,然后使用它来清理或提取您的工作(假设您没有使用文件系统加密)。

标签: assembly linux-kernel virtualbox


【解决方案1】:

好的,我找到了答案。在 du 命令的帮助下,我发现我的程序所在的地图中出现了严重错误,尽管我找不到任何东西,直到我打开了“显示隐藏文件”选项。然后出现了一个名为 xsession-errors.old 的 26gb 大文件。它停止增长,因为没有剩余空间供文件增长并使用了所有可用空间。

26gb 的会话错误位于隐藏文件中。那肯定让我很生气。我希望这个解释能帮助将来遇到类似问题的人。

感谢 qdii 发表评论并帮助我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2012-02-05
    • 2012-08-26
    • 1970-01-01
    相关资源
    最近更新 更多