硬件是GitLab运行的基础,需根据用户规模和项目数量选择合适的配置:
vm.swappiness值(如设为10或更低),减少系统过度使用swap分区(避免内存不足导致的性能下降);net.ipv4.tcp_syn_retries减少重传次数、net.ipv4.tcp_window_scaling启用窗口扩大),提升网络传输效率。编辑/etc/gitlab/gitlab.rb文件(修改后需运行sudo gitlab-ctl reconfigure生效),重点调整以下参数:
unicorn['worker_processes'] = 2、puma['worker_processes'] = 4),避免过多进程占用内存;sidekiq['concurrency'] = 10),防止后台任务耗尽系统资源。gitlab_rails['db_pool'] = 20),匹配并发用户数;postgresql['shared_buffers'] = "4GB",占内存的25%-40%),提升查询性能。redis['enable'] = true),并设置合理的内存限制(如redis['maxmemory'] = '2gb'),加速数据处理(如会话、查询缓存)。gitlab_ci['enable'] = false),节省系统资源。GitLab高度依赖PostgreSQL,需重点优化数据库配置:
work_mem(如postgresql['work_mem'] = "16MB")和maintenance_work_mem(如postgresql['maintenance_work_mem'] = "1GB")参数,提升复杂查询(如索引创建、数据导出)的执行效率。VACUUM和ANALYZE命令清理无用数据、更新统计信息,保持数据库性能稳定。/var/opt/gitlab)挂载到SSD分区,提升仓库读写速度(尤其是克隆、推送操作)。gitlab_rails['log_level'] = "info"),定期清理过期日志(如通过logrotate工具),避免日志文件占用过多磁盘空间。git gc),压缩仓库数据(如删除无用提交、优化对象存储)。.gitlab-ci.yml中配置parallel参数(如parallel: 4),将测试、构建任务分配到多个节点,缩短流水线执行时间。cache关键字缓存依赖文件(如node_modules、vendor/bundle),避免每次构建都重新下载(如cache: paths: - node_modules/)。