我有一个小的专用服务器。它价格便宜,并且有一个简单的 AMD 1800+ (1.5ghz)、256mb DDR RAM,...需要我继续吗?我想我已经超载了。
我已经安装了以下内容,它运行的是 CentOS 5.4:
- 网民
- 阿帕奇
- MySQL
- Subversion 作为 Apache 模块
- 哈德逊(独立)
- 声纳(独立,通过独立的 Jetty 安装运行)
- 神器(独立)
差不多就是这样。但是我遇到了问题;页面加载速度很慢。服务器的网络速度非常好,但我想我只是用完了 CPU 和/或内存。页面加载缓慢的副作用是有时 Hudson 超时,无法在一定时间内启动 Maven 或联系 Sonar。
我认为加快速度的下一步可能是转移到应用服务器并在该服务器上一起使用 Hudson、Sonar 和 Artifactory 的 WAR 版本。我不知道这会有所帮助,但这似乎是有道理的,尤其是在 Sonar 在其自己的 Jetty 安装上运行并且另外两个可能也在运行自己的迷你应用程序服务器的情况下。我这样想对吗?
这是正确的做法吗?关于如何使服务器运行得更快的任何其他提示?如果您愿意,我可以发布更多数据,请告诉我还有什么可以帮助您回答我的问题。
哦,也只是为了消除任何怀疑,我没有任何病毒或间谍软件。我使用 DenyHosts 保护我的 SSH 访问(在过去几个月中已经阻止了 300 多个暴力破解程序),并且我已经确认内存和 CPU 使用率排名前四的进程是 Sonar、Artifactory、Hudson 和 MySQL。
编辑:我只是想到了另一件事,我也想让你评论一下:Apache 目前有 8 个衍生的从属进程,每个进程占用 42MB 的内存。这不是我的网络服务器。如果我关闭 Apache,其他一切都能正常工作吗?你能给我指点关于将 Subversion 从 Apache 迁移到可能与其他三个应用程序一起工作的东西的教程或其他东西,甚至可能使 Subversion 成为 WAR 文件或其他东西吗?
Edit2:好的,我关闭了 Apache 并且事情有点快,我正在努力让 svnserve 工作。但还是没有反应?有没有人有任何提示?:-\
首先,运行 top,看看你的 ram 要去哪里。请注意,top 不会正确报告共享内存。查看顶部选项,您几乎可以按任何内容进行排序。
如果不出意外,您可以减少 Apache 运行的进程数量,只需检查其配置文件,我已经这样做了,但可能会全部被推送到交换,所以没关系。
我在想你需要更多的内存,而且没有什么其他的了。您可以获得更快的交换速度(当然,获得一个 SATA 卡和一个小型快速闪存驱动器......对,更换所有东西更便宜)。
更多的内存。你的java东西需要它。
你需要更多的内存。256MB 是不够的,你无疑是在疯狂地交换。
你没有说你正在使用什么操作系统,但假设是 Linux,
free
在命令行中执行 a,然后查看“swap”行。如果“used”列很大,或者“free”列很小,那就是你的问题。事实证明 Artifactory 使用了大量的 RAM 和 CPU 并减慢了一切速度。禁用它后,速度提高了 2-3 倍,这绝对是可以接受的。
我还关闭了 Apache 并正在根据我的需要配置 svnserve;它也应该更轻巧。
为了让这台服务器获得更多性能,我确信我必须升级它的内存,而现在这不是一个选择,所以我很高兴它处于可用状态,即使我不得不放弃 Artifactory (无论如何,SVN、Hudson 和 Sonar 是最重要的部分)。
编辑: svnserve 毕竟没有成功;我完全反对它要求明文密码。我回到了 Apache,但服务器仍然运行顺利。神器消耗了很多力量!
声纳也需要很大的功率,但这是非常值得的。
我无法想象你真正期望在这里找到什么解决方案。.. 用这么少的内存,我只能看到非常小的结果需要付出巨大的努力。这很简单——花一点钱来获得更多的内存!
Sonar 非常渴望 RAM,1GiB 速度很慢,4GiB 可以接受,8GiB 还可以。