Subversion/Hudson/Sonar/Artifactory - 太多了,我的小服务器处理不了!救命!

Subversion/Hudson/Sonar/Artifactory - 太多了,我的小服务器处理不了!救命!

我有一台小型专用服务器。它价格便宜,配有一台简单的 AMD 1800+ (1.5ghz)、256mb DDR RAM,...我还需要继续吗?我觉得我已经超载了。

我已经安装了以下内容,并且它运行的是 CentOS 5.4:

  • 网页管理
  • 阿帕奇
  • MySQL
  • Subversion 作为 Apache 模块
  • 哈德逊 (独立)
  • Sonar(独立,与独立 Jetty 安装一起运行)
  • Artifactory(独立)

差不多就是这样。但我遇到了问题;页面加载速度非常慢。服务器的网络速度非常好,但我认为只是 CPU 和/或内存不足。页面加载缓慢的一个副作用是 Hudson 有时超时,无法在一定时间内启动 Maven 或联系 Sonar。

我认为加快速度的下一步可能是转移到应用程序服务器并在该服务器上一起使用 Hudson、Sonar 和 Artifactory 的 WAR 版本。我不知道这是否有用,但似乎很有意义,尤其是 Sonar 在其自己的 Jetty 安装上运行,而其他两个可能也在运行自己的迷你应用程序服务器。我这样想对吗?

这是正确的做法吗?还有其他让服务器运行更快的技巧吗?如果您愿意,我可以发布更多数据,只要告诉我还有什么可以帮助您回答我的问题即可。

哦,另外,为了消除任何怀疑,我没有感染任何病毒或间谍软件。我使用 DenyHosts 保护我的 SSH 访问(过去几个月它已经阻止了 300 多个暴力破解程序),并且我已经确认内存和 CPU 使用率最高的四个进程是 Sonar、Artifactory、Hudson 和 MySQL。

编辑:我刚想到另一件事,也希望您对此发表评论:Apache 目前有 8 个生成的从属进程,每个进程占用 42MB 的内存。这不是我的 Web 服务器。如果我关闭 Apache,其他所有程序都能正常运行吗?您能否为我提供教程或其他内容,介绍如何将 Subversion 从 Apache 迁移到可以与其他三个应用程序协同工作的程序,甚至可以将 Subversion 变成 WAR 文件之类的东西?

编辑2:好的,我关闭了 Apache,速度变快了一点,我正在努力让 svnserve 工作。但仍然没有反应?有人有什么建议吗?:-\

答案1

首先,运行 top,看看你的内存用在哪儿。请注意,top 不会正确报告共享内存。查看 top 选项,你可以按几乎任何内容进行排序。

如果没有其他办法,您可以减少 Apache 运行的进程数,只需检查它的配置文件,我已经这样做了,但可能所有进程都会被推送到交换区,所以无关紧要。

我认为你需要更多内存,除此之外别无他法。你可以获得更快的交换速度(当然,买一张 SATA 卡和一个小型快速闪存驱动器……没错,更换所有东西更便宜)。

更多内存。你的 Java 应用需要它。

答案2

您需要更多内存。256MB 是不够的,而且您无疑会疯狂地进行交换。

你没有说明你使用的是什么操作系统,但假设是 Linux,请free在命令行中执行,并查看“交换”行。如果“已使用”列很大,或“可用”列很小,那就是你的问题。

答案3

事实证明 Artifactory 占用了大量的 RAM 和 CPU,导致所有程序运行缓慢。禁用它后,速度提高了 2-3 倍,这绝对是可以接受的。

我还关闭了 Apache 并正在根据我的需求配置 svnserve;它也应该更轻量级。

为了从该服务器获得更高的性能,我确信我必须升级它的 RAM,而这不是现在的选择,因此我很高兴它处于可用状态,即使我不得不放弃 Artifactory(SVN、Hudson 和 Sonar 无论如何都是最重要的部分)。

编辑:最终 svnserve 还是没能成功;我完全反对它要求使用明文密码。我回到了 Apache,但服务器仍然运行顺畅。Artifactory 耗电量很大!

声纳也需要很大的电力,但它是值得的。

答案4

Sonar 对 RAM 的要求非常高,1GiB 时速度很慢,4GiB 时可以接受,8GiB 时还可以。

相关内容