分類:Linux的

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

史蒂芬勞埃德沃特金斯 ,週五09年12月4日下午11時59分

簡介

本人在一家公司工作,我們批作業處理運行多個記錄的數據以百萬計的每一天,我最近一直在思考的所有的機器圍坐的每一天什麼都不做了幾個小時。 那豈不是好,如果我們可以利用這些機器的處理能力來支持我們的系統? 在這組文章中,我要去看看的潛在好處僱用辦公室電網使用虛擬化環境。

第三部分我們創建了虛擬加工機和設置Windows機器成為空閒時間的工人。

最新的代碼運行

在創建你的工人不可避免的業務邏輯會改變,錯誤會被發現,更快,更高效的代碼會產生這樣離開你的工人圍坐在處理數據使用舊的臭代碼 那麼我們如何確保我們始終使用最新和最強大的版本,我們處理腳本?

有幾個簡單的方法很簡單,我們可以做到這一點,訣竅,但是,要減少網絡流量處理能力和在實現這一點。 讓我們先從最簡單的解決方案以及完善它慢慢地在一對夫婦的迭代。

第一種方法是將我們的工作簡單地連接到控制服務器(通過 Samba,FTP或類似)和拉下來的最新版本的代碼。 不是很有效,但是它會做這個工作。 這有點讓我們改進,如何建立一個 rsync的腳本和使用,每次呢? 或者怎麼樣把我們的最新處理腳本到顛覆檢查出的代碼,然後就開始更新我們的代碼在每次運行( svn更新 )?

最後,我們可能會與一個 bash腳本(稱為由cron每10分鐘),看起來很簡單,因為這:

  #!/ bin / sh的
如果ps的斧| grep的- V的grep的| grep的PHP的 “/ dev / null的
然後
    迴聲“工作目前正在處理,退出”
其他
    迴聲“作業沒有運行,從現在做起”
    光盤 /路徑 /要/工作/複製
     svn更新
     PHP的yourJobProcessingScript.php
科幻 

現在我們可以肯定的是我們每次運行時肯定運行的是最新的代碼。 我們保證這個代碼庫更新我們的每一次我們執行運行和降低網絡通信量傳輸文件的差別只在我們的網絡。

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

使用最新的數據

如果你的工作處理使用的數據源,然後在某個時刻這些將要更新了。 除非你打電話給你的數據源的基礎上非常罕見的水災,你要去的交通網絡,盡快使你的員工開始運行一切停頓。 對於我的解決辦法,我決定,我想提出我用我的數據源虛擬機。

擁抱你是馬那裡!如果我的數據源是巨大的? 嗯,這確實是一個案件有多少數據是我們說話嗎? 這可能是更符合成本效益來安裝額外的更大的硬盤到每個機比購買一個額外的服務器進行處理。 這是一個問題的預算,是由企業來決定。 這也許就是你的數據來源是如此之大,它只是保持這一行不通的數據量在你的工作機器。 在這種情況下你會怎麼辦? 嗯,我們可以看看調用本地數據服務器,但是這可能導致問題的網絡。 在這種情況下,電網系統,如這可能成為不切實際的,包括你的辦公環境。 這也可能是你可以看看其他運行策略,如只要求你的員工早上6點至晚上8點和每天晚上和/或節流數據源的請求。

可以說,我們對移動數據源萬兆的數據量。 好,可以說的相當多的數據,移動網絡上的更新。 我們如何確保我們擁有最新的數據副本在這種情況下? Rsync是一種可能性,但我個人覺得您的最新數據源運行在您的作業處理服務器和將其設置為一個掌握複製(用了漂亮的長濱日誌)可能是長的路要走:

複製 通過設置您的每個工人,作為一個奴隸的作業控制服務器更新您的數據源就會從天上掉下來的工人沒有很好的巨額增長,在網絡活動(即,除非你執行一個龐大的數據更新和所有的工人踢在一次)。 這已經超過rsync的優勢在,你不會得到一個長時間的停頓在每次工作;作為數據庫更新時, MySQL的守護進程在你的工人會不斷更新它的數據,而繼續處理。

這是怎麼設置我的演示服務器。 設置複製我跟著指南MySQL網站( 設置複製 ),並在20分鐘內,我有我>初始工人作業控制服務器複製數據集。 每增加工人的複製設置和處理工作,每次當虛擬機被複製。

綜述

在本節中的文章中,我們已經看到了如何簡單,無痛的它讓您的加工代碼最新的using rsync或subverion(SVN)的做工作,減少網絡流量的同時,我們還討論了如何time.Â讓您的數據源的信息保持在最新通過允許它流到您的每個工人。 因此,我們面積確保我們跟上業務邏輯和辦公室中的信息網格系統。 將有無數的選擇,顯然是在執行這些任務,但這裡有兩個簡單的例子,說明一個解決方案是多麼容易得的。

下次

在本系列的最後部分,取名為5部分 ,我們將討論部署該系統。 我會總結所學和我設法創造。

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

史蒂芬勞埃德沃特金斯 ,星期五09年12月4日下午11點37分

簡介

本人在一家公司工作,我們批作業處理運行多個記錄的數據以百萬計的每一天,我最近一直在思考的所有的機器圍坐的每一天什麼都不做了幾個小時。 那豈不是好,如果我們可以利用這些機器的處理能力來支持我們的系統? 在這組文章中,我要去看看的潛在好處僱用辦公室電網使用虛擬化環境。

第二部分的工作,我們看著一台服務器將運行,以及如何工作應配置,以達到最大的處理量,同時確保每個作業處理不許失敗。

設置你的工人 - 或跛行服務器

下一步就是在這個過程中設置虛擬工人。 為此我將使用安裝使用VirtualBox的CentOS。 我要安裝mySQL的PHP的服務器上,也被稱為跛行馬錢, 米ySQL,磷惠普)在ServerA(我可能會做出這個名字了)。

  • 安裝 VirtualBox在你的Windows機器(以下鏈接)
  • 下載並安裝的CentOS(目前版本5.3)在創建的虛擬機

有一點我沒有到這個有可能是1000的大教程那裡(沒關係,這裡有一個: 創建和Managing CentOS的虛擬機下的VirtualBox )。 最重要的一點要注意的是,我想我打電話給我的虛擬機GridMachine。

至於我的選擇虛擬化的客戶端和操作系統去那裡是沒有什麼大的令人信服的理由,每個選擇。 VirtualBox是我用的東西在我家的機器,支持三個主要的操作系統。 我選擇了CentOS的作為它的一個良好穩定的操作系統,我用它在我自己的Web服務器。 我非常相信在正確的工具工作(雖然我在申請'用最快和最簡單的為你的心態在這裡),所以如果你的操作系統運行的X代碼更快更有效地使用它 :)

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

這個過程中你要達到的目的是取得一個新的物理機,安裝 VirtualBox,然後部署幾乎沒有什麼其他的虛擬形象。 這可能是明智的設定所有你的員工在不同的子網,這樣你至少可以看到有多少機器正在運行。 您還需要設置你的機器上長期租賃或租用的DHCP無限。

如何運行的作業的勞動者

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

  • 永遠運行腳本:腳本,無論是一個 shell腳本,或執行一個 PHP腳本一次在工人和運行的一部分,一個無限循環。 我已經貼現此方法,因為一次撞車事故的劇本,你的員工可能會停止運行沒有某種形式的干預。
  • 克龍的腳本執行:每隔X分鐘 cron守護進程啟動一個打電話給腳本來得到的東西去。 如果沒有一些檢查,這可能導致許多許多份你的工人腳本運行。

我的決定是去是用cron啟動一個 shell腳本每10 minutes.Â我的shell腳本執行以下任務:

  1. 獲取進程列表和grep這個'PHP的。 如果沒有找到,那麼繼續。
  2. 打電話給你的工作代碼,在我而言這將是基於 PHP的東西
  3. 工人腳本完成運行
  4. 準備去下一個適當的再次呼籲

我的bash腳本看起來類似如下:

  #!/ bin / sh的
如果ps的斧| grep的- V的grep的| grep的PHP的“/ dev / null的
然後
    迴聲“工作目前正在處理,退出”
其他
    迴聲“作業沒有運行,從現在做起”
     PHP的yourJobProcessingScript.php
科幻 

注:Echo的幾乎是完全沒有意義的,但可以幫助下一個人誰走來,試圖對其進行編輯。

那完成了設立工人虛擬機,快速,簡單,易於複製到每個新的一塊硬件收到。 在'聰明'的電網系統真的不是在可視化的操作系統,它的一切都與代碼創建的處理作業,作業配置,在確保作業運行在適當的時候(即當主機處於閒置狀態)。

設置窗口,以初始化工人

第一項任務是制訂命令來運行虛擬機從 Windows命令行。 如果你已經安裝的VirtualBox在默認位置,你也叫你的工人GridMachine那麼該命令需要加載你的工作是:

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

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

 的“C:\ Program Files文件\日\ VirtualBox的\ VBoxHeadless.exe”- startvm GridMachine -殘疾人复業=關 

這將啟動虛擬機沒有圖形用戶界面,並允許它保存狀態正常。 第二個參數關閉的RDP,因此不會與Windows RDP的衝突,或給你一個消息關於偵聽端口3389。 虛擬機的名稱是區分大小寫的!

下一步,我們將需要設置的窗戶上踢了我們的工人,一旦虛擬機已處於閒置狀態。 要做到這一點(在Windows XP中),你就需要去開始 - >“所有程序” - >附件 - >“系統工具” - >計劃任務如下:

計劃任務

下一步點擊'添加任務計劃,其次是瀏覽添加自定義程序。 瀏覽到您的VBoxManage腳本,然後單擊確定。 安排您的任務任何選項(我們將改變這種一分鐘),然後繼續。 跳繩後下一個畫面窗口會問你誰,你要執行這個任務,我建議你為'管理員'或創造了新的特權用戶。 請記住我們不想干預標準人員佔機器上的任何一點。 單擊下一步,檢查顯示此任務的高級選項。

對於最終的運行文本框加入我們的'startvm GridMachine'字符串,並確保只運行在登錄時留下unticked。 訪問下一個調度任務的時間表,改變下拉的選項'當空閒',選擇的時間量您想將閒置的機器,然後再進入到下一個標籤。

最後勾去掉選擇哪些國家停止任務,如果它已經運行 X數額的時間,但打勾選擇停止任務,如果機器不再閒置。

附表

就是這樣然後對 Windows主機設置!

綜述

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

下次

第四部分 ,我們會關注使用工具,以確保您正在運行最新版本的代碼和數據來源,以便得到的結果始終保持最新與最新的商業信息和邏輯。

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

史蒂芬勞埃德沃特金斯 ,星期五09年12月4日下午11點23分

簡介

本人在一家公司工作,我們批作業處理運行多個記錄的數據以百萬計的每一天,我最近一直在思考的所有的機器圍坐的每一天什麼都不做了幾個小時。 那豈不是好,如果我們可以利用這些機器的處理能力來支持我們的系統? 在這組文章中,我要去看看的潛在好處僱用辦公室電網使用虛擬化環境。

作為PHP的開發者,我要使用的工具,我每天使用,即Linux操作系統, mySQL的 ,PHP中,VirtualBox的和Subversion(SVN)。 但我希望這本手冊將適應其他的語言和技術一樣好。

我提供的解決方案將是非常鬆散型的基礎上處理我們就需要實現不過,這可能不是真的通過整篇文章的事情,我會改變為簡單起見,或產生更有趣的使用方案。

這些虛擬環境將運行在Windows機器上,因為這是大多數辦公室運行。 該辦公室的加工機器做不應該干涉員工使用這些機器,應該不需要保養機器,並很容易地部署到新機器,因為它們變得可用。 此外,新的虛擬機應該不需要任何額外的配置,這大大降低了可擴展性和易用性在哪個網格系統可以延長。

為什麼要部署Office計算網格?

首先,你可能會想,為什麼不直接使用雲計算資源,如亞馬遜的EC2平台 那麼原因可能有幾個,例如:

  • 你不會委託某些數據到雲計算環境
  • 你不能把某些數據為雲計算環境的法律理由(如數據離開該國),可能出於法律原因,如國民保健服務的記錄。
  • 你想讓你的加工單位密切,並已完全控制硬件太
  • 您沒有該項目資金運行情況的雲
  • 你的辦公室並沒有連接到互聯網,因此它無法使用雲資源
  • 你不喜歡雨,雲建議下雨,因此,你保持好遠

我敢肯定,這個名單可以繼續,但我認為這足夠了。

優勢一處計算網格

那麼,讓我們做一些數學(和真正的物理風格讓作出一些籠統的假設)。 想像一下,你有大仡處理服務器上運行,每天100個就業機會。 在你的辦公室你有閒置的50台機器是每天16小時中,這些機器是10%的強大處理服務器作為您的結實。 (所有結果以下四捨五入低估的性能提升)。

因此,一機* 10%的電力* 2 / 3的時間= 0.067即1台式機加工過程中的空閒時間可以充分的工作,每天6。

如果你現在這樣的規模就需要15閒置桌面處理盡可能多的就業機會,每一天都當作你的主要處理服務器一樣。

因此,在我們假裝辦公室50台機器 ,我們可以增加我們的服務器的處理能力從1到4個全處理服務器 ,或者我們可以每天處理400個職位 ,而不是100。

請注意,因為沒有投資於新硬件的公司剛剛增加了批量處理能力4倍 你會潛在增加你的電源使用,但大多數辦公環境,我去過的機器一般都留在一夜之間,所以你可以看到這是一個綠色的倡議。

其他優點還意味著,投資在新的(或更新)處理服務器可以被延遲,如果你的辦公室機器足夠,當你改善你的力量你的辦公室辦公設備變得更加強大的自動網格。

技術

你需要什麼? (或更正確我怎麼使用):

  • 空閒辦公室機器(在我的情況下舊的Windows XP的備用筆記本電腦)
  • VirtualBox的(或其他虛擬化客戶端軟件)
  • 一個虛擬機,使用PHP,mySQL的runningÂ運行減少操作系統,我打電話來,我這一瘸一拐服務器 :)
  • 喬布斯運行
  • 作業服務器(可以是另一個虛擬機的地方)

典型工作

該類型的工作,該系統被設計為運行情況如下:

  • 系統接收數據的列表後,我們需要匹配並返回結果
  • 選配涉及檢查 /搜索數(相當靜態)數據源
  • 結果從數據源可能需要進一步驗證,合併,檢查其他數據源的反應結果
  • 返回數據相匹配的記錄,充分驗證和處理
  • 每個記錄在一個工作是獨立於其他

所以基本上我們看到的正在運行的作業需要的混合物數據庫查找和一些數字計算,一個相當典型的場景是在商業環境。

網格解決方案不僅有利於處理這種類型的工作。 基本上,任何過程,可以分為獨立單元可並行運行。 看到這個維基百科的例子和更多的信息: 網格計算 ,但夫婦的例子是著名的SETI @ homeBIONC 有框架運行計算網格,這些都是值得研究的。

我們會怎樣實現?

到年底,這些文章我希望展示廳部署電網不需要非常昂貴或費時。 我將討論:

  • 設立作業控制系統,作業的配置
  • 建立適當的處理虛擬機
  • 如何設置基於 Windows系統的機器
  • 確保您使用的是最新的代碼和數據
  • 部署和基準
  • 展望未來

我會大樓(確定我建,並寫這個)一個示例應用程序來測試的概念在本地計算機使用Windows XP和我的'GridMachine的虛擬機。 我的工作控制服務器將是我的主要機器,運行Fedora的11

這絕不是為了充分展示了強大的系統工作,它意味著更多的示範和討論顯示,這些東西都可以實現在一個相當短的時間和空間較小的代價。 請隨時給我任何意見,更正,或改善,我會盡我所能,讓這文章的更新相匹配。

下次

第二部分首先,我會著眼於作業控制系統,並研究如何工作應配置,以達到最大的處理量,同時確保每個作業處理不許失敗。

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

史蒂芬勞埃德沃特金斯 ,星期五09年12月4日下午11點23分

簡介

本人在一家公司工作,我們批作業處理運行多個記錄的數據以百萬計的每一天,我最近一直在思考的所有的機器圍坐的每一天什麼都不做了幾個小時。 那豈不是好,如果我們可以利用這些機器的處理能力來支持我們的系統? 在這組文章中,我要去看看的潛在好處僱用辦公室電網使用虛擬化環境。

第一部分我給了系統的概述和技術我會用,以及討論了一些潛在的原因,你想創建一個Office網格。

作業控制

如果你要運行的工作,然後你會需要一些方法來管理它們。 你的任務控制系統(在你的作業服務器)需要,真正做到深思熟慮之前,甚至試圖運行一個辦公室的網格。 所以,首先,什麼是任務控制系統的工作:

  • 伸手從工人的工作提出要求
  • 告訴工人什麼類型的工作運行
  • 跟踪工作
  • 確保作業只運行一次
  • 為工人提供就業數據,或者至少告訴他們在哪裡得到它

該系統還需要具有可擴展性,一個解決方案,工程正處在一個單一的情況下可以延長至運行多種類型的就業機會的企業認為值得在網格的解決方案。 例如,可能會獲得優先就業,多個工種可能存在(即幾個代碼基地),最終你甚至可能會出現幾個不同的工作機器,優化了每個類型的工作(雖然從沒有搬走的共通工人'的想法)。 總是試圖在思考未來發展的系統中,短期目標會導致長期的沮喪和更多的發展時間。

作業服務器

我們將需要一個地方來控制我們的工作從,這應該是唯一的系統在你的網格,它有一個固定資源定位器,是一個 IP地址,主機名稱,URL(使用內部 DNS)等,這是因為工人需要知道在哪裡找工作,工人們需要找到作業控制系統(未找到工作的工人控制系統)。

作業服務器本身並沒有真正有一個複雜的任務(在基本制度無論如何),它需要存儲一個列表的工作,手出的工作,接收結果,隨後它們存儲供日後檢索。 如何將這些部件(如'失控喬布斯)的定義可以是很基本的。 後來我們可以擴展系統,包括一個管理界面來添加,編輯,刪除,暫停工作,但是這已經超出這個練習。

沒有任何理由,然後,你的工作服務器不能是一個虛擬機運行在主服務器進行處理提供它不會消耗太多的資源了。 但是這項工作確實需要服務器的高可用性,如果它出現故障的星期五晚上你將失去整個週末的處理,你可能花費幾個星期的處理時間價值(相比,​​您的主服務器進行處理單) 。 您可能要考慮將你的工作服務器負載平衡環境中的高可用性。

基本設置

基本設置服務器為我們的工作將包括一個什麼我打電話,我癱軟服務器 (即馬錢, 米ySql,磷馬力)。 該代碼將運行在西婭工人實際工作了什麼工作,它可以運行與工作的互動與控制系統數據庫。 後來,我們可以創建一個Web服務和工作實際不可收拾,而不是讓工人自己做艱苦的工作,但現在我們將繼續使用KISS原則 (保持簡單,愚蠢!)。

因此,讓我們創建三個mySQL的表來處理工作。 這些工作將是``,`jobRecords`,`和`jobResults。

工作表 在這裡,我使用的SQL巴迪一個偉大的小的替代phpMyAdmin的只是因為它更容易安裝在CentOS(對於別人看: 10大phpMyAdmin的替代品

此表由5個簡單的領域,

  • 編號:唯一標識工作
  • 名稱:也許是客戶參考,或任意數量的其他標識
  • 狀態:你要知道在那裡的工作是,如
    • 0:未開始
    • 1:撿到
    • 2:已完成
  • started_by:誰開始做這項工作嗎? 這是必須的,但不完全是一個不錯的。 我建議由工人跟踪他們的IP地址在網絡上
  • started_at:什麼時候工人開始上班? 通過跟踪未完成的作業量在X的時候,我們知道我們需要拿起工作,並開始再次加工的另一名工人。 工人可以停止處理 /離線的任意數量的原因,停電,死機,網絡損失等

這是很容易如何表可以延長一些額外的字段,以便統計跟踪,完成時間列,了解工作多久了,計數器,看看有多少工人拿起工作(顯然,這往往需要1),作業的優先級,名單可以繼續下去。 在更複雜的工作方案將有可能指定多少內存工人將需要訪問(因此只使用合適的工人),甚至是什麼類型的工人將是必需的。

讓我們添加一些示例工作:

例如工作

下表又是很容易理解,這些都是我們的工作記錄。 它們鏈接到的主要工作表中的列`jobs_id`。 美容,本表在很大程度上取決於你需要的數據提供給你的員工,讓做一個很簡單的例子,我們有四個列:

  • 身份證:身份證的記錄
  • 名稱:人的姓名
  • 地址:人的地址
  • jobs_id:工作記錄的ID,這是與

第三個也是最後一個結果表包括表,它有許多相同品牌,作為我們的記錄表,並與另外一些列可以是兼職的記錄表:

  • job_record_id:鏈接的結果對工作表
  • 結果:結果數據

...這就是你需要的作業控制! (雖然在一個非常基本的水平)在我的情況下,我指著我的另一個表中的數據處理的位置,但是這也很容易被一個文件,參數運行模擬程序,你的名字。

選擇工作

如前所述,工人將盡我們的工作為我們現在的管理,所以我們真的需要做的是找到一份工作,需要處理和獲取信息。 我們怎麼做呢? 挑好了我們的工作的選擇標準和尋找工作,在SQL我做了以下幾點:

  1. 採取任何作業未標記為完成,但我們的工人和重置它們(替代__ME__同一個標識符,最簡單的將是IP地址):
     更新`工作`設置`地位`= 0,其中`地位`和`started_by = 1`= __ME__; 
  2. 用我們的工作選擇標準,選擇工作,告訴控制系統,這個工人是處理它:
     更新`工作`設置`地位`= 1,`started_by`= __ME__,`started_at`=現在()凡`地位`= 0或
     (`地位`和`started_at = 1`> DATE_SUB(現在的(),間隔 x小時))的量級的`id`升序; 

    通過抓工作還沒有返回的結果在X的時間量,我們確保所有的工作都是運行在崩潰的事件或去工人擅離職守。

  3. 下一步的工作細節抓起其次是記錄自己:
     選擇 *從`工作`其中`started_by`= __ME__極限 1;
    選擇 *從`job_records`其中``= __JOBID__身份證; 

這項工作完成後,我們插入我們的結果記錄和標記為已完成的工作。 記得作業可以暫停 /恢復在任何時候允許一些穩健性的腳本。 這可能是該任務中途中止更新作業控制系統,使檢查的記錄數在一份工作,結果數保存到作業控制系統將是一個明智之舉。

此外,雖然這項工作可以演示了如何選擇和管理,從一個SQL的查詢框,你真正應該抽象你的工作控制,因此,如果你決定轉而使用一個Web服務,基於文件系統, XML的 ,或任何其他數的系統也不會影響它上面的代碼。

作業配置

下一個方面要考慮的是作業的大小和配置。 透過扮演與工作配置,我們能夠取得良好平衡的速度,進程複製和可靠性。 以一對夫婦 ofÂ情況:

  1. 喬布斯以1天每次運行:這意味著你的員工需要15天時間來處理每一個工作(記得10%的功率2/3rds的時間)。 這顯然不是一個明智的配置,你的工作的大小是太大了! 這將需要至少增加一倍的時間去處理工作應走的初始工人擅離職守(時間拿起它並沒有回加後處理結果的時間)。 在一個理想的你至少有一個完整的工作easily清除最後的每個長的空閒時間,這樣你的工作保持持續運轉,在最壞情況下工作需要兩天的過程中應首先失踪。
  2. 喬布斯需要1分鐘,運行:這意味著你的員工大約需要15分鐘才能運行每個作業。 雖然這最初可能似乎理想,你獲得額外的處理在工作午餐時間,茶點,會議等等這種情況下把其他領域的應變系統,介紹了其自身的問題。 例如,首先您的設置 /處理時間比還將會持續下去的權力下放,因此失去了系統效率。 您的網絡將是不斷流工作信息工作人員的各種令人沮喪的工人誰是毛澤東的日常工作​​。 你也將會把更多的應變處理服務器上的工作,因為它炮製出很多,很多小件作品定期。 最後,在這種情況下如果你的工作服務器停機你將創建一個巨大的回未完成的工作日誌,而更大的就業機會,可以繼續處理工作開心的不知道該服務器遇到的困難。

在現實中不​​會有一個理想的配置為您的網格設置,在很大程度上取決於可用的資源,類型的作業,作業周轉時間的要求,網絡功能等。 然而,有些準則是:

  • 大小工作,這樣每個工人可以通過至少3-4在一段時間內的工作15個小時(最長可能空閒時間)
  • 玩作業大小,使安裝時間變得相當微不足道相比,處理時間(銘記上述點)。
  • 如果工作沒有完成的時間量的兩倍(也許更少),你期望它來完成它認為它不再擅離職守,並開始處理它與另一名工人。 這意味著你可能要等上三倍的正常長度為它的工作完成(可能更長如果後續工作失敗)。 您可能要減少這種時間,但要小心不要減少太多,你可以開始複製的處理任務定期。
  • 喬布斯應該是獨立的外部要求盡可能。 作業服務器,例如,只應接觸的開始和結束每一項工作。
  • 不飽和您的網絡,這將有兩方面的負面影響,你白天的工作人員將使用網絡找到令人沮喪和問題可能會遇到與連接超時的問題只會變得更糟,你縮放網格。
  • 確保作業可以運行在自己的工人。 如果工作過於密集的內存或磁盤空間密集的工作將開始中止,唯一你會發現在數量上是一個下拉處理的工作,沒有真正原因。

提交結果求職

當提交一份工作的結果是很重要的檢查結果沒有被提交的其他工人,特別是如果目前的工作已經休眠一段時間。

當結果提交確保結果的數量相匹配的記錄數內的工作。

如前所述,而不能過分強調,建立容錯檢索到的工作和成果提交。 工人可以(而且很可能會)進入掛起模式在最不方便的時間,這需要被照顧。 還再次提取了你的結果提交將有助於應付未來的變化對你的工作更容易控制系統來處理。

綜述

在這 sectionÂ我們看到什麼工作需要做的控制服務器,以及如何得到一個非常基本的系統設置。 我們討論了如何檢索工作從控制系統以及如何最好地配置工作,以獲得最大的我們對您的辦公網系統。 要完成,一個段落或兩個提交結果返回到工作,提出了控制服務器。

  • 一個作業控制服務器管理工作,確保完成各項工作單位
  • 通過抽象你的工作選擇 /結果提交的技術,我們可以改變的控制服務器,沒有什麼問題
  • 配置您的工作,以確保它們運行快速,高效地沒有把太多的壓力,您的網絡基礎設施,但不重複處理任務定期。
  • 確定你建立容錯和錯誤 checkingÂ到您的程序,工人可以暫停,恢復和最不方便的時候。 記住要檢查的結果已經提交了另一名工人。

下次

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

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

史蒂芬勞埃德沃特金斯 ,星期五09年12月4日下午11點03分

簡介

本人在一家公司工作,我們批作業處理運行多個記錄的數據以百萬計的每一天,我最近一直在思考的所有的機器圍坐的每一天什麼都不做了幾個小時。 那豈不是好,如果我們可以利用這些機器的處理能力來支持我們的系統? 在這組文章中,我要去看看的潛在好處僱用辦公室電網使用虛擬化環境。

第四部分 ,我們看了看使用工具,以確保我們執行的是最新版本的代碼和數據來源,以便得到的結果始終保持最新與最新的商業信息和邏輯。

部署前

在部署你的電網系統,如果有一件事你做的一件事情單獨看它的基準當前的系統 不管你告訴同事多少額外的工作,你的系統是要幹什麼,除非你有編號,以支持這一都不是您的保證。 所以,

  • 你有多少記錄可以處理目前? 每節? 每小時?
  • 多久通常需要扭轉工作?
  • 多少能力,你呢?

另外還有額外的問題:

  • 如果您的服務器進行處理(或您的一個處理服務器)下降這將如何影響你的能力,你會被削弱?
  • 你希望什麼優勢 /希望得到一個網格系統?
  • 是你的辦公室機器能夠運行的工作?
  • 是你(或你的工作可以被轉換),以這種方式工作的運行?

最後一個主要的一點是要慢慢來的任何重大改變這樣。 更新您的處理代碼以使用新的方法,基準了。 您可能設置處理服務器運行虛擬機,所有的服務器進行處理後,將只是另一個人(只是一個非常強大的一個相對)。 允許新的進程來解決。

部署

我的建議是將彈出一個週末走進辦公室執行所有的設施和設置。 這樣做只是在一兩個星期的假期,休假等其他貧困章處理的後果 ... ...也許不

部署這樣一個系統需要很慢。 儘管它是相對簡單的設置,這個系統將影響您的整個辦公室的基礎設施(以及數字之一)。 首先,推出的機器向一對夫婦在同一時間,監控網絡流量,如何工人的主機上執行日常的日常基礎。 您可能需要改變你的工作配置,響應你的發現。

一旦系統已解決了幾台機器(可以說 10%的辦公機器,即5)繼續監控網絡流量和主機 performance.Â下一步基準再次,你現在應該處理更多的就業機會超過 33%,你的第一個基準。 檢查是這樣的話,或者你至少在這個球場。 如果不是,調查到底是怎麼回事,然後再進入。 重複這個循環,直到你幸福都辦公室機器運行沒有造成個人或研磨機的性能您的網絡癱瘓。

在任何時候保持基準,即使在所有部署而作出調整。 檢查有新的代碼更新會影響你的系統速度,檢查所有工人都在報告和處理工作。 慢慢地(非常緩慢)遞增你的工作,以獲得最佳的配置,從您的工作人員和網絡。

住手!

如果你要停止你的員工在運行一段時間? 他們都在那裡運行,再生,並盡力處理數據,如飢餓的昆蟲。 答案似乎顯而易見,但它的價值增加,以防其被忽視。 您只需編輯處理腳本退出(0)或死亡()或其他聲明殺死你的處理工作。 一個重要原因,我們總是試圖更新到最新的處理腳本之前運行!

演示系統

為了寫這一套短文章我創建了一個非常小網格展示的技術和方法。 我看了很多文章,教程和使用各種工具來設置和監視是怎麼回事。 決不走了出來,我已經全廳飽和交通和NOR,我曾訪問一個普通工作人員,看看電腦主機性能受到影響。

我的演示系統的確是非常謙虛。 我用我的桌面設置為工作控制服務器。 關於這個我已經安裝mySQL的服務器上安裝設置為掌握複製, PHP中 ,A和svn鏈接通過阿帕奇 (用於訪問虛擬機通過工人)。

然後,我創建了一個 CentOS的輔助計算機對 VirtualBox在6歲的Windows XP的筆記本電腦。 我設置為指定的計劃任務後,複製到虛擬機,讓他去。

虛擬機是建立與 PHP,顛覆,和MySQL。 我檢查了一科名為'工人'從我的工作控制服務器庫並確保它也可以被更新使用'svn更新'。 接下來,我安裝 MySQL作為一個奴隸,並檢查這些數據是從 MySQL複製控制服務器上的工作人員下到虛擬機。 畢竟這是我設置的bash腳本和cron作業。

我的處理腳本基本上順著這一行(很簡單的東西):

  • 在名稱字段中讀取
  • 清點人數的類似名稱表中的數據源中的VM上舉行
  • 清點人數,但上面的名字分裂名稱空間(即用的名字,中,姓)
  • 重複這個過程 1000次

每個作業花了大約 20分鐘運行。 有一次,我打開了幾本,工人虛擬機上的Windows筆記本電腦上,看著關閉工作進行檢查每個工人的IP地址。 在這一點上我也證實,複製自動重新啟動。

離開筆記本電腦閒置造成一名工人開始從作業處理作業控制服務器。 恢復時使用筆記本電腦有一個延遲約 30-60秒,這是一個相當的時間和工作人員需要作出意識到他們的機器可能會暫停一段短時間當返回到本機。 較新的機器可能沒有停頓這麼久。 的好處和金額進行處理,這些機器在空閒時間會更是得不償失的工作人員不必等待很短的時間(比如1分鐘)到達他們的機器上的一個早晨(我經常等待更長的時間,這為 Windows Defender的更新發生)提供的,他們是由知道這個(有用的時間搶一個上午的咖啡!)。

總的來說,我覺得有信心,我已經證明的技術,可用於建立這樣一個系統。 我已經表明,這種系統可以工作在一個(非常)小規模試驗,並與一些更可利用的資源,擴大規模的一間辦公室的機器。 如果我沒有進入正題做這個,我會非常有興趣知道/時看到別人一樣。

結論 /評估

下一個明顯的步驟將是真正得到一個真正的世界的例子,並開始部署這一系統,如在一個辦公環境,看看會發生什麼。 要求一個企業要承擔這個公司沒有線索證明熾烈的技術和效益可能會有點困難。 網格/分佈式計算是很受歡迎的某些圈子裡,並有一些大型應用程序(BIONC,SETI @ home的,Folding @ Home的,等等)。 我沒有,但是,找到一個簡單的系統規模較小,像這樣在我的搜索推出了可在一個辦公環境。

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

一旦系統啟動並運行,幾乎沒有盡頭的金額定制和改善你可以。 例如統計數據 /基準可以很容易地添加,顯示這種制度值得每一天。 新機器可以增加快速,輕鬆地到達時對現有硬件進行升級 bolstering你的處理能力。

我希望你喜歡閱讀這個系列的文章,其給你回味無窮運行辦公室電網系統。 這裡提出的解決方案並不一定適用於所有情況,但應該適應,讓您得到您的數據處理通過使用自己的解決方案。

請隨時給我任何意見,更正,或改善,我會盡我所能,讓這文章的更新相匹配。

[公告]孩子的pid XXXX的退出信號分割故障(11)

史蒂芬勞埃德沃特金斯 ,星期日09年10月11日下午6時09分

如果你最近升級的PHPApache的 ,你是來對付這個問題你的網絡服務器返回空白頁,並投擲到你的日誌錯誤信息和不知道為什麼,這裡是一個可能的方法來解決它...

我一直有這個問題的時候一對夫婦最近在升級後的Apache或PHP的虛擬機。 我第一次發現的錯誤我只是回复到我的虛擬機備份,但第二次我意識到我不得不研究的問題。

我第一次注意到這個問題我的一些網頁被作為空白文件,而其他的工作絕對罰款。 經過一番調查,我注意到,Apache是​​寫出到/ var /日誌 /的HTTP /錯誤日誌以下消息repeatidly:

[公告]孩子的pid XXXX的退出信號分割故障(11)

這裡沒有配發去上線,和最小徑關於它的網頁關閉落空。 不過,我縮小到PHP崩潰的問題時,試圖不需要的動態庫。

回顧我的php.ini(/等/ php.ini中)我註釋掉所有的動態庫加載的規劃早在評論他們的要求。 這兩個我不得不拿出其中pdo.soMySQL的 。如此

一旦這些被拆除,我所有的網頁是被服務很好,只是像以前的PHP / Apache的更新。

無線宏碁5002 WLMi在Linux(Fedora的11)

史蒂芬勞埃德沃特金斯 ,星期六09年7月11日下午9點48分

正如我今天又花了幾個小時,沒有互聯網,我想我最好把這個寫下來,以便下次我亂了我的筆記本電腦註冊信息很容易修復。

基本上無線驅動程序工作取得的Acer 5002 WLMi你需要使用的B43 - fwcutter。 說明可以在這裡找到: Linux無線的B43

簡易一旦信息的位置。













全景主題 Themocracy

現在 5訪客在線
4位客人,一機器人,0位會員
最大遊客今日:15日上午8時 24分聯合技術
本月:26日2011年7月5日上午12點 35分聯合技術
今年:130 28-03-2011下午10時 40聯合技術
所有時間:130 28-03-2011下午10時 40聯合技術