当前位置: 首页 > ops >正文

gitlab推送失败,内存不足的处理

git提交时报错: 

2025-09-03 20:03:32.583 [info] > git push origin master:master [4866ms]

2025-09-03 20:03:32.583 [info] fatal: Out of memory, malloc failed (tried to allocate 1048576000 bytes)

看了下服务器内存,空余的只有几百M了。 

用htop,F6,选择按mem排序,发现有很多gitlab-rails 的 sidekiq 占用几百M的进程。

🔍 为什么 GitLab Sidekiq 会占用这么多内存?

  1. ​多进程架构​​:

    • Sidekiq 是 GitLab 的​​异步任务处理器​​,负责处理后台任务(如发送邮件、仓库同步、CI/CD 流水线调度等)。

    • 默认配置下,GitLab 会启动 ​​多个 Sidekiq 进程​​(每个进程是一个独立的 worker),以实现并发处理任务。

    • 每个进程都需加载完整的 ​​Rails 应用环境​​(包含代码、库、配置),这是内存占用的主要来源。

  2. ​内存组成​​:

    • ​Rails 环境​​:约 300-500 MB/进程(取决于功能启用情况)。

    • ​任务处理缓存​​:执行任务时临时增加的内存。

    • ​连接池​​:数据库、Redis 连接也会占用内存。

修改 /etc/gitlab/gitlab.rb,降低并发数:

sidekiq['max_concurrency'] = 8  # 默认值较高(如25),根据CPU核心数调整(建议 核心数*2)
sidekiq['min_concurrency'] = 2  # 最低并发数

然后重启生效:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart sidekiq

http://www.xdnf.cn/news/19780.html

相关文章:

  • 深入浅出Spring IoC与DI:设计思想、实现方式与反射技术详解
  • Excel 电影名匹配图片路径教程:自动查找并写入系统全路径
  • PostgreSQL 中唯一索引的工作原理
  • 分布式AI算力系统番外篇-----超体的现实《星核》
  • Vue基础知识-重要的内置关系:vc实例.__proto__.__proto__ === Vue.prototype
  • 股指期货可以通过移仓长线持有吗?
  • AppInventor2 如何自定义包名?
  • 华为云云原生架构赋能:大腾智能加速业务创新步伐
  • 【深度学习新浪潮】视觉大模型在预训练方面有哪些关键进展?
  • 鸿蒙UI开发实战:解决布局错乱与响应异常
  • 企业实用——MySQL的备份详解
  • 基于机器学习的Backtrader波动性预测与管理
  • Kubernetes ConfigMap 更新完整指南:原理、方法与最佳实践
  • PyTorch实战——ResNet与DenseNet详解
  • Huggingface终于没忍住,OpenCSG坚持开源开放
  • flume拓扑结构详解:从简单串联到复杂聚合的完整指南
  • Linux 的信号 和 Qt 的信号
  • IO_HW_9_3
  • MySQL数据库恢复步骤(基于全量备份和binlog)
  • 揭秘ArrowJava核心:IndexSorter高效排序设计
  • Cookie、Session、登录
  • 一个工业小白眼中的 IT/OT 融合真相:数字化工厂的第一课
  • SQL Server核心架构深度解析
  • AlexNet:计算机视觉的革命性之作
  • PostgreSQL性能调优-优化你的数据库服务器
  • JVM调优与常见参数(如 -Xms、-Xmx、-XX:+PrintGCDetails) 的必会知识点汇总
  • 【学Python自动化】 9.1 Python 与 Rust 类机制对比学习笔记
  • 【WPS】WPSPPT 快速抠背景
  • 通过SpringCloud Gateway实现API接口镜像请求(陪跑)网关功能
  • 进攻是最好的防守 在人生哲学中的应用