gitlab - GitLab Errno::ENOSPC:设备@ dir_s_mkdir 上没有剩余空间
问题描述
在运行了很长时间的工作后,我的 GitLab(在 docker 容器上)变得不可用,我相信它充满了 tmp 文件或元数据,或其他东西。当我尝试进行备份时,我意识到磁盘已满,并且出现以下错误。
我解决这个问题以继续工作的方法是将磁盘大小增加一倍,现在至少我可以工作了。
我在容器gitlab-ctl registry-garbage-collect -m
(https://docs.gitlab.com/ee/raketasks/cleanup.html)内运行了这个命令,我可以释放 3GB。
我认为这是 Linux inode 的问题,但正如您在下面看到的那样,事实并非如此。官方的 GitLab 文档有时非常出色,但有时却在循环。
我不知道我应该删除什么来获得空间,总的来说我不知道下次该怎么做才能避免这个问题,在 Gitlab 论坛上搜索,但不知何故不清楚提示或故障排除。
我担心如果我再运行一次该作业,我会再次崩溃磁盘。
关于删除什么、添加什么以/etc/gitlab/gitlab.rb
避免这种情况或如何为此目的实施一些内务管理或警报的任何想法?谢谢。
docker exec -t gitlab gitlab-backup create
rake aborted!
Errno::ENOSPC: No space left on device @ dir_s_mkdir - /tmp/prometheus-mmap20201110-4631-1eio26e
/opt/gitlab/embedded/service/gitlab-rails/config/initializers/7_prometheus_metrics.rb:18:in `<top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `<top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:backup:create => gitlab_environment => environment
(See full trace by running task with --trace)
[gitlab ~] df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.8G 80K 7.8G 1% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/nvme1n1p1 59G 56G 3.0G 96% /
[gitlab ~] df -iH
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 2.1M 516 2.1M 1% /dev
tmpfs 2.1M 1 2.1M 1% /dev/shm
/dev/nvme1n1p1 4.0M 160k 3.8M 5% /
Gitlab版本
root@gitlab:/# gitlab-rake gitlab:env:info
System information
System:
Proxy: no
Current User: git
Using RVM: no
Ruby Version: 2.6.6p146
Gem Version: 2.7.10
Bundler Version:1.17.3
Rake Version: 12.3.3
Redis Version: 5.0.9
Git Version: 2.28.0
Sidekiq Version:5.2.9
Go Version: unknown
GitLab information
Version: 13.4.4-ee
Revision: 4196ccb4738
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 11.9
URL: https://
HTTP Clone URL: https://
SSH Clone URL: git@
Elasticsearch: no
Geo: no
Using LDAP: no
Using Omniauth: yes
Omniauth Providers:
GitLab Shell
Version: 13.7.0
Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories
GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell
Git: /opt/gitlab/embedded/bin/git
解决方案
推荐阅读
- javascript - 如何仅在所有功能完成后才调用回调
- javascript - IndexedDb 有标准的命名约定吗?
- flutter - 未定义函数“setState”。飞镖/颤振
- datetime - 09:00-05:00 和 9:00 AM EST 的意思一样吗?
- java - 解决 Windows 上的 com.apple 导入错误
- python - 如何遍历字典的所有可能值?
- excel - 如何避免在一个潜艇中出现重复的暗淡?
- matrix - 如何在 Power Bi dax 中创建与矩阵中的日期列相关的度量
- r - r dygraphs 不显示图
- react-native - 重置根导航