我已将存储库从一台服务器移至另一台服务器。在客户端上,我已删除该存储库,现在正尝试再次从新服务器签出。
这对于小文件来说没问题。我能够检出数百个总大小超过 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
我没有弄清楚。1 月 10 日,我删除了所有内核,并从头开始重新安装了服务器。现在它工作正常。甚至可以轻松传输 4000 MB 的文件。Apache 的内存仅增加到约 400 MB。