Debian系统GitLab性能优化指南
硬件是GitLab性能的基础,需根据实例规模匹配足够资源:
vm.swappiness(如设为10),减少系统过度使用swap;优化TCP参数(如net.ipv4.tcp_syn_retries设为3、net.ipv4.tcp_window_scaling启用),提升网络传输效率;/etc/gitlab/gitlab.rb中禁用(如gitlab_ci['enable'] = false),节省资源。GitLab依赖PostgreSQL,需调整关键参数:
shared_buffers:设为总内存的25%-40%(如8GB内存设为2GB);max_connections:根据并发用户数调整(推荐为并发用户的2倍);work_mem:设为4MB-8MB,提升复杂查询(如分支合并、代码搜索)性能;maintenance_work_mem:设为16MB-32MB,加速索引重建、备份等维护操作。/etc/gitlab/gitlab.rb中设置redis['enable'] = true,并调整内存限制(如redis['maxmemory'] = '2gb'),缓存频繁访问的数据(如用户会话、仓库元数据);gitlab_rails['object_store']['enabled'] = true配置对象存储,将大文件转移至外部存储,减少主数据库负担。unicorn['worker_processes'](如4-8个,根据CPU核心数)和unicorn['timeout'](如300秒),平衡并发处理与资源占用;sidekiq['concurrency'](如10-20个),控制后台任务(如CI流水线、邮件发送)的并发数;gitlab_rails['db_pool'](如20-30),避免数据库连接耗尽。/var/opt/gitlab)迁移至SSD,提升仓库读写速度;sudo gitlab-rake gitlab:backup:cleanup(保留最近7天备份);sudo gitlab-rake gitlab:ci:cleanup(保留最近30天作业);sudo journalctl --vacuum-time=2weeks(清理2周以上日志);sudo gitlab-rake tmp:clean;/etc/gitlab/gitlab.rb中设置git_data_dirs的大小限制(如size_limit => 500GB),防止存储空间耗尽。apache2、mysql-server),减少系统资源占用;git branch -d old-branch),减少仓库负担;