GitLab在Linux上的性能调优方法
/etc/gitlab/gitlab.rb,降低puma['worker_processes'](Web服务器进程数,建议设为CPU核心数或略多,如2-4)和puma['max_threads'](每个worker的线程数,建议4-8),减少内存占用;同时降低sidekiq['max_concurrency'](后台任务并发数,建议10-15),避免后台任务占用过多内存。修改后需运行sudo gitlab-ctl reconfigure使配置生效。unicorn['worker_timeout'](Unicorn工作进程超时时间,建议60秒以内),避免长时间占用进程资源。shared_buffers:设为系统内存的25%-40%(如8GB内存设为2GB),提升数据库缓存效率;work_mem:设为32-64MB(用于排序、哈希操作),提升复杂查询性能;maintenance_work_mem:设为512MB-1GB(用于索引维护、备份),提升维护任务速度;max_connections:根据并发用户数调整(建议为并发用户数的2倍,如100并发设为200),避免连接数过多导致数据库阻塞。gitlab_rails['redis_cache_instance']配置Redis缓存(如"redis://127.0.0.1:6379"),加速会话、查询等数据处理;git lfs track "*.psd"),将大文件存储在独立仓库,减少主仓库体积及IO压力。/etc/gitlab/gitlab.rb中的gitlab_rails['object_store']['connection']参数,将非核心数据迁移至对象存储,减轻本地存储负担;gitlab-rake gitlab:clean清理临时文件,配置日志轮转(gitlab_rails['log_rotate_frequency'] = 'daily'、gitlab_rails['log_max_size'] = '200MB'),避免日志文件过大占用存储空间。fallocate -l 2G /swapfile创建,chmod 600 /swapfile设置权限,mkswap /swapfile格式化,swapon /swapfile启用,并添加至/etc/fstab永久生效;vm.swappiness值(如设为10),减少系统过度依赖Swap(默认60,值越低越优先使用物理内存)。修改后运行sysctl -p使配置生效;ulimit -v限制GitLab相关进程的虚拟内存(如ulimit -v 2000000限制为2GB),避免单个进程占用过多内存导致系统崩溃。upstream gitlab { server 192.168.1.101:8080; server 192.168.1.102:8080; });