Frage

Windows Azure VMs have bandwidth limits. ExtraSmall has 5Mbps while the others are in multiples of 100Mbps.

I have a worker role that gets jobs off a queue. The jobs have low cpu needs but high network needs like getting stuff from a remote webservice and writing to table storage. I need a way to limit my code from getting more jobs from the queue IF the 5Mbps limit (or 90% of it) is currently in use.

From the Windows performance monitor, the "\Network Interface(*)\Output Queue Length" is constantly zero.

What are my options? Any direction would be highly appreciated.

War es hilfreich?

Lösung

I would query the built in performance counters inside of your code and use the result to back off. If the "Network In" metrics doesn't cut it for you, you can always create a custom performance counter. Here is a link to a page on WindowsAzure.com on how to to query counters and how to build custom counters.

I've struggled with this too: \Network Interface(*)\Output Queue Length" is always 0, even though it is a built in performance counter. I keep an eye on "Network In" and set alerts in the portal.

The rule of thumb in Azure is 100mbps per core, and because an extra small uses a "shared core" you even more constrained. On the plus side, extra small sized VMs are super cheap to run!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top