2016-12-02 3 views
0

vCPUとメモリのアップグレードをhourlyVirtualGuestホストのコレクションに呼びます。私は、一度に何人いるかによって、エラーを発生させずに完了することができない要求がいくつかあることがわかりました。hourlyVirtualGuestsアップグレード/ダウングレードレスポンスが低下しました

私の現在の論理は、10のアップグレード/ダウングレード操作を送信してから一定期間スリープすることです。ループで60秒間寝ると、すべてが正常に終了します。スリープ状態を30秒にすると、すべての要求は受け入れられますが、複数の要求は完了しません。私は睡眠の値で遊ぶことができますが、これらの要求のサブセットが警戒なしで落とされるという事実は心配です。どこかで待ち行列があふれていますか?

答えて

0

問題が奇妙な場合は、すべてのアップグレード要求を1つの順序でまとめて、何が起こるかを確認することができます。

placeOrderメソッドのコンテナには、「orderContainers」というプロパティがあり、アップグレードオーダーのリストを設定できます。

は、私が同じ順序でresquestsをアップグレードするために追加してい、SOFTLAYER Pythonクライアントを使用して、この例に見てみましょう:面白い

""" 
Upgrade VSIs. 

Important manual pages: 
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Order 
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Order/placeOrder/ 
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Order/verifyOrder/ 


License: http://sldn.softlayer.com/article/License 
Author: SoftLayer Technologies, Inc. <[email protected]> 
""" 
import SoftLayer 
# For nice debug output: 
from pprint import pprint as pp 

# Your SoftLayer API username and key. 
USERNAME = 'set me' 
API_KEY = 'set me' 

virtualGuestId = 26252013 
virtualGuestId2 = 26252013 

# Setting the configuration for a upgrade a VM 
orderContainer = {} 
orderContainer['packageId'] = 46 
orderContainer['complexType'] = 'SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade' 
orderContainer['virtualGuests'] = [{'id': virtualGuestId}] 
orderContainer['prices'] = [ 
    # Upgraqdes prices 
    { 'id': 1644 } 
] 
orderContainer['properties'] = [{'name': 'MAINTENANCE_WINDOW', 'value': 'now'}] 

# Setting the configuration for a upgrade another VM 
orderContainer2 = {} 
orderContainer2['packageId'] = 46 
orderContainer2['complexType'] = 'SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade' 
orderContainer2['virtualGuests'] = [{'id': virtualGuestId2}] 
orderContainer2['prices'] = [ 
    # Upgraqdes prices 
    { 'id': 1644 } 
] 
orderContainer2['properties'] = [{'name': 'MAINTENANCE_WINDOW', 'value': 'now'}] 

#adding the upgrade orders to the container 
orderData = { 
    "orderContainers": [ 
     orderContainer, 
     orderContainer2 
    ], 
    'complexType': 'SoftLayer_Container_Product_Order' 
} 

print (orderData) 

orderClient = SoftLayer.Client(
    username=USERNAME, 
    api_key=API_KEY 
) 

try: 
    result = orderClient['Product_Order'].verifyOrder(orderData) 
    pp(result) 

except SoftLayer.SoftLayerAPIError as e: 
     pp('Unable to upgrade the VSI faultCode=%s, faultString=%s' 
      % (e.faultCode, e.faultString))#!/usr/bin/env python 

よろしく

+0

を。私は今、このアイデアを試して、APIに反することなく、どれくらいのアップグレード要求を所定の順序で実行できるかを確認しようとしています。どのような種類の制限が適所にあるのでしょうか?私は1回で50回のアップグレードはできないと思っています。 – Gary

+0

追加の質問として、「価格」属性には問題があります。与えられたDCの特定のアイテムに対してこの値を列挙する方法はありますか?この番号はあなたの現在のDCに応じて変わるので、潜在的に多くのオプションがあります。 – Gary

+0

私は分かりません、私は一度にその金額を注文したことはありません、ドキュメントは限界についてanythinを言っていないので、一度に50以上のアップグレードを注文できるはずです。 –

関連する問題