我已将存储库从一台服务器移动到另一台服务器。在客户端上,我已经删除了存储库,现在我正在尝试再次从新服务器中签出。
这适用于小文件。我能够检查出数百个总大小超过 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 为 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 月 10 日,我所有的内核都被删除了,我从头开始重新安装了服务器。现在可以正常工作了。甚至可以轻松传输 4000 MB 的文件。Apache 的内存只达到了约 400 MB。