OpenShift超出了磁盘配额

Ned*_*Ned 9 mongodb openshift

我刚刚将应用程序部署到OpenShift,它运行良好,直到我推动更改.然后它开始警告我超出了磁盘配额,我再也无法做任何事了.

rhc app-tidy [app-name]从终端跑步给了我这个:

Warning: Gear 5395736e5004467cae0004ba is using 100.0% of disk quota
Failed to execute: 'control start' for /var/lib/openshift/5395736e5004467cae0004ba/nodejs
Run Code Online (Sandbox Code Playgroud)

app-root/logs 文件夹是空的.

跑步du -h * | sort -rh | head -50,给我这个:

481M    mongodb/data
481M    mongodb
385M    mongodb/data/journal
275M    app-root/runtime
275M    app-root
267M    app-deployments/2014-06-09_04-51-12.537
267M    app-deployments
157M    app-root/runtime/repo
156M    app-deployments/2014-06-09_04-51-12.537/repo
125M    app-root/runtime/repo/node_modules
125M    app-deployments/2014-06-09_04-51-12.537/repo/node_modules
119M    app-root/runtime/dependencies/.npm
119M    app-root/runtime/dependencies
111M    app-deployments/2014-06-09_04-51-12.537/dependencies/.npm
111M    app-deployments/2014-06-09_04-51-12.537/dependencies
Run Code Online (Sandbox Code Playgroud)

不知道为什么mongodb/data占用了这么多空间,究竟是什么?我的数据库应该是空的.

**更新**

在我的mongodb/data文件夹上运行后,这就是我得到的:

total 97M
drwxr-xr-x.  3 5395736e5004467cae0004ba 5395736e5004467cae0004ba 4.0K Jun  9 05:21 .
drwxr-xr-x. 11 5395736e5004467cae0004ba 5395736e5004467cae0004ba 4.0K Jun  9 04:44 ..
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 04:45 admin.0
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 04:45 admin.ns
drwxr-xr-x.  2 5395736e5004467cae0004ba 5395736e5004467cae0004ba 4.0K Jun  9 06:51 journal
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 06:51 local.0
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 06:51 local.ns
-rwxr-xr-x.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba    0 Jun  9 06:51 mongod.lock
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 04:45 surge.0
-rw-------.  1 5395736e5004467cae0004ba 5395736e5004467cae0004ba  16M Jun  9 04:45 surge.ns
Run Code Online (Sandbox Code Playgroud)

lag*_*lex 14

也帮助我的东西是禁用日记功能

制定完整的步骤

  1. SSH进入您的OpenShift

    rhc ssh $@ -a $app
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在MongoDB配置中

    vim ~/mongodb/conf/mongodb.conf
    
    Run Code Online (Sandbox Code Playgroud)

    添加或设置

    nojournal = true
    
    Run Code Online (Sandbox Code Playgroud)

注意:~自动解析为/var/lib/openshift/<YOUR_OPENSHIFT_ID>

  1. 删除以前的日记数据

    rm ~/mongodb/data/journal/*
    
    Run Code Online (Sandbox Code Playgroud)

然后从SSH退出,然后

  1. 重启MongoDB

    rhc cartridge-restart mongodb-2.4 -a $app
    
    Run Code Online (Sandbox Code Playgroud)

当然,这是以不记录日志为代价的,这有助于在出现损坏或不干净的情况下恢复数据.但是如果你只是测试一些东西并且空间不足,那么禁用日记可能非常有用,因为它占用了大量空间.


Chr*_*n P 5

如果你达到磁盘配额,要么是因为你达到了大小或inode限制.

要修复大小,您可以清理tmp文件夹,应用程序日志,git repos等.您可以使用:

rhc app-tidy -a <appname>
Run Code Online (Sandbox Code Playgroud)

要检查您是否正在使用inode限制使用quota命令:

quota -s
Run Code Online (Sandbox Code Playgroud)

要修复配额问题,您需要将文件数量保持在最低限度.

如果这没有帮助,你可以尝试关闭MongoDB并删除mongodb文件夹的内容(即使用helmy的建议).


hel*_*lmy 2

MongoDB预分配数据文件可能预分配日志文件

如果您的数据库为空和/或您不关心数据,请尝试停止 mongod,然后清除您的数据目录。然后验证/设置以下 mongod 选项:

smallfiles=true
noprealloc=true
Run Code Online (Sandbox Code Playgroud)