我有一个虚拟专用服务器,里面存放着我所有产品的 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。如果您尝试执行某项操作,但在此过程中内存不足,那么要么停止执行操作,要么添加更多内存。显然,您的硬件不足以完成您要执行的操作。