У меня есть виртуальный сервер с хостинговой компанией, поэтому ЦП и ОЗУ ограничены. Мне нужно следить за нагрузкой / производительностью с течением времени, чтобы знать, когда обновлять сервер.
На сайте работает несколько приложений ASP.NET, а также приложений PHP, все с бэкэндом MSSQL.
Какие важные счетчики perfmon можно использовать для мониторинга стандартного веб-сервера IIS / MSSQL: объем входящих запросов IIS, время ответа, загрузка MSSQL и т. д.? Также было бы полезно краткое описание того, почему счетчик имеет значение и на что обращать внимание (если не очевидно).
Вам следует начать с основ;
Если вы пошли с установкой по умолчанию неэкспресс-SQL, тогда он займет всю доступную память и истощит IIS / Windows. С другой стороны, если у SQL недостаточно памяти, у него будет низкий коэффициент попадания в буферный кеш, и вы, вероятно, увидите очередь на диске. Большинство других счетчиков будут побочным эффектом ограничения на диск / память / процессор для установки с одним сервером. Как только вы дойдете до точки, где вам нужно определить, является ли это: IIS / SQL, php или asp.net, выявить интенсивные WP и т. Д., Тогда мониторинг станет более сложным, и вам нужно будет провести много исследований или нанять подрядчик.
Монитор производительности пользователя или инструмент советника, связанный в нижней части, для настройки графика сбора данных для регистрации основных счетчиков производительности. Обычно для мониторинга / анализа всей системы достаточно 5-15 минутного образца. Если вы пытаетесь диагностировать конкретную проблему, вы можете сократить время до 15 или менее на короткие периоды времени.
Страниц / сек: Среднее значение продолжительных периодов> 150 может указывать на проблему, но это также зависит от диска. На облачном сервере вам может потребоваться среднее значение <150, поскольку диск, скорее всего, является общим или удаленным. Также посмотрите Доступные байты, если количество страниц в секунду велико, а Доступных байтов велико, то счетчик может вводить в заблуждение, поскольку есть другие причины, помимо разбиения на страницы, которые выходят за рамки этого вопроса.
% Загруженности процессора: если среднее значение или вы видите продолжительные периоды> 75-80%, значит, процессор ограничен.
Коэффициент попадания в буферный кеш: обычно должен составлять 96-99%, более низкий означает, что SQL неэффективно кэширует и требует больше памяти.
Средняя длина очереди диска: журнал для каждого отдельного диска,> 2 означает, что диск переполнен. Вы также можете записать PhysicalDisk \% Idle Time, и если оно упадет ниже 20%, это означает насыщение диска.
Вы также можете использовать советник по производительности Microsoft, чтобы ускорить мониторинг и получить более тщательный мониторинг на основе рекомендаций Microsoft; Советник по производительности Microsoft
На ваш вопрос сложно ответить объективно. Однако я могу сказать вам, что если ваша БД регулярно работает, а БД не маленькие, MSSQL захватит столько памяти, сколько сможет понять, как ее использовать. (Хотя версия SQL Server Express не занимает больше 1 ГБ.) Поэтому не удивляйтесь, если SQL Server использует всю доступную память. И если это так, это не обязательно означает, что вам нужно обновить память, он все равно может работать нормально в этом сценарии. Я хочу сказать, что использование памяти может не иметь такого значения для метрики, как, скажем, использование процессора или задержка веб-сайта.