对于 ruby​​ 应用程序来说,哪个更好,更高的 GHz 和更少的内核或更多内核和更低 GHz

对于 ruby​​ 应用程序来说,哪个更好,更高的 GHz 和更少的内核或更多内核和更低 GHz

我刚刚开发完一个网络爬虫,它基本上允许用户抓取他们的网站,并通知他们网站上的错误。但是我的应用程序非常占用服务器资源。它是一个使用 rails、mongo 和一些 gem 的 ruby​​ 应用程序,并使用延迟作业在后台运行抓取。在我的 Mac 上测试爬虫,它有 Intel Core 2 Duo @ 2.4GHz 和 4gb 内存,我一次只能抓取 5 个网站,平均每小时抓取 500 页。如果我尝试一次抓取超过 5 个,进程就会被终止,抓取失败。当同时抓取 5 个网站时,我的 CPU 使用率始终处于 95% - 100%,而我只使用了大约 600mb 的内存。

我正在购买服务器,预算不到 1,000 美元。所以我的问题是:您认为是购买具有更多内核但 GHz 较低的服务器更好,还是购买具有更少内核但 GHz 较高的服务器更好?

我探索了很多选项,比如亚马逊 AWS、专用服务器、多个小型 VPS 等。我觉得购买一两台服务器并将其安装在数据中心是最划算的。我可以通过朋友以低于市场价的价格买到半个机柜。我只是不知道如何最好地花钱,任何见解都将不胜感激。

答案1

听起来您的应用程序需要更好的设计并且缺乏适当的并行性,除非您实际上以某种方式呈现这些页面,即使这样,我认为如果您将下载与最终渲染分离,您应该能够超过每秒 8 个 - 交互性不是优先事项。

最好的方法是确保应用程序中有适当的并行性,并获得每秒可为您提供最多操作的设备。这几乎总是意味着更多的处理器核心。基本计算应该是核心数 * gHz = 分数。

也就是说,某些类型的处理器也可能会产生影响。

答案2

抱歉,我不是 Mac 用户,所以我想到的是显示每个核心利用率的 Windows 任务管理器 - 如果您有类似的东西 - 检查您是否看到两个核心都已达到最大值,那么您最好获得更多核心。

如果您发现一个核心已达到最大限度,而另一个核心几乎处于空闲状态,那么 GHz 对您来说更为重要。

相关内容