Или perfmon должен быть ограничен сервером Dev / QA с нагрузочными тестами, которые моделируют производственную деятельность?
Я хотел бы запустить perfmon в течение двух дней ( как советует мастер Sql Server Брент Озар ), чтобы получить общее представление о производительности базы данных моего веб-приложения.
sql-server
performance
performance-tuning
perfmon
Билл Паецке
источник
источник
Ответы:
SQL Server и большинство других продуктов генерируют счетчики постоянно, независимо от того, есть прослушиватели или нет (игнорируя параметр запуска -x). Счетчик отслеживания полностью прозрачен в контролируемом приложении. Существует область общей памяти, в которую записывает отслеживаемое приложение и из которой сеансы мониторинга считывают необработанные значения с заданным интервалом. Таким образом, единственные затраты, связанные с мониторингом, это стоимость процесса мониторинга и стоимость записи выборочных значений на диск. Выбор приемлемого интервала сбора (обычно я выбираю 15 секунд) и умеренного количества счетчиков (50-100) и запись в двоичный формат файла обычно не влияют на отслеживаемую систему.
Но я бы рекомендовал не использовать Perfmon (как в perfmon.exe). Вместо этого ознакомьтесь с logman.exe, см. Описание инструментов Logman.exe, Relog.exe и Typeperf.exe . Таким образом, вы не привязываете сеанс сбора к своему сеансу. Logman, являясь инструментом командной строки, может использоваться в сценариях и запланированных заданиях для запуска и остановки сеансов сбора.
источник
Нет ничего плохого в запуске perfmon на производственных коробках. Это относительно сдержанный ключ, и он может собрать много полезной информации для вас. И как бы вы точно смоделировали производственные нагрузки, если бы не проводили какой-либо анализ на рабочем сервере? От Brent Ozar по вашей собственной ссылке:
Я запустил perfmon на нескольких производственных коробках Exchange без каких-либо побочных эффектов.
источник
С тех пор, как я слушал Клинта Хаффмана , который написал PAL утилиту для анализа журналов Perfmon, однажды на подкасте. Я настроил то, что я называю Flight Recorder, на всех наших производственных серверах приложений. Эта практика очень пригодилась для диагностики проблем и отслеживания тенденций.
Ниже приведен скрипт, который я использую для настройки автозапускаемого Perfmon Collector с очисткой журнала. При желании его можно передать в файл со списком счетчиков производительности для сбора (по одному на строку) или в файл PAL Threshold XML. Мне нравится использовать файлы PAL Threshold.
источник
Мы делаем это довольно часто. Это также важно для установления базовой линии в реальной среде, поэтому вы сможете сравнить ее позже, если возникнут проблемы или вам необходимо провести исследование потенциала.
Я рекомендую не опускаться ниже 10-секундного интервала. Если вы собираете много объектов / счетчиков и интервал слишком велик, это может повлиять на операции.
Microsoft имеет PerfMon Wizard, который установит задачу для вас.
http://www.microsoft.com/downloads/details.aspx?FamilyID=31FCCD98-C3A1-4644-9622-FAA046D69214&displaylang=en
источник
В идеальном мире, где рабочий сервер точно отражает то, что делает сервер dev, а также является точной копией сервера dev, на рабочем сервере никогда не требуется perfmon, поскольку результаты будут такими же, как на сервере dev. Конечно, такой мифической ситуации не бывает, поэтому нам нужно запустить perfmon на производственных серверах, и в этом нет абсолютно ничего плохого. Помимо прочего, нам может понадобиться использовать perfmon и другие инструменты, чтобы узнать, почему рабочий сервер не работает так же, как сервер dev.
источник
Почему перфмон? Я имею в виду, что в последних версиях SQL-сервера есть свой собственный метод, включающий создание (центрального) хранилища данных счетчиков производительности, которые затем можно запрашивать и сопоставлять. Там нет никакого смысла в запуске perfmon там.
Я, как всегда, удивлен всеми сообщениями здесь людей, которые явно никогда не читают документацию;)
http://www.simple-talk.com/sql/learn-sql-server/sql-server-2008-performance-data-collector/ - хорошее начало. ИМХО, это должно работать почти на каждом сервере sql, который используется в производственных целях.
источник
Нет ничего плохого в запуске Perfmon, как предлагали многие, но я бы запустил Profiler вместо этого или дополнительно, с теми же предостережениями, не слишком часто перехватывал, просто захватывал долго выполняющиеся запросы, т.е. длительность> x секунд или cpu> xx или читает> хххх; очень небольшое влияние, и вы быстро увидите запросы, которые больше всего выиграют от настройки.
источник