文章標籤:BASH

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

,二零零九年十二月四日(星期五)晚上11:59

介紹

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

第三部分中,我們創建我們的虛擬加工機,並成立窗機成為空閒時間工人。

運行最新的代碼

不可避免創建您的工作人員的業務邏輯,將改變後,錯誤會被發現,更快,更高效的代碼將產生,從而使處理數據使用你的工人,周圍坐著老臭代碼 那麼我們如何確保我們總是使用最新和最偉大的版本我們處理腳本?

有幾個很容易簡單的方法,我們可以做到這一點的伎倆,然而,在實現這一目標,以減少處理能力和網絡流量。 讓我們用最簡單的解決方案,並開始慢慢提高了幾個迭代。

第一種方法是簡單地連接到我們的作業控制服務器(通過Samba,FTP,或類似)和拉下來的代碼的最新版本。 不是很有效,但它會做的工作。 讓,有所改善,如何創造一個rsync的腳本和使用,每次來呢? 或者什麼顛覆檢查出的代碼最初投入的最新處理腳本,然後就更新我們的代碼在每次運行時( 使用svn update )呢?

最終我們可能會與一個bash腳本(稱為由cron每10分鐘),它看起來像這樣簡單的:

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

現在我們可以肯定的,每次運行時,我們肯定運行最新的代碼。 我們要確保我們的代碼庫更新每一個時間,我們執行的運行,減少網絡流量,只在我們的網絡傳輸文件的區別。

在我的示範設置,我沒有完全按照以上。 顛覆我的工作處理服務器上安裝了,我只是拉'工人'使用'svn update的'分支的最新代碼。 我還添加了一個版本號標記我的處理腳本返回結果的一部分返回到數據庫。 這樣我可以看到我的代碼被更新,每次我工人分支,即複製到我的樹幹,我肯定是運行最新的處理腳本。

使用最新的數據

如果您的作業處理,在某些時候使用的數據源,那麼這些將要更新過。 除非你叫您的數據源上非常罕見的基礎上,你會湧入與交通網絡盡快為你的工人開始運行停頓帶來的一切。 對於我的解決辦法,我決定,我想我與我的虛擬機的數據源,周圍移動。

握住你的馬有!如果我的數據源是巨大的? 嗯,這真的是我們談論了多少數據的情況下? 它可能是更具成本有效的安裝到每一台機器的一個額外的更大的硬盤驅動器,比購買一個額外的服務器進行處理。 這是一個問題的預算和業務決定。 它也許您的數據源是如此之大,它只是不可行保持在您的工作機的數據量。 在這種情況下,你會做什麼? 那麼我們可以看看在調用本地數據服務器,但是這可能會導致網絡問題。 在這種情況下,如該網格系統可能成為不切實際的,包括在您的辦公環境。 這也可能是替代性的運行策略,例如,你可以看看,晚上八時至上午六時調用您的工作人員每天晚上和/或限制的數據源請求。

上讓移動100GB的數據說,我們的數據源量。 是的,是一個相當位數據,在網絡上更新移動。 我們如何確保我們在這種情況下,最新的數據副本嗎? Rsync是一種可能性,但我個人認為作業處理服務器上運行您最新的數據源,並設置作為主複製(用一個漂亮的長濱日誌)這可能是要走的路:

複製 通過設置每個工人作為一個奴隸的作業控制服務器更新您的數據源,將涓滴很好地給你的工人沒有大幅增加,在網絡活動(即是,除非你執行一個龐大的數據更新和所有的工人踢一次)。 這比rsync的優勢,你不會得到每個職位的前長時間的停頓; mysql守護你的工人作為數據庫的更新,將不斷更新其數據,同時繼續處理。

這是如何設置我的演示服務器。 設置複製,我也跟著上設置複製 MySQL網站(指南),並在20分鐘內,我有我的頭文字工作者,複製作業控制服務器的數據集。 複製設置和過程,對於每一個額外的工人工作,每次當VM被複製。

總結

在本節的文章中,我們看起來簡單,無痛的,它是迄今usingÂrsync或subverion(SVN)的的,做的工作和減少在同一time.Â的網絡流量,讓您的處理代碼,我們還討論了如何允許它滴入每個工人,以保持您的數據源的信息最新。 因此,我們面積,確保我們保持在我們的辦公室電網系統的業務邏輯和信息。 顯然是有無數的替代品,來執行這些任務,但這裡是兩個簡單的例子來證明的解決方案是多麼容易來。

下一次

在這個系列中,恰當地命名為第5部分的最後一部分,我們將討論部署這一系統。 我會總結所學和我設法創造。

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

,四日(星期五)十二月2009 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訪客在線
3位,3個機器人,0會員
最大的遊客今天:20在4時29分上午UTC
本月26日在2012年4月4日10:27 PM UTC
今年:27-02-2012九時56分,69時UTC
所有時間:130 28-03-2011 10:40 PM UTC