Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 即使有空间,我的AWS EC2实例也会显示消息;设备上没有剩余空间”;_Amazon Web Services_Amazon Ec2 - Fatal编程技术网

Amazon web services 即使有空间,我的AWS EC2实例也会显示消息;设备上没有剩余空间”;

Amazon web services 即使有空间,我的AWS EC2实例也会显示消息;设备上没有剩余空间”;,amazon-web-services,amazon-ec2,Amazon Web Services,Amazon Ec2,我的AWS EC2实例具有以下属性: 正如我们所看到的,有6,4GB的可用空间,但即使在访问我的应用程序时使用了此空间,也会显示消息“设备上没有剩余空间” 为什么会出现这种情况?即使df表明有可用空间,也可能出现“设备上没有剩余空间”的原因是: 程序打开了一个文件 随后,该文件被删除 程序仍在运行,并且仍有一个打开的文件句柄 Linux只在文件的所有引用都消失时才真正删除文件。这包括文件等引用,但也包括打开的文件句柄 如果您最近删除了一个特别大的文件,那么您的系统中可能有一个程序仍然打开该文件

我的AWS EC2实例具有以下属性:

正如我们所看到的,有6,4GB的可用空间,但即使在访问我的应用程序时使用了此空间,也会显示消息“设备上没有剩余空间”


为什么会出现这种情况?

即使
df
表明有可用空间,也可能出现“设备上没有剩余空间”的原因是:

  • 程序打开了一个文件
  • 随后,该文件被删除
  • 程序仍在运行,并且仍有一个打开的文件句柄
  • Linux只在文件的所有引用都消失时才真正删除文件。这包括文件等引用,但也包括打开的文件句柄


    如果您最近删除了一个特别大的文件,那么您的系统中可能有一个程序仍然打开该文件。如果你知道那是什么程序,最简单的可能就是重新启动这个程序。

    我想你的问题不在于EC2,而在于Linux

    检查您的
    索引节点
    ,您可以有可用的磁盘空间,但会使
    索引节点

    例如:

    $ df -i .
    Filesystem                   Inodes  IUsed   IFree IUse% Mounted on
    /dev/mapper/ubuntu--vg-root 3219456 330596 2888860   11% /
    

    如果你有磁盘空间,但你的应用程序说没有。。。也许看看这个应用程序,看看它能做些什么来确定它有多少空间?@Evert我的应用程序没有计算磁盘空间,只是试图执行一项任务并返回此消息。你能详细说明一下这个任务是什么吗?@Evert,要用68KBHi@Azize保存一个PDF文件,我运行了命令并返回了100%的使用率,没有可用空间。我应该怎么做来释放空间呢?在这种情况下,您需要删除一些文件或增加文件系统或减小块大小(不知道是否可能)。在这篇评论中我不能给你们一个完整的答案,我想谷歌可以帮你们更多,但一般来说,文件系统是由块组成的。块(也称为inode)有一个大小,假设你的块大小是16kb,如果你创建一个只有1kb的文件,你将有15kb的可用空间,它将消耗整个inode。这就是你的问题,也许你有很多小文件。也许这个链接会帮你更多。