CentOS环境下GitLab性能调优方法
/etc/sysctl.conf文件,添加或修改以下参数以优化网络连接性能:net.core.somaxconn = 65535(增大连接队列长度,避免高并发时连接被拒绝)、net.ipv4.tcp_max_syn_backlog = 65535(增加SYN队列大小,提升TCP连接建立效率)、net.ipv4.tcp_fin_timeout = 30(缩短TIME_WAIT状态的超时时间,释放闲置连接)、net.ipv4.tcp_tw_reuse = 1(允许复用TIME_WAIT连接,减少连接建立开销)、net.ipv4.ip_local_port_range = 1024 65535(扩大本地端口范围,支持更多并发连接)。sysctl -p使配置生效。/etc/sysctl.conf,设置vm.swappiness = 10(降低系统使用Swap分区的倾向,优先使用物理内存,减少磁盘I/O延迟),执行sysctl -p生效。/etc/gitlab/gitlab.rb文件,调整Unicorn工作进程数(unicorn['worker_processes'])为CPU核心数的1-2倍(如4核CPU设置为4-8),并设置合理的超时时间(unicorn['timeout'] = 300,避免长时间挂起的请求占用资源);启用Keep-Alive(unicorn['keepalive'] = true),减少TCP连接建立的开销。修改后执行sudo gitlab-ctl reconfigure使配置生效。/etc/gitlab/gitlab.rb,调整Sidekiq并发数(sidekiq['concurrency'])为CPU核心数的1-1.5倍(如8核CPU设置为8-12),并根据业务需求设置队列(如sidekiq['queues'] = ["default", "gitlab"]),提升后台任务的并行处理能力。修改后执行sudo gitlab-ctl reconfigure生效。postgresql['max_connections']):根据并发用户数调整(建议设置为100-200);postgresql['shared_buffers']):设置为物理内存的25%左右(如8GB内存设置为2GB),提升数据库缓存命中率;postgresql['effective_cache_size']),设置为物理内存的50%-75%,加速重复查询。/etc/gitlab/gitlab.rb,开启Nginx页面缓存(nginx['enable'] = true)和Rails内存缓存(gitlab_rails['cache_store'] = :memory_store, { size: 64.megabytes }),减少重复请求的处理时间。修改后执行sudo gitlab-ctl reconfigure生效。cache指令),将npm包、pip包、Docker镜像等依赖文件保存到本地或对象存储(如MinIO),避免每次构建都重新下载,显著缩短构建时间。/var/opt/gitlab挂载到SSD)。log_level = "info",生产环境可设置为warn或error),减少不必要的日志输出;定期清理过期日志(如通过logrotate工具),避免日志文件占用过多存储空间。npm install改为npm ci,利用package-lock.json加速依赖安装)。job_timeout设置超时时间、resource_group限制并发),避免单个任务占用过多资源导致其他任务阻塞。