SVN 不传输大于~512 MB 的文件(OOM Killer)

SVN 不传输大于~512 MB 的文件(OOM Killer)

我已将存储库从一台服务器移至另一台服务器。在客户端上,我已删除该存储库,现在正尝试再次从新服务器签出。

这对于小文件来说没问题。我能够检出数百个总大小超过 4000 MB 的小文件。但每当涉及到大文件时,我都会收到错误消息

运行上下文错误:远程主机强制关闭现有连接。

目前我经常收到此信息,客户端上的 TortoiseSVN 显示:

2 分 55 秒内传输了 520,00 MBytes

看来我受到了 OOM 杀手的影响:

x:~$ sudo dmesg
[...]
[290354.745160] Out of memory: Kill process 19409 (apache2) score 843 or sacrifice child
[290354.745585] Killed process 19409 (apache2) total-vm:19200784kB, anon-rss:11311540kB, file-rss:692kB

我有点好奇为什么 Apache 会被关闭。关闭后,似乎还剩下 9 GB 的 RAM:

x:~$ free -m
             total       used       free     shared    buffers     cached
Mem:         12043       2103       9940         87         54        313

top在它被杀死之前不久,我看到了以下内容:

Apache 即将被杀死的屏幕截图

我几乎不敢相信 Apache 为一个 692 MB 的文件消耗 17 GB 内存是正常的(根据 Repo 浏览器的说法,这是导致问题的原因)。

我该怎么做才能传输文件?我不想全局禁用 OOM 杀手。我想弄清楚为什么 Apache 需要这么多 RAM 以及如何解决此问题,例如通过 Apache 配置文件、升级到无内存泄漏版本或类似方法。

我努力了:

  • 关注此博客,但在我的里面/etc/apache2/apache2.conf没有这样的条目。
  • Ubuntu 版本提到了 1 GB RAM 的问题。升级到 2 GB 有帮助。不幸的是,我无法升级 RAM。我无法获得超过 12 GB 的内存。这对我来说足够了。我的旧服务器只有 2 GB,也运行良好。

版本:

x:~$ sudo apache2ctl -V
Server version: Apache/2.4.10 (Debian)
Server built:   Sep 20 2017 04:37:43

x:~$ svn --version
svn, version 1.8.10 (r1615264)
   compiled Aug 10 2017, 03:35:22 on x86_64-pc-linux-gnu

x:~$ uname -a
Linux v2201506722726049 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u5 (2017-09-19) x86_64 GNU/Linux

答案1

我没有弄清楚。1 月 10 日,我删除了所有内核,并从头开始重新安装了服务器。现在它工作正常。甚至可以轻松传输 4000 MB 的文件。Apache 的内存仅增加到约 400 MB。

相关内容