简介
我的工作在我们运行的批处理作业,每天处理的数据记录数百万,我最近一直在思考所有的机器,坐在周围的每个每天做几个小时没有一个公司 。 如果我们能够使用这些机器,以增强我们的系统的处理能力,岂不是好? 在这组文章中,我要去看看聘用一个办公室的潜在好处电网使用虚拟环境。
在第2部分 ,我们看着一台服务器将运行的工作,工作应该如何进行配置,以达到最大的处理量,同时确保每个作业是没有失败处理的。
设置你的工人 - ,或跛行服务器
在这个过程中的下一步是设立虚拟的工人。 为此,我将使用安装使用VirtualBox的CentOS的。 我要安装MySQL和PHP的服务器,又称跛行 ( 李马钱,M ySQL,P惠普)SERVERA(我可能有该名称最多)。
- 你的Windows机器上安装的VirtualBox(以下链接)
- 下载并安装CentOS的范围内创建的虚拟机(当前版本5.3)
有没有我这点有可能是千“有伟大的教程(OK,这里有一个: 创建和Managing CentOS的虚拟机下的VirtualBox )。 我想最重要的一点是,我叫我的虚拟机GridMachine。
至于我的选择客户端的虚拟化和操作系统有没有什么大的每一个选择的令人信服的理由。 VirtualBox是我用我的家用机,是由三个主要的操作系统支持的东西。 我选择了CentOS的作为其良好的稳定的操作系统,我用我自己的Web服务器上。 我是一个伟大的信徒为工作的合适的工具(虽然我申请“为您使用最快和最简单”的心态),因此,如果作业系统X运行你的代码更快,更有效地使用,而不是: )
重要的是确保你的虚拟机使用DHCP,为每一个新的虚拟机,否则就需要单独配置,这是我们不want.By使用DHCP我们不需要工人机器配置网络设置单独的东西,DHCP将手你出去的IP地址。 因此您可以复制您的虚拟机有关Office无需担心设置每一个(这可以提高可伸缩性和降低工人管理)。
应力求实现的过程中,你将获得一个新的物理机,安装的VirtualBox,然后非常没有很多其他部署虚拟映像。 这可能是明智的设置上不同的子网中的所有工人,这样你至少可以看到有多少台机器运行。 您还需要设立您的机器上长期租赁或无限租用DHCP。
如何运行作业工人
这是一个有趣的领域,有几个有效的方法处理工人的工作。 这里,我将只讨论两个最明显的:
- 永久运行脚本:一个脚本,它是一个shell脚本,或PHP脚本执行一次工人,作为一个无限循环的一部分运行。 我贴现作为一个脚本崩溃这种方法,可能你的工人将停止运行没有某种干预。
- cron的脚本执行:cron守护进程每隔X分钟揭开序幕,以你的脚本调用事情。 如果没有一些检查,这可能会导致很多工人脚本运行的副本。
我的决定是用cron去揭开序幕shell脚本每10 minutes.Â我的shell脚本执行以下任务:
- 获取进程列表和grep“PHP”。 如果没有找到,那么继续。
- 打电话给你的工作代码,在我的情况,这将是基于PHP
- 工人的脚本完成其运行
- 准备再次去下一个合适的呼叫
我的bash脚本看起来像下面这样:
#!/ bin / sh的
如果PS AX | grep的- V GREP | grep的PHP>的/ dev / null的
然后
回声“的工作目前正在处理,退出”
其他
回声“作业不运行,从现在开始”
PHP yourJobProcessingScript.php
科幻 注:回声的是几乎完全没有意义的,但可能有助于在未来的人来一起尝试和编辑。
这结论成立工人虚拟机,快速,简单,容易复制到每个接收到的新硬件。 电网系统的“聪明”还真是不可视化操作系统,其所有与创建过程中作业,作业的配置,并在确保作业运行在适当的时候(即当主机处于闲置状态的代码)。
设置Windows初始化工人
第一个任务是工作需要从Windows命令行运行的虚拟机的命令。 如果你已经安装在默认位置VirtualBox和你命名的工人 GridMachine然后命令需要加载您的工作是:
“C:\ Program Files文件\ Sun \中的VirtualBox \ VBoxManage.exe”startvm GridMachine
然而,运行在一个“无头”状态,我们需要使用脚本:
“C:\ PROGRAM FILES \ Sun \中的VirtualBox \ VBoxHeadless.exe”startvm GridMachine - VRDP = OFF
这将启动虚拟机,并没有GUI允许它优雅地保存状态。 第二个参数关闭的RDP,所以它不会与Windows RDP冲突,或给你一个消息监听端口3389。虚拟机的名称是大小写敏感的 !
下一步,我们将需要设置Windows揭开序幕我们的工人VM,一旦机器被闲置。 要做到这一点(在Windows XP),你需要去开始 - >所有程序 - >附件 - >系统工具 - >预定任务如下:
然后点击“添加计划任务”浏览添加一个自定义程序。 导航到您的VBoxManage脚本,然后单击确定。 你的任务时间表的任何选项(变化,我们将在一分钟内),并继续。 跳过下一个屏幕后,Windows会问你是谁你想运行此任务,我建议无论是“管理员”或创建一个新的特权用户。 请记住我们不想干涉任何一点与机器上的标准的人员占。 单击下一步,然后检查显示此任务的高级选项。
运行文本框的末尾添加“startvm GridMachine”字符串,并确保运行,只有当记录在左unticked。 访问计划任务和变化的时间表下拉选项“空闲时”,选择你想要的机器,然后再移动到下一个标签闲置的时间。
最后勾去掉,选择哪些国家,如果它已经运行X的时间停止任务,但打勾的选项,以停止任务,如果机器不再闲置。
这是它为Windows主机设置!
摘要
在这一部分中,我们已经成立了一个虚拟机作为一个工人,以及在我们调用,并执行我们的工作处理脚本(为自己的PHP脚本)。 从这里,我们来看看如何建立我们的Windows副本,在headless模式启动虚拟机时,计算机将成为闲置,并保存其状态,当用户恢复机器的使用。 希望在这一点上,你看到的是多么简单设立这样一个系统,并渴望得到一些实验自己!
下一次
在第4部分中,我们将着眼于使用工具,以确保您正在运行最新版本的代码和数据源,使得到的结果总是与最新的商业信息和逻辑的最新的。