O serviço hospedado do Windows Azure usa transações de armazenamento

1

Estou apenas no processo de transferência para o Windows Azure. (Apenas porque eles têm apenas o SQL Azure e você não pode vencê-lo).

Eu tenho um serviço hospedado (instância implantada de um aplicativo da web) e está passando bem.

Eu notei que também criou uma conta de armazenamento. Eu não estou usando ou chamando nada dessa conta de armazenamento (ou assim eu pensei). Eu não faço referência a quaisquer bolhas. Na verdade, meu aplicativo da Web nem sequer cria arquivos temporários.

Mas olhando para o meu faturamento, estou acumulando transações de armazenamento para o Armazenamento do Windows Azure. Eu só estou no Azure há alguns dias e acumulei 12.000 transações.

A minha implantação está sendo usada e eu sou cobrado toda vez que uma página aspx é chamada para ser carregada? Será cobrado quando eu implantar (como já fiz algumas vezes, enquanto o tenho testado).

Alguém poderia, por favor, informar-me de onde vêm essas cobranças?

    
por Adam 26.02.2012 / 04:08

2 respostas

2

Sua implantação não está causando 12.000 transações. Isso está causando talvez 5-10 (como pode haver várias leituras de bloco, dependendo do tamanho do pacote de implantação).

Quando você implanta no Windows Azure, precisa de algum modo de monitorar seu aplicativo externamente. É aqui que o Diagnóstico do Windows Azure entra em execução. Todos os seus logs de diagnóstico, contadores de desempenho, instruções de rastreamento, etc. do Windows Azure são gravados no Armazenamento de Tabela (ou armazenamento de blob, no caso de logs do IIS).

Se você acumulou 12.000 transações em, digamos, 3 dias, a média é de 2 a 3 por minuto. Nesse ritmo, você acumula cobranças de cerca de 12 centavos por mês.

Se você quiser reduzir o número de transações, você mesmo pode configurar diagnósticos, em vez de confiar nos valores padrão (sejam eles quais forem). Por exemplo, aqui está uma configuração bem simples que poderia ser encontrada em OnStart() :

 DiagnosticMonitorConfiguration diag = DiagnosticMonitor.GetDefaultInitialConfiguration();
            var perfCounter = new PerformanceCounterConfiguration()
            {
                CounterSpecifier = @"\processor(*)\% Processor Time",
                SampleRate = TimeSpan.FromSeconds(30)
            };


            diag.PerformanceCounters.DataSources.Add(perfCounter);
            diag.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(5);

            diag.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = LogLevel.Error;
            diag.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = TimeSpan.FromMinutes(5);

            diag.Logs.ScheduledTransferLogLevelFilter = LogLevel.Error;
            diag.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(5);

            DiagnosticMonitor.Start(CloudStorageAccount.DevelopmentStorageAccount, diag);

Embora esses valores sejam arbitrários, o ponto-chave é que as transferências para o armazenamento de tabela (ou Blob) agora ocorrem apenas uma vez a cada 5 minutos, por tipo de objeto. Observação: se você tiver várias instâncias em execução, também terá vários uploads para armazenamento .

    
por 29.02.2012 / 16:23
0

Bem, finalmente descobri por que e aqui está a razão para o caso de outros se depararem com a mesma preocupação.

Estou fazendo o upload por meio do Visual Studio. Para fazer upload, o Visual Studio cria uma conta de armazenamento e carrega o pacote de implantação lá.

Esse é o motivo da conta de armazenamento e por que há atividade nela.

Depois que tudo estiver implantado, você estará livre para excluir a conta de armazenamento e tudo o mais continuará funcionando. No entanto, você precisará criá-lo novamente na próxima vez que implantar.

    
por 27.02.2012 / 05:14

Tags