AWS搭建Condor彈性計算平臺

1.選擇一個AMI,建立一個AutoScaling組,在AutoScaling組中可以設置最小機器數量,最大機器數量。AutoScaling組中擴展機器時,是按照剛開始的AMI建立新機器的。

2.在AWS的服務裏選擇->CloudWatch,如圖,選擇一個指標,這裏選擇SQS,選擇指標,這裏選擇的是接收的消息數量,填上警報名稱和描述,在操作的區域選擇當此警報正常時發送通知到某個擴展策略或縮小策略,然後創建警報



3.爲AutoScaling組添加擴展策略,執行策略的條件是觸發步驟2中的警報,如下圖所示。可以設置每當警報觸發AutoScaling擴展的數量。



4.到此,AWS的Service的設置以及全部完畢。這裏要做到的是根據Condor的任務情況進行彈性計算,實現方法是檢測Condor要處理的任務數量,當任務數量大的時候,向SQS發消息觸動警報,AutoScaling組自動擴展;當任務數量小的時候,向SQS發消息觸發另一個縮小的策略。在Condor_master機器通過condor_status和condor_q這兩個命令的輸出做監控的工作。

這裏的做法如下:

condor_status | grep slot > filename.txt //把condor_status中跟機器相關的輸出寫到filename.txt中

cat filename.txt | wc -l //統計現在Condor集羣中現存的機器數量

同理,也能統計出等待的任務數量,當等待的任務數量/現存的機器總數超過某一個數,就可以向SQS發送消息

5.Condor_master的EC2向SQS發送消息的方法在下面連接中有詳述

http://blog.csdn.net/yuan13091324/article/details/50508743

步驟5中的python命令行(向名字爲queue-name的隊列發消息)綜合起來如下:


步驟4中統計現存的機器總數的python代碼行如下,原理是跟機器數量相關的行寫入testxx.txt文件,然後用cat統計出行數賦值給一個記錄行數的變量即可:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章