Git创建和拉取项目分支的应用以及Gitlab太占内存,如何配置降低gitlab内存占用进行优化

一、Git创建和拉取项目分支的应用

1. 关于git创建分支,

git创建分支,可以通过git管理平台可视化操作创建,也可以通过git bash命令行下创建:

A. 是通过git管理平台创建:

进入gitlab管理平台具体的目标项目中,在项目名称下能看到如"253次提交 2个分支 0个标签 6.9 MB文件 6.9 MB存储"的统计信息,点击其中的*个分支处即能看到分支的管理页面,直接在界面上点击"新建分支",输入Branch name并选择create from(默认就是master)后点击创建分支create brance即可。

B. 通过git bash命令行下创建:

bash 复制代码
#当前处于master主干分支上
git branch test
git add .
git commit -m '新增分支'
git push origin test
git push --set-upstream origin test

只有在执行git push操作成功后才能在git管理平台上查看到新建的分支,不然看不到。

2. 关于git拉取分支,

git拉取分支,使用git clone 拉取仓库代码默认把master分支拉取下来,要切换到分支需要在本地用git checkout -b新建一个分支,然后在git pull远程的分支。push的时候比较麻烦。所以不建议拉取master然后再切到分支,比较好的方法就是远程直接拉取远程存储库的某个分支到本地文件夹下。使用如下命令直接拉取分支,之后本地命令下操作这套代码就是操作在分支上。不用担心git commit/push出问题。

bash 复制代码
git clone -b brance_name http:192.168.1.11/url/project.git .

二、Gitlab太占内存,如何配置降低gitlab内存占用进行优化

在新买的阿里云2C4G服务器上部署上了gitlab,启动后服务器竟然死机了,远程都连不上,原因在gitlab太吃内存,我这里使用的是docker部署。启动脚本如下:

bash 复制代码
docker run -d 
    --name gitlab13.3 
    -p 9001:80 
    -v /opt/gitlab13.3/config:/etc/gitlab 
    -v /opt/gitlab13.3/logs:/var/log/gitlab 
    -v /opt/gitlab13.3/data:/var/opt/gitlab 
    gitlab/gitlab-ee:13.3.5-ee.0

要减少gitLab的内存占用,需要修改其配置文件,以上面的配置启动后,gitlab的配置文件 gitlab.rb就在目录/opt/gitlab13.3/config 中。然后我们就可以开始编辑这个配置文件。

1. 进行配置修改减少gitLab内存占用:

1.减少数据库缓存

postgresql'shared_buffers' = "64MB"

2.减少数据库并发数

postgresql'max_worker_processes' = 1

3.减少sidekiq并发数

sidekiq'concurrency' = 1

4.减少进程数

unicorn'worker_processes' = 1

nginx'worker_processes' = 2

5.减少超时时间

unicorn'worker_timeout' = 10

6.减少数据库缓存

postgresql'shared_buffers' = "64MB"

7.将worker内存上限设置小一点

unicorn'worker_memory_limit_min' = "100 * 1 << 20"

unicorn'worker_memory_limit_max' = "220 * 1 << 20"

8.禁用prometheus

prometheus_monitoring'enable' = false

9关闭一些监控和性能基准相关的功能

prometheus'enable' = false

prometheus_monitoring'enable' = false

alertmanager'enable' = false

node_exporter'enable' = false

redis_exporter'enable' = false

postgres_exporter'enable' = false

pgbouncer_exporter'enable' = false

gitlab_exporter'enable' = false

grafana'enable' = false

sidekiq'metrics_enabled' = false

2. docker重载配置生效命令:

重载配置:docker exec -it gitlab容器ID gitlab-ctl reconfigure

重启:docker exec -it gitlab容器ID gitlab-ctl restart

查看各个容器内存占用:docker stats

使用以上方式处理后,服务器算是把gitlab运行起来了,但是看了一下,还是吃了不少内存,基本在1.8G内存左右。我也试着去再降低内存占用。网上还有很多可修改配置。但我发现再怎么修改配置,内存占用也没有再减少。仍然在1.7-1.8G。有些提到的可优化配置如下。我这里试过了没什么明显的效果。

关闭容器仓库功能

gitlab_rails'gitlab_default_projects_features_container_registry' = false

gitlab_rails'registry_enabled' = false

registry'enable' = false

registry_nginx'enable' = false

包仓库、依赖管理

gitlab_rails'packages_enabled' = false

gitlab_rails'dependency_proxy_enabled' = false

GitLab Pages

gitlab_pages'enable' = false

pages_nginx'enable' = false

Usage Statistics

gitlab_rails'usage_ping_enabled' = false

gitlab_rails'sentry_enabled' = false

grafana'reporting_enabled' = false

GitLab KAS

gitlab_kas'enable' = false

gitlab_rails'gitlab_kas_enabled' = false

Terraform

gitlab_rails'terraform_state_enabled' = false

Kerberos 文档说EE only,但是默认值为 true

gitlab_rails'kerberos_enabled' = false

Sentinel

sentinel'enable' = false

Mattermost

mattermost'enable' = false

mattermost_nginx'enable' = false

禁用 PUMA 集群模式

puma'worker_processes' = 0

puma'min_threads' = 1

puma'max_threads' = 2

降低后台守护进程并发数

sidekiq'max_concurrency' = 5

关闭电子邮件相关功能

gitlab_rails'smtp_enable' = false

gitlab_rails'gitlab_email_enabled' = false

gitlab_rails'incoming_email_enabled' = false

#关闭默认的 CI 功能

gitlab_ci'gitlab_ci_all_broken_builds' = false

gitlab_ci'gitlab_ci_add_pusher' = false

相关推荐
guwentian6 小时前
Git Worktree 实战:用并行多 Agent 把开发提速 N 倍
大数据·git·elasticsearch·wroktree
不吃鱼的羊9 小时前
Git识别未修改的文件有修改
git
蓝黑墨水11 小时前
一个git问题的处理
git
互联网中的一颗神经元14 小时前
21 — 额外命令:同时开两个窗口、自动检查哨
git
_道隐_17 小时前
git stash save 和 git stash push有什么区别?
git
_道隐_19 小时前
git stash如何pop指定的stash change?
git
rustfs20 小时前
GitLab 如何与 RustFS 集成?
分布式·rust·gitlab
PC2005-cloud21 小时前
Git学习笔记:GitHub Git Data API 完全指南,用 Go 操控 Git 底层对象
笔记·git·学习
Python私教1 天前
AI 并行编码的 Worktree 生命周期:创建、隔离与安全回收
人工智能·git
互联网中的一颗神经元2 天前
16 — 改写历史 rebase:搬家到新楼层,不是合并
git