在宝塔面板中部署Gitea后,若服务器内存较小,很容易出现Gitea进程因内存不足崩溃的情况,此时可以通过增加Swap交换区或者调整Gitea配置文件两种方式解决问题。

方案一:增加Swap交换区
Swap交换区是系统利用磁盘空间模拟的内存区域,当物理内存不足时,系统会将部分暂时不用的数据转移到Swap中,避免进程因内存耗尽崩溃。以下是具体操作步骤:
1. 查看当前Swap状态
先通过命令查看系统是否已经配置了Swap,以及当前的内存使用情况:
# 查看内存和Swap使用情况 free -h # 查看Swap挂载信息 swapon -s
2. 创建Swap文件
如果当前没有Swap,可以创建一个大小为2G的Swap文件,具体操作如下:
# 创建2G大小的Swap文件,bs是块大小,count是块数量 dd if=/dev/zero of=/swapfile bs=1M count=2048 # 设置文件权限,只有root可以读写 chmod 600 /swapfile # 将文件格式化为Swap格式 mkswap /swapfile # 启用Swap文件 swapon /swapfile
3. 设置开机自动挂载
为了避免服务器重启后Swap失效,需要将其添加到开机挂载配置中:
# 编辑fstab配置文件 echo '/swapfile swap swap defaults 0 0' >> /etc/fstab # 验证配置是否生效 swapon -s free -h
4. 调整Swap使用优先级(可选)
默认情况下系统会优先使用物理内存,若希望适当提高Swap的使用优先级,可以调整swappiness参数,数值范围是0-100,数值越高越优先使用Swap:
# 查看当前swappiness值 cat /proc/sys/vm/swappiness # 临时设置为30,优先使用物理内存,仅在内存不足时使用Swap sysctl vm.swappiness=30 # 永久生效,编辑sysctl配置文件 echo 'vm.swappiness=30' >> /etc/sysctl.conf
方案二:调整Gitea配置文件
如果暂时无法增加Swap,也可以通过调整Gitea的配置文件,降低其运行时的内存占用,减少崩溃概率。
1. 找到Gitea配置文件
宝塔面板部署的Gitea,配置文件默认路径一般为/www/wwwroot/你的Gitea站点目录/custom/conf/app.ini,如果找不到可以通过宝塔面板的文件管理功能搜索app.ini定位。
2. 调整核心配置参数
打开app.ini文件,找到[server]和[cache]相关的配置项,调整以下参数:
[server] # 减少同时处理的请求数量,降低内存占用 HTTP_PORT = 3000 # 关闭不必要的服务,比如关闭内置的SSH服务(如果已经用系统SSH) START_SSH_SERVER = false [cache] # 使用内存缓存时减小缓存大小 ADAPTER = memory INTERVAL = 60 HOST = 128 # 缓存大小,单位MB,默认可能是512,可适当调小 [session] # 减小会话缓存大小 PROVIDER = memory PROVIDER_CONFIG = 128 # 会话缓存大小,单位MB
3. 重启Gitea服务
修改完配置后,需要重启Gitea服务让配置生效,可以在宝塔面板的软件商店中找到Gitea,点击重启,或者通过命令重启:
# 查找Gitea进程 ps -ef | grep gitea # 杀死进程后重新启动,假设Gitea启动命令为以下路径 /www/wwwroot/gitea/gitea web -c /www/wwwroot/gitea/custom/conf/app.ini &
两种方案的选择建议
如果服务器还有剩余磁盘空间,优先选择增加Swap交换区,这种方式对Gitea的功能没有任何影响,只是会稍微降低部分操作的响应速度。如果服务器磁盘空间也很紧张,再选择调整配置文件的方式,不过调整后可能会影响Gitea的并发处理能力,不适合访问量较大的场景。
操作完成后,可以通过free -h命令持续观察内存和Swap的使用情况,确认Gitea运行稳定后,再逐步恢复正常的业务使用。