This is a small guide that may help you save money when using AzureProviders. In addition you should read guides on how to save costs in general on the Azure platform.
Checking for dead worker roles
The MultiThreadedWorkerRole project has one thread for each worker role, plus one "servant" thread that monitors if all the threads are ok, restarting them if they have died. This servant sleeps for
(in app.config) seconds between each time it checks if the worker role threads are dead. By default it checks every 4 seconds, which in most cases is overkill increasing this could save you computing cost.
Turning off session provider
If you are not using sessions, ie. your code does not use any session"something"
code, then you can disable it by removing
it from you web.config definition, this can save you computing-, and table storage transaction costs.
E-mail worker role
By default the e-mail worker role checks for new e-mails to send on the queue every 60 seconds, as specified in
in the app.config file. In some cases letting the users wait more than a minute for an e-mail is just fine, increasing it could save you computing costs.
Session-state worker role
The session-state worker role has one task; to remove expired sessions from the table storage. By default it checks for expired sessions every 60 seconds, this is probably overkill in most cases. Increasing
as defined in app.config may save you computing-, and table storage transaction costs.
Azure Diagnostics logging
(Only applicable for V1.7 or later) Azure Diagnostics logging is so transaction expensive that it should only be used in development, or for testing purposes, and should only be used in a production environment in very special scenarios. You can turn it off
by removing its configuration from web.config and app.config plus removing the calling code from both WebRole.cs files.