Экспорт (0) Печать
Развернуть все

Диагностика и устранение неполадок кэша на основе ролей (Кэш Azure)

Обновлено: Июль 2010 г.

Сбор диагностических сведений в приложениях Кэш в роли настраивается по уровню диагностики. Он представляет собой единый параметр для настройки уровня сбора данных. В этом разделе описываются действия по диагностике и устранению неполадок в приложениях Кэш в роли.

Приложения, работающие в , — это распределенные многоэкземплярные системы, которые может быть сложно отлаживать. Для них требуется нечто большее, чем стандартные подходы и средства. Устранение неполадок в приложениях выходит за рамки этого раздела, но дополнительные сведения можно найти в статье Устранение неполадок в Azure или Диагностика и отладка в Azure. В этих разделах описаны проверенные способы устранения неполадок и даны ссылки на более подробные сведения и рекомендации. Дополнительные сведения просмотре полученных диагностических данных см. в разделе Хранение и просмотр диагностических данных в Azure.

Для настройки сбора диагностических сведений в приложениях Кэш в роли требуется настроить уровень диагностики и диагностику кэша при запуске роли. В этом разделе описываются действия по устранению неполадок в приложениях Кэш в роли.

Кэш в роли предоставляет пять уровней диагностики, используемых для настройки объема собираемых диагностических сведений. Используются уровни диагностики от 0 до 4, и номер указывает, какой объем диагностической информации собирается для серверов кэширования и клиентов кэша. Каждый уровень диагностики содержит заданный набор счетчиков производительности, журналов событий, параметров трассировки и аварийных дампов, используемый для наблюдения за работоспособностью приложения Кэш в роли.

 

Уровень диагностики Собираемые диагностические сведения

0

Только критические и катастрофические журналы сервера.

1

Диагностические сведения, помогающие в оценке шаблонов использования, работоспособности кэша и потенциальных ошибок. Это значение используется по умолчанию.

2

Диагностические сведения с детализацией по всем запросам и важными системными данными.

3

Диагностические сведения с большей детализацией и системными данными.

4

Самые подробные журналы со всеми запросами и системными данными.

Существует два типа уровней диагностики клиентов: для диагностики клиентов кэша и серверов кэша. DiagnosticLevel используется для диагностики серверов кэша, а ClientDiagnosticLevel — для диагностики клиентов кэша. Каждый уровень настраивает разный набор счетчиков производительности, журналов, трассировок и аварийных дампов. Эти уровни диагностики настраиваются в файле ServiceConfiguration.cscfg для приложения и могут изменяться для работающего облачного приложения просто путем развертывания обновленного файла ServiceConfiguration.cscfg.

Уровень диагностики серверов кэширования для кластера кэша указан в файле ServiceConfiguration.cscfg в разделе конфигурации для роли, в которой размещен кластер кэша. Этот параметр добавляется Visual Studio, когда кэширование включается на вкладке "Кэширование" для роли и уже существует, когда Cache Worker Role добавляется в проект. Значение по умолчанию DiagnosticLevel — 1, а если DiagnosticLevel в роли отсутствует, то используется значение DiagnosticLevel, равное 1. Чтобы изменить DiagnosticLevel, измените параметр DiagnosticLevel для роли в файле ServiceConfiguration.cscfg. Следующий пример — раздел WorkerRole1 из файла ServiceConfiguration.cscfg, где DiagnosticLevel равно 1.

<Role name="WorkerRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

В следующей таблице приведены диагностические данные, собираемые на каждом уровне диагностики.

 

DiagnosticLevel Собираемые сведения

0

  • Уровень журнала: Critical

  • Нет счетчиков производительности

  • Не зарегистрированы журналы событий

  • Минимальные аварийные дампы

1

2

3

4

noteПримечание
При выполнении приложений Кэш в роли в эмуляторе данные трассировки всех экземпляров роли собираются в папку *_IN_0, даже если запущено несколько экземпляров роли. Это предусмотрено алгоритмом программы. Если приложения Кэш в роли размещены в , данные трассировки каждого экземпляра роли расположены в соответствующих папках экземпляров роли.

Уровень ClientDiagnosticLevel для клиента кэша указан в файле ServiceConfiguration.cscfg в разделе конфигурации для роли, которая является клиентом кэша. Этот параметр добавляется пакетом NuGet для Кэш в роли при настройке роли в качестве клиента кэша.

noteПримечание
Дополнительные сведения настройке клиентов кэша с помощью пакета NuGet для Кэш в роли см. в разделе Configure a Project for Caching on Roles.

Значение по умолчанию ClientDiagnosticLevel — 1, а если ClientDiagnosticLevel в роли отсутствует, то используется значение ClientDiagnosticLevel, равное 1. Чтобы изменить ClientDiagnosticLevel, измените параметр ClientDiagnosticLevel для роли в файле ServiceConfiguration.cscfg. Следующий пример — раздел WebRole1 из файла ServiceConfiguration.cscfg, где ClientDiagnosticLevel равно 1.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

В следующей таблице приведены диагностические данные, собираемые на каждом уровне диагностики клиента.

noteПримечание
Настройки аварийной копии памяти для уровней диагностики клиентов относятся только к клиентам кэша, использующим клиентскую оболочку Memcache. Для клиентов, не использующих Memcache, аварийные дампы не собираются. Дополнительные сведения клиентской оболочке Memcache см. в разделе Оболочка Memcache для Кэша Azure.

 

ClientDiagnosticLevel Собираемые сведения

0

  • Уровень журнала: Critical

  • Нет счетчиков производительности

  • Не зарегистрированы журналы событий

  • Минимальные аварийные дампы

1

2

3

4

noteПримечание
При выполнении приложений Кэш в роли в эмуляторе данные трассировки всех экземпляров роли собираются в папку *_IN_0, даже если запущено несколько экземпляров роли. Это предусмотрено алгоритмом программы. Если приложения Кэш в роли размещены в , данные трассировки каждого экземпляра роли расположены в соответствующих папках экземпляров роли.

Чтобы начать сбор данных диагностики кэша, следует вызвать следующий код в ходе запуска роли. Для сбора диагностических данных кэширования этот код следует добавить в каждую роль, которая является клиентом кэша или сервером кэширования. Удобное место для размещения этого кода — переопределение OnStart в роли, как показано в следующем примере.

public override bool OnStart()
{
    DiagnosticMonitorConfiguration dmConfig = 
        DiagnosticMonitor.GetDefaultInitialConfiguration();

    // Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig);

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", 
        dmConfig);

    return base.OnStart();
}

Метод ConfigureDiagnostics настраивает сбор диагностических данных кэширования. Если этот метод не вызывается, данные диагностики кэша не собираются. Чтобы использовать класс CacheDiagnostics, добавьте ссылку на библиотеку Microsoft.ApplicationServer.Caching.AzureCommon.dll, расположенную в C:\Program Files\Microsoft SDKs\Azure\.NET SDK\2012-10\ref\Caching, и добавьте следующий оператор using (или Imports).

using Microsoft.ApplicationServer.Caching.AzureCommon;
noteПримечание
Если роль была настроена в качестве клиента кэша с использованием пакета NuGet для Кэш в роли, значит, ссылка на сборку Microsoft.ApplicationServer.Caching.AzureCommon.dll уже добавлена.

Если вы добавляете кэширование в существующую роль и код настройки диагностики уже есть, вы можете добавить вызов ConfigureDiagnostics в этот код перед вызовом Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start.

WarningПредупреждение
Вызов обоих методов ConfigureDiagnostics и Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start требуется для сбора диагностических данных в приложениях Кэш в роли. Если при запуске роли не были вызваны эти два метода, диагностические данные кэширования не собираются.

В следующем разделе перечислены счетчики производительности, входящие в уровни диагностики сервера и клиента. Включаются как счетчики Кэш в роли, так и счетчики . Полный список с описанием счетчиков производительности Кэш в роли см. в разделе Мониторинг кэша на основе ролей (Кэш Azure). Дополнительные сведения счетчиках производительности см. в разделе Performance Counters in the .NET Framework.

DiagnosticLevel 1 содержит следующие счетчики производительности.

  • \Azure Caching:Host\Среднее время дополнительного ответа на операцию в микросек.

  • \Azure Caching:Host\Общий объем данных в байтах

  • \Azure Caching:Host\Общее число запросов клиентов

  • \Azure Caching:Host\Общее число запросов чтения

  • \Azure Caching:Host\Общее число объектов

  • \Azure Caching:Host\Общее число исключений при сбое

  • \Memory\Доступно МБ

  • \Process(CacheService)\Ошибки страниц/с

    • При выполнении в эмуляторе имя счетчика — «\Process(CacheServiceEmulator)\Ошибки страниц/с».

  • \Processor(_Total)\Загруженность процессора

  • \.NET CLR Memory(_Global_)\% времени в GC

DiagnosticLevel 2 содержит следующие счетчики производительности.

  • \Azure Caching:Host\Среднее время дополнительного ответа на операцию в микросек.

  • \Azure Caching:Host\Общий объем данных в байтах

  • \Azure Caching:Host\Общее число запросов клиентов

  • \Azure Caching:Host\Общее число запросов чтения

  • \Azure Caching:Host\Общее число объектов

  • \Azure Caching:Host\Общее число исключений при сбое

  • \Processor(_Total)\Загруженность процессора

  • \.NET CLR Memory(_Global_)\% времени в GC

  • \Azure Caching:Host\Общее число запросов чтения в сек.

  • \Azure Caching:Host\Процент промахов кэша

  • \Azure Caching:Host\Общий объем основных данных в байтах

  • \Azure Caching:Host\Общее число выделенных каталогов

  • \Azure Caching:Host\Процент доступных элементов кэша

  • \Azure Caching:Host\Общее число доступных элементов кэша

  • \Azure Caching:Host\Общее число доставленных уведомлений

  • \Azure Caching:Host\Общее число запусков вытеснения

  • \Azure Caching:Host\Общий объем вытесненной памяти

  • \Azure Caching:Host\Общее число вытесненных объектов

  • \Azure Caching:Host\Общее число просроченных объектов

  • \Azure Caching:Host\Общее число выполненных запросов

  • \Azure Caching:Host\Общее число операций записи

  • \.NET CLR LocksAndThreads(*)\Частота конфликтов/сек

  • \.NET CLR Memory(*)\% времени в GC

  • \.NET CLR Memory(*)\Размер кучи поколения 0

  • \.NET CLR Memory(*)\Размер кучи поколения 1

  • \.NET CLR Memory(*)\Размер кучи поколения 2

  • \.NET CLR Memory(*)\Размер кучи для массивных объектов

  • \Memory\Доступно МБ

  • \Process(CacheService)\Ошибки страниц/с

    • При выполнении в эмуляторе имя счетчика — «\Process(CacheServiceEmulator)\Ошибки страниц/с».

  • \Process(*)\Число потоков

  • \Process(*)\Рабочий набор

  • \Process(*)\Виртуальные байты

  • \Process(*)\Прошло времени

  • \Process(*)\Ошибок страницы/с

  • \Network Interface(*)\Текущая пропускная способность

  • \Network Interface(*)\Всего байт/сек

  • \Azure Caching:Host\Общее число подключений

  • \Azure Caching:Host\Среднее время ответа кворума на операцию в микросек.

  • \Azure Caching:Host\Общее число запросов клиентов в сек.

  • \Azure Caching:Host\Общее число доставленных уведомлений

  • \Azure Caching:Host\Общее число промахов Get

  • \Azure Caching:Host\Общее число операций записи в сек.

DiagnosticLevel 3 и DiagnosticLevel 4 содержат следующие счетчики производительности.

  • \.NET CLR LocksAndThreads(*)\Частота конфликтов/сек

  • \.NET CLR LocksAndThreads(*)\Текущая длина очереди

  • \.NET CLR Memory(*)\Байт во всех кучах

  • \.NET CLR Memory(*)\Сборов "мусора" для поколения 0

  • \.NET CLR Memory(*)\Сборов "мусора" для поколения 1

  • \.NET CLR Memory(*)\Сборов "мусора" для поколения 2

  • \.NET CLR Memory(*)\% времени в GC

  • \.NET CLR Memory(*)\Размер кучи поколения 0

  • \.NET CLR Memory(*)\Размер кучи поколения 1

  • \.NET CLR Memory(*)\Размер кучи поколения 2

  • \.NET CLR Memory(*)\Размер кучи для массивных объектов

  • \.NET CLR Exceptions(*)\Число исключений

  • \Memory\Доступно МБ

  • \Memory\Чтений страниц/с

  • \PhysicalDisk(_Total)\Процент времени бездействия

  • \PhysicalDisk(_Total)\Средняя длина очереди диска

  • \Processor(_Total)\% работы в привилегированном режиме

  • \Processor(_Total)\Загруженность процессора

  • \System\Переключения контекста/сек

  • \System\Длина очереди процессора

  • \Process(*)\Загруженность процессора

  • \Process(*)\Счетчик дескрипторов

  • \Process(*)\Байты исключительного пользования

  • \Process(*)\Число потоков

  • \Process(*)\Рабочий набор

  • \Process(*)\Виртуальные байты

  • \Process(*)\Прошло времени

  • \Process(*)\Ошибок страницы/с

  • \Process(CacheService)\Ошибки страниц/с

    • При выполнении в эмуляторе имя счетчика — «\Process(CacheServiceEmulator)\Ошибки страниц/с».

  • \Network Interface(*)\Текущая пропускная способность

  • \Network Interface(*)\Пакетов/сек

  • \Network Interface(*)\Отправлено байт/сек

  • \Network Interface(*)\Получено байт/сек

  • \Network Interface(*)\Всего байт/сек

  • \System\Время работы системы

  • \Azure Caching:Host\Процент доступных элементов кэша

  • \Azure Caching:Host\Общее число подключений

  • \Azure Caching:Host\Процент доступных каталогов

  • \Azure Caching:Host\Процент доступной памяти

  • \Azure Caching:Host\Среднее время ответа кворума на операцию в микросек.

  • \Azure Caching:Host\Среднее время дополнительного ответа на операцию в микросек.

  • \Azure Caching:Host\Процент промахов кэша

  • \Azure Caching:Host\Время процесса шлюза

  • \Azure Caching:Host\Процент сбоев шлюза

  • \Azure Caching:Host\Процент ошибок обработки запросов

  • \Azure Caching:Host\Общее число выделенных элементов кэша

  • \Azure Caching:Host\Общее число выделенных каталогов

  • \Azure Caching:Host\Общее число доступных элементов кэша

  • \Azure Caching:Host\Общее число доступных каталогов

  • \Azure Caching:Host\Общий объем памяти в байтах

  • \Azure Caching:Host\Общее число промахов кэша

  • \Azure Caching:Host\Общее число промахов кэша в сек.

  • \Azure Caching:Host\Общее число запросов клиентов

  • \Azure Caching:Host\Общее число запросов клиентов в сек.

  • \Azure Caching:Host\Общий объем данных в байтах

  • \Azure Caching:Host\Общее число вытесненных объектов

  • \Azure Caching:Host\Общее число запусков вытеснения

  • \Azure Caching:Host\Общее число просроченных объектов

  • \Azure Caching:Host\Общее число исключений при сбое

  • \Azure Caching:Host\Общее число исключений при сбое в сек.

  • \Azure Caching:Host\Общий объем вытесненной памяти

  • \Azure Caching:Host\Общее число доставленных уведомлений

  • \Azure Caching:Host\Общее число доставленных уведомлений в сек.

  • \Azure Caching:Host\Общее число запросов опроса уведомлений

  • \Azure Caching:Host\Общее число запросов опроса уведомлений в сек.

  • \Azure Caching:Host\Общее число объектов

  • \Azure Caching:Host\Общее число возвращенных объектов

  • \Azure Caching:Host\Общее число возвращенных объектов в сек.

  • \Azure Caching:Host\Общий объем основных данных в байтах

  • \Azure Caching:Host\Общее число промахов Get

  • \Azure Caching:Host\Общее число промахов Get в сек.

  • \Azure Caching:Host\Общее число запросов Get

  • \Azure Caching:Host\Общее число запросов Get в сек.

  • \Azure Caching:Host\Общее число запросов GetAndLock

  • \Azure Caching:Host\Общее число запросов GetAndLock в сек.

  • \Azure Caching:Host\Общий объем вытесненной памяти

  • \Azure Caching:Host\Общее число запросов чтения

  • \Azure Caching:Host\Общее число запросов чтения в сек.

  • \Azure Caching:Host\Общее число выполненных запросов

  • \Azure Caching:Host\Общее число выполненных запросов в сек.

  • \Azure Caching:Host\Общее число исключений при повторе

  • \Azure Caching:Host\Общее число исключений при повторе в сек.

  • \Azure Caching:Host\Общий объем дополнительных данных в байтах

  • \Azure Caching:Host\Общее число успешных запросов GetAndLock

  • \Azure Caching:Host\Общее число успешных запросов GetAndLock в сек.

  • \Azure Caching:Host\Общее число операций записи

  • \Azure Caching:Host\Общее число операций записи в сек.

ClientDiagnosticLevel 1 содержит следующие счетчики производительности.

  • \Azure Caching:Client Host\Исключений при сбое

  • \Azure Caching:Client Host\Общее число попаданий локального кэша

  • \Azure Caching:Client Host\Текущих подключений к серверу

  • \Azure Caching:Client Host\Среднее время задержки Get на операцию в микросек.

  • \Azure Caching:Client Host\Среднее время задержки Put на операцию в микросек.

  • \Azure Caching:Client Host\Исключений при повторе

  • \Azure Caching:Client Host\Исключений таймаута

  • \Azure Caching:Client Host\Запросов

  • \Processor(_Total)\Загруженность процессора

  • \.NET CLR Memory(_Global_)\% времени в GC

  • \Azure Caching:Client(*)\Исключений при сбое

  • \Azure Caching:Client(*)\Общее число попаданий локального кэша

  • \Azure Caching:Client(*)\Текущих подключений к серверу

  • \Azure Caching:Client(*)\Среднее время задержки Get на операцию в микросек.

  • \Azure Caching:Client(*)\Среднее время задержки Put на операцию в микросек.

  • \Azure Caching:Client(*)\Исключений при повторе

  • \Azure Caching:Client(*)\Исключений таймаута

  • \Azure Caching:Client(*)\Запросов

ClientDiagnosticLevel 2, 3 и 4 содержат следующие счетчики производительности.

  • \Azure Caching:Client Host\Запросов

  • \Azure Caching:Client Host\Запросов в сек.

  • \Azure Caching:Client Host\Отклонено ответов сервера в сек.

  • \Azure Caching:Client Host\Исключений при сбое

  • \Azure Caching:Client Host\Исключений при сбое в сек.

  • \Azure Caching:Client Host\Среднее время задержки Get на операцию в микросек.

  • \Azure Caching:Client Host\Среднее время задержки Put на операцию в микросек.

  • \Azure Caching:Client Host\Среднее время задержки Get (в сети) на операцию в микросек.

  • \Azure Caching:Client Host\Запросов чтения

  • \Azure Caching:Client Host\Запросов записи

  • \Azure Caching:Client Host\Байт получено в сек.

  • \Azure Caching:Client Host\Байт отправлено в сек.

  • \Azure Caching:Client Host\Текущих подключений к серверу

  • \Azure Caching:Client Host\Процент заполнения локального кэша

  • \Azure Caching:Client Host\Процент попаданий локального кэша

  • \Azure Caching:Client Host\Общее число попаданий локального кэша

  • \Azure Caching:Client Host\Общее число объектов локального кэша

  • \Azure Caching:Client Host\Общее число полученных уведомлений

  • \Azure Caching:Client Host\Исключений таймаута

  • \Azure Caching:Client Host\Исключений таймаута в сек.

  • \Azure Caching:Client Host\Исключений при повторе

  • \Azure Caching:Client Host\Исключений при повторе в сек.

  • \Azure Caching:Client Host\Общее число сбоев запросов подключения

  • \Azure Caching:Client Host\Исключений в сети

  • \Azure Caching:Client Host\Исключений в сети в сек.

  • \Azure Caching:Client Host\Сейчас ожидает запросов

  • \Processor(_Total)\Загруженность процессора

  • \.NET CLR Memory(_Global_)\% времени в GC

  • \Azure Caching:Client(*)\Запросов

  • \Azure Caching:Client(*)\Запросов в сек.

  • \Azure Caching:Client(*)\Отклонено ответов сервера в сек.

  • \Azure Caching:Client(*)\Исключений при сбое

  • \Azure Caching:Client(*)\Исключений при сбое в сек.

  • \Azure Caching:Client(*)\Среднее время задержки Get на операцию в микросек.

  • \Azure Caching:Client(*)\Среднее время задержки Put на операцию в микросек.

  • \Azure Caching:Client(*)\Среднее время задержки Get (в сети) на операцию в микросек.

  • \Azure Caching:Client(*)\Запросов чтения

  • \Azure Caching:Client(*)\Запросов записи

  • \Azure Caching:Client(*)\Байт получено в сек.

  • \Azure Caching:Client(*)\Байт отправлено в сек.

  • \Azure Caching:Client(*)\Текущих подключений к серверу

  • \Azure Caching:Client(*)\Процент заполнения локального кэша

  • \Azure Caching:Client(*)\Процент попаданий локального кэша

  • \Azure Caching:Client(*)\Общее число попаданий локального кэша

  • \Azure Caching:Client(*)\Общее число объектов локального кэша

  • \Azure Caching:Client(*)\Общее число полученных уведомлений

  • \Azure Caching:Client(*)\Исключений таймаута

  • \Azure Caching:Client(*)\Исключений таймаута в сек.

  • \Azure Caching:Client(*)\Исключений при повторе

  • \Azure Caching:Client(*)\Исключений при повторе в сек.

  • \Azure Caching:Client(*)\Общее число сбоев запросов подключения

  • \Azure Caching:Client(*)\Исключений в сети

  • \Azure Caching:Client(*)\Исключений в сети в сек.

  • \Azure Caching:Client(*)\Сейчас ожидает запросов

См. также

Показ:
© 2014 Microsoft