文章標籤:工人

辦公室網格計算使用虛擬環境-第3部分

(星期五)二零零九年十二月四日下午11:37

介紹

我在一家公司上班,我們許多批處理作業處理數據每天數以百萬計的記錄,我一直在想最近所有的機器,周圍坐的每一天做幾個小時沒有運行。 如果我們可以使用這些機器,以增強我們的系統的處理能力,豈不是好? 在這組文章中,我要去看看用人辦公室電網使用虛擬環境的潛在好處。

第2部分 ,我們看著一台服務器將運行的工作,工作應該如何進行配置,以達到處理量最大,同時確保每個作業無故障處理。

設置您的工作 - 或跛行服務器

在這個過程中的下一步是建立虛擬的工人。 為了這個,我要去使用CentOS的安裝使用VirtualBox的。 我要安裝MySQLPHP服務器,又稱跛行馬錢,M ySQL,P惠普)SERVERA(我可能這個名字)。

  • 你的Windows機器上安裝VirtualBox的(後續鏈接)
  • 下載並安裝創建的虛擬機內的CentOS(當前版本5.3)

我這有可能是1000“有偉大的教程(OK,這裡有一個:小號下VirtualBox的創建和ManagingÂCentOS的虛擬機 )沒有意義。 我想重要的一點要注意的是,我叫我的虛擬機GridMachine的

至於客戶端虛擬化和操作系統,我選擇去那裡是沒有什麼大的每一個選擇的令人信服的理由。 VirtualBox是什麼,​​我用我家的機器,是由三大操作系統的支持。 我選擇的CentOS作為一個良好的穩定的操作系統,我用我自己的Web服務器。 我偉大的信徒在工作的合適的工具(雖然我申請“用你最快最簡單的心態在這裡),因此, 如果作業系 ​​統X運行你的代碼更快和更有效地使用,而不是 :)

重要的是確保你的虛擬機使用DHCP,為每一個新的虛擬機,否則將需要單獨配置,這是我們不want.By使用DHCP我們不需要工人機器配置網絡設置單獨的DHCP將手出你的IP地址。 因此,你可以複製你的辦公室的虛擬機,無需擔心設置每一個(這提高了可擴展性和降低工人管理)。

應力求實現的過程中,你將獲得一個新的物理機,安裝VirtualBox,然後非常部署沒有太多的其他虛擬形象。 這可能是明智的設置在不同的子網中的所有工人,這樣你至少可以看到有多少機器正在運行。 你還需要設置你的機器上長期租賃或租賃的DHCP無限。

如何運行工人的工作

這是一個有趣的領域,有幾個工人在處理工作的有效方法。 在這裡我只討論兩個最明顯的:

  • 永遠運行腳本:腳本,它是一個shell腳本,或一個PHP腳本執行一次對工人和運行一個無限循環的一部分。 我貼現作為一個腳本的崩潰這種方法,可能你的工人將停止運行,而不某種干預。
  • cron守護進程cron的腳本執行:每隔X分鐘揭開序幕,以你的腳本的呼籲得到的東西去。 如果沒有一些檢查,這可能會導致很多工人腳本運行的副本。

我的決定是用cron去揭開序幕的shell腳本每10minutes.Â的我的shell腳本執行以下任務:

  1. 獲取進程列表和grep'PHP'。 如果沒有找到,那麼繼續。
  2. 打電話給你的工作代碼,這在我的情況下將根據事情的PHP
  3. 工人腳本完成其運行
  4. 再次準備去下一個合適的呼叫

我的bash腳本看起來像下面這樣:

  #!/ bin / sh的
如果PS斧| grep的-V的grep | grep的PHP>的/ dev / null的
然後
    迴聲“工作目前正在處理,退出”
其他
    呼應“作業未運行,從現在開始”
     PHP yourJobProcessingScript.php
科幻 

注:迴聲的幾乎是完全沒有意義的,但可能有助於未來走來的人嘗試和編輯。

總結了一套工人的虛擬機,快速,簡單,容易複製到每個接收新硬件。 電網系統的“聰明”真的不是在可視化的操作系統,其所有的代碼創建過程中的工作,工作配置,並與在確保工作運行在適當的時候(即當主機處於閒置狀態)。

設置Windows初始化工人

第一項任務是工作需要從Windows命令行中運行虛擬機的命令。 如果你在默認位置安裝了VirtualBox和你命名的工人GridMachine,然後加載你的工作所需的命令是:

 的“C:\ Program Files文件\ Sun \中的VirtualBox \ VBoxManage.exe”startvm GridMachine 

但是在一個“無頭”狀態運行的腳本,我們需要使用:

  “C:\程序文件\ Sun \中的VirtualBox \ VBoxHeadless.exe”startvm GridMachine - VRDP =關閉 

這將啟動虛擬機,沒有GUI,並允許它來保存狀態正常。 第二個參數關閉的RDP,因此不會與Windows RDP的衝突,或給你一個消息監聽端口3389。 虛擬機的名稱是大小寫敏感的!

下一步,我們需要設置窗口,我們工人VM一旦機器已經閒置揭開序幕。 要做到這一點(在Windows XP中),你需要去開始 - >所有程序 - >附件 - >系統工具 - >任務計劃如下:

計劃任務

下一步點擊“添加任務計劃”瀏覽添加一個自定義程序。 導航到您的VBoxManage腳本,然後單擊“確定”。 時間表的任何選項(我們將在一分鐘內改變)你的任務,並繼續。 跳過下一個屏幕後,窗口會問你是誰,你想運行此任務,我建議無論是“管理員”或創建一個新的特權用戶。 請記住我們不想干涉在任何時候,機器上的標準的人員佔。 點擊“下一步”,並檢查顯示此任務的高級選項。

運行文本框的末尾添加“startvm GridMachine'字符串,並確保運行,只有當記錄在左取清選取3.1。 訪問日程任務和改變時間表下拉選項“空閒”時,選擇的時間,你想在機器閒置,然後再移動到下一個標籤。

最後的選項勾去掉其中規定停止任務,如果它已經運行的X時間,但不打勾的選項,以停止任務,如果機器不再是閒置。

時間表

這是Windows主機設置!

總結

在這一部分中,我們已成立了一個虛擬機作為一個工人,以及調用和執行我們的工作處理腳本的方式,我們(給自己一個PHP腳本)。 從這裡,我們來看看如何建立我們的Windows副本在headless模式啟動虛擬機的計算機變為空閒時,保存其狀態,當用戶恢復使用機器。 希望在這一點上,你將看到它是多麼簡單,設立這樣一個系統,並渴望得到一些實驗自己!

下一次

第4部分中,我們將著眼於使用工具,以確保您正在運行最新版本的代碼和數據來源,使得到的結果是一直到最新的最新的商業信息和邏輯。

辦公室網格計算使用虛擬環境-第5部分

(星期五)二零零九年十二月四日下午11:03

介紹

我在一家公司上班,我們許多批處理作業處理數據每天數以百萬計的記錄,我一直在想最近所有的機器,周圍坐的每一天做幾個小時沒有運行。 如果我們可以使用這些機器,以增強我們的系統的處理能力,豈不是好? 在這組文章中,我要去看看用人辦公室電網使用虛擬環境的潛在好處。

第4部分中,我們看到,在使用工具,以確保我們正在運行最新版本的代碼和數據源,使得到的結果是一直到最新的最新的商業信息和邏輯。

預部署

前,如果有一件事你做一件事單獨部署的網格系統,它是當前系統的基準 無論你告訴同事多少額外的工作,您的系統正在做的,除非你有編號,以備份您的擔保這是什麼。 因此,

  • 你可以處理多少條記錄當前? 每日? 每小時?
  • 多久通常需要扭轉工作?
  • 你有更多的容量多少?

還有其他問題:

  • 如果您的服務器進行處理(或處理服務器)出現故障,這將如何影響你的能力,你會被削弱?
  • 你希望/希望得到來自電網系統有什麼優勢?
  • 是你的辦公室機器能夠運行的工作嗎?
  • 是你(或你的工作可以被轉換),在這種運行方式wrok?

最後一個主要的一點是採取你的時間,像這樣的任何重大變化。 更新您的處理代碼工作再次使用的新方法,基準。 可能成立處理服務器來運行一個虛擬機,所有的服務器進行處理後,將是另一名工人(只是一個非常強大的比較)。 允許新的進程來解決。

部署

我的建議是到辦公室的一個週末彈出執行所有的安裝和設置。 之前剛剛做了兩個星期的假期,這和其他貧困離開章處理的後果......也許不是......

部署這樣的系統需要是緩慢的。 儘管它是相對簡單設立這個系統,會影響整個辦公室的基礎設施(數字)。 首先,推出幾個機器的時間,監視網絡流量,工人主機如何一天到一天的基礎上執行。 您可能需要改變你的發現,你的工作配置。

一旦系統與幾台機器(可以說,所有的辦公設備,10%即5)保持監控網絡流量和主機performance.Â下一步基準再次落戶,你現在應該可以處理更多的就業機會比你的第一個基準的33%。 檢查是這樣,你至少在這個球場。 如果不是,探討在移動之前是怎麼回事。 重複這個循環,直到你快樂都沒有造成個別機器的性能或磨你的網絡癱瘓辦公室機器運行。

在任何時候都保持基準,即使在所有部署。 檢查新的代碼更新如何影響系統的速度,檢查所有工人的報告和處理工作。 慢慢(很慢)增加你的工作從工人和網絡配置,以獲得最好。

住手!

如果你想在運行一段時間,以阻止工人嗎? 他們都在那裡運行,再生,並盡力處理飢餓的昆蟲一樣的數據。 答案似乎是顯而易見的,但它的價值,以防萬一加入其忽略。 簡單的編輯處理腳本退出(0)或死亡()或其他一些語句來殺你的處理工作。 為什麼我們總是嘗試更新到最新的處理腳本之前運行的一個重要原因!

演示系統

為了寫這篇簡短的文章,我創建了一個非常小的網格,展示的技術和方法的集合。 我看了很多文章,教程,並使用各種工具來設置和監控發生了什麼事情。 我絕不出去飽和的交通,也不整個辦公室,我曾訪問一個普通的工作人員PC到主機性能的影響如何。

我的演示系統確實是很不起眼的。 我用我的作業控制服務器設置為常規桌面。 在這一點上,我已經安裝了MySQL服務器的安裝設置為複製過程中的高手, PHP ,A和SVN通過鏈接的Apache (通過工人VM訪問)。

然後,我在VirtualBox創建一個6歲的Windows XP的筆記本電腦一台CentOS工作機。 我設置複製到本機的虛擬機後,指定的計劃任務和放手。

虛擬機成立,顛覆與PHP,MySQL的。 我檢查出一個分支命名為“工人”從我的作業控制服務器庫,並確保它可以使用“svn update的”更新。 下一步,我的設置作為一個奴隸的MySQL,並檢查數據從MySQL複製作業控制服務器工人VM。 這一切後,我設置的bash腳本和cron作業。

我的處理腳本基本上都沿此線(很簡單的東西):

  • 在名稱字段讀取
  • 在VM上舉行的數據源表的計算類似名稱的數量
  • 算作數以上,但由空格分割的名稱(即用的名字,中間,姓)的名稱
  • 重複這個過程中1000倍

每個作業歷時約20分鐘運行。 在一個點上,我打開的Windows筆記本電腦上了幾個工人VM副本,並觀看的工作進行檢查每個工人的IP地址。 在這一點上我也證實,複製自動重新啟動。

離開閒置導致工人在開始作業控制服務器來處理工作的筆記本電腦。 恢復筆記本電腦的使用時有30-60秒左右的延遲,這是要意識到,他們的機器可能會暫停一會兒,返回機器時,需要相當的時間和人員。 新機器可能不會有這個長暫停。 這些機器空閒期間進行加工的好處更是得不償失的工作人員不必等待在短期內(例如1分鐘),在他們的機器上的一個早晨抵達(我經常等待更長的時間,這為Windows Defender的更新發生),他們意識到了這一點(有用的時間搶早上喝咖啡!)。

總的來說,我覺得有信心,我已經證明的,可用於建立這樣一個系統的技術。 我已經表明,這樣一個系統,一個(非常)小規模,多一些嘗試可以擴大利用辦公室的機器資源的工作。 如果我不明白這樣做,我會非常有興趣知道/看到別人做的時候。

結論/評估

下一個明顯的步驟將是真正得到現實世界的例子,並開始部署如本系統內的辦公環境,並看看會發生什麼。 問一個業務,這個承諾沒有一條小道熾烈公司證明的技術和效果可能會有點困難。 網格/分佈式計算是非常受歡迎的是一些圓圈,並有一些大型應用程序(BIONC的SETI @ home,Folding @ home項目等)。 但是,我沒有發現在我的辦公環境內可以推出的搜索規模較小,像這樣簡單的系統。

我創建了一個基本上是免費的,在幾乎任何辦公系統使用的大多是開源軟件和工具。 技術基本上證明和表明執行如預期般運作。 我希望有,沒有太多的工作,並用一個非常簡單的設置,您可以部署一個辦公室網格計算系統,是功能強大,價格便宜,A和可擴展性,同時顯示。

一旦系統運行有幾乎是沒有結束的定制和改進,可以使金額。 例如統計/基準可以很容易地顯示了這樣一個系統的價值每天補充。 可以添加新的機器迅速和容易地到達時,他們與升級現有的硬件支撐你的處理能力。

我希望您喜歡閱讀這一系列文章,它給你的食物有關運行辦公室電網系統的思想。 這裡介紹的解決方案不一定在所有情況下工作,但應該是適應性強,讓你得到你的數據處理用自己的解決方案。

請隨時給我任何意見,更正,或改善,我會盡我最大努力保持更新以匹配本文。













全景主題 themocracy

6訪客在線
2位客人,4個機器人,0會員
最大的遊客今天:19在01:56上午UTC
本月:26在2012年4月4日下午10:27 UTC
今年:27-02-2012九時56分,69時UTC
所有時間:130 28-03-2011 10:40 PM UTC