返回介绍

第10章 集群和工作队列

发布于 2024-01-25 21:44:08 字数 931 浏览 0 评论 0 收藏 0

读完本章之后你将能够回答下列问题

为什么集群是有用的?

集群的代价是什么?

我该如何把一个多进程的解决方案转换成一个集群解决方案?

IPython集群如何工作?

NSQ是怎样有助于创建鲁棒的生产系统?

一个集群通常被视作一组共同工作来解决公共问题的计算机集合。从外部看来,它可能就是一个更大的独立系统。

在20世纪90年代,在一个本地局域网上使用一组商业PC的集群来进行集群化处理的概念变得流行起来——被称作Beowulf集群。后来Google在自己的数据中心通过使用商业PC集群的实践,得到了一个巨大的提升,尤其是针对运行MapReduce的任务。在天平的另一端,TOP500项目每年对最强大的计算机系统进行排名,这些系统都具有典型的集群化的设计,并且最快的机器都使用了Linux。

亚马逊Web服务(AWS)通常既被用来做云中的工程产品集群,又被用来为短期的项目比如机器学习来按需构建集群。使用AWS,你能够租用多台八核Intel Xeon,60GB的RAM的机器,每小时单台1.68美元,还有244GB RAM的机器以及具有GPU的机器。如果你想要为计算密集型的任务探索AWS的临时集群,可以看看第10.6.2节和StarCluster包。

不同的计算任务需要不同配置、不同大小、不同容量的集群。在本章中我们会定义一些公共的场景。

在你转移到集群化的解决方案时,确保你已经:

度量了你的系统,因此你理解瓶颈在哪里。

探索了类似Cython的编译器解决方案。

在一台单独的机器上利用了多核(可能一台大型机器上有很多核)。

探索了使用更少RAM的技术。

让你的系统保持运行在一台机器上(即使“一台机器”其实是强大的具有许多RAM和CPU的计算机)将会让你的生活更轻松些。如果你真的需要许多CPU或者并行处理来自磁盘上的数据的能力,抑或是具有类似高弹性和高响应速度之类的产品需求,那么请转移到一个集群上去。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文