如何全局限制git的内存使用量

如何全局限制git的内存使用量

我有一个虚拟专用服务器,里面存放着我所有产品的 git 存储库。问题是,当我从中获取数据时,VPS 内存不足。所以我必须限制内存使用量。我知道如何为每个客户端的 .git/config(pack.windowMemory、pack.packSizeLimit)做到这一点。

有没有办法在服务器上以及全局设置服务器上所有 git 存储库的限制?

谢谢。

山姆

答案1

您可以使用内置的 来按用户执行此操作limits.conf。您可以将所有 Git 用户添加到任意组,然后限制该组的内存。

但我其实并不赞同这种做法,好像它需要记忆一样——它需要记忆。我只是想象 Git 进程会因为内存不足而提前终止 - 从而避免 VPS 崩溃,但实际上并没有实现任何事情。

一种方法是...

例如,您的 Git 组名为 gitgroup,现有 3 个用户,分别是 bob、jane 和 tim

创建组gitgroup

groupadd gitgroup

然后将用户添加到该组

usermod -a -G gitgroup bob
usermod -a -G gitgroup jane
usermod -a -G gitgroup tim

现在/etc/security/limits.conf

#groupname  type  item  limit
@gitgroup   hard  rss   512000

这会将该组(因此其中的任何用户)的内存硬限制限制为 512000KB。这还可能对这些用户拥有的其他正在运行的进程产生其他副作用。

当特定用户登录时,为其 shell 添加内存限制可能更为可取。

您可以通过将其添加到用户各自的.bash_profile

ulimit -v 512000

解决方案 ...

您需要更多 RAM。如果您尝试执行某项操作,但在此过程中内存不足,那么要么停止执行操作,要么添加更多内存。显然,您的硬件不足以完成您要执行的操作。

相关内容