GitLab的替代者-轻量级Gitea安装与配置-Windows 11

前置条件
  • Windows 11 专业版 24H2
  • podman desktop 1.18.1 x64
  • Gitea 1.23.8
动手实践

Windows 的本质是是安装一个 Linux 虚拟机(当前是 Fedora Linux ),然后在虚拟机中安装 Gitea ,所以会出现后面需要进行端口数据转发。

后续如果想修改配置文件,那么需要通过 podman machine ssh 进入容器进行修改。

另外虚拟机整个被默认WSL2 挂载到  \\wsl.localhost\ 目录下,可以直接在 Windows 系统下访问,但是修改的时候可能会没有权限,还是需要通过命令行修改。

如果 Podman Desktop 没有开机自启动,确认如下如下配置是否已经勾选:

注意:如果对大型项目进行镜像部署,比如 chromium 。登录之前可以正常使用,登录特别慢,注意观察 PodmanLogs 项,如果观察到如下内容,特别是 [Slow SQL Query] 相关的日志输出:

上述的输出非常的不合理,简单的 SQL 语句执行耗时高达 26分钟,这个结果是非常不合理的。SQLite 的性能不可能这么差劲。

导出数据库文件,通过 SQLiteStudio 执行相同的 SQL 语句,在  0.1 毫秒执行结束。

并且 Docker 多次重启之后,高概率发生文件损坏。另一个常见现象是处理器占用长时间处于高位,某几个核心长时间满负荷,但是 DUMP 堆栈调用又一切正常,看不到用户态的高占用函数。

这个原因是由于 Windows 和 Linux 的跨系统文件兼容性问题无法得到很好的解决,WSL 2 下访问 Windows 文件性能会非常差。

具体解释参考  [wsl2] filesystem performance is much slower than wsl1 in /mnt #4197 

解决这个问题的方法就是不要进行映射,直接在存储在虚拟机的磁盘里

同时,建议内存不低于 32GB ,大型项目,如果内存不足的话,也可能诱发此类问题。

另外,默认情况下 WSL 2 最高分配 1TB 磁盘空间给虚拟机。如果要突破这个限制,需要进行磁盘手工扩容。

需要执行如下操作:

  1. 使用 wsl.exe --shutdown 命令终止所有 WSL 实例
  2. 获取磁盘路径 (PowerShell):
  3. 使用管理员权限打开 Windows 命令提示符,然后输入以下命令来打开 diskpart 命令解释器:
  4. 现在会出现一个 DISKPART> 提示。 输入以下命令:
  5. 使用 Windows 命令提示符 DISKPART> 提示输入要分配给此 Linux 发行版的新的大小上限值(单位是 MB ),比如 2TB
  6. 退出 DISKPART> 提示:
  7. 安装 resize2fs 如下:
  8. 无损扩大分区大小,默认整个虚拟磁盘,命令如下:

注意,如果执行 expand vdisk maximum=2048000 命令的时候报错 “虚拟磁盘服务错误”。可能是磁盘当前被挂载,导致无法进行磁盘扩容。此时需要命令行执行 diskmgmt 然后找到这个虚拟磁盘点击卸载之后再进行尝试。

参考链接


发布者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

发表评论前,请滑动滚动条解锁
三十岁