ASP.NET 지원 음성 열

로그 파서 2.2 및 ASP.NET

이 열을 필요에 맞게 사용자 지정하기 위해 관심 있는 주제와 향후 기술 자료 문서 및 지원 음성 열에서 해결하려는 문제에 대한 아이디어를 제출할 것을 초대합니다. 요청 양식을 사용하여 아이디어 및 피드백을 제출할 수 있습니다. 이 열 아래쪽에 폼에 대한 링크도 있습니다.

지원 음성 ASP.NET 열에 오신 것을 환영합니다. 내 이름은 Rahul Soni로, 현재 약 2년 동안 Microsoft와 함께했습니다. 이 달의 칼럼에서는 Log Parser 2.2에 대한 몇 가지 사실에 대해 논의합니다. 특정 시나리오로 이동하기 전에 잠시 시간을 내어 Log Parser 도구를 설명해 겠습니다.

Log Parser는 이벤트 로그, 레지스트리, 파일 시스템 및 Active Directory 디렉터리 서비스와 같은 Microsoft Windows 운영 체제의 주요 데이터 원본뿐만 아니라 로그 파일, XML 파일 및 CSV 파일과 같은 텍스트 기반 데이터에 대한 범용 쿼리 액세스를 제공하는 매우 강력하고 다양한 도구입니다. 도구를
다운로드하려면 여기를 클릭하세요. 이 버전에서는 Log Parser 도구에서 다음과 같은 파일을 매우 쉽게 구문 분석할 수 있습니다.

IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS 및 COM. 명령줄 인터페이스가 매우 직관적이지 않다는 데 동의하며 도구를 설치하고 실행하면 즉시 찾을 수 있습니다. 그러나 도구의 직관적인 느낌이 부족한 것은 도구에 대해 제공된 설명서에 의해 패치되고 있습니다. 여기서는 명령줄 인터페이스가 너무 빨리 해제되지 못하게 하세요. 이 도구는 geek의 도구 도구에서 반드시 필요한 도구로, 특히 성능 관점에서 문제를 해결하려는 경우 많은 도움이 됩니다.

설명서가 매우 양호하고 설치 폴더에 샘플이 꽤 많은 "샘플\쿼리" 폴더도 포함되어 있기 때문에 로그 파서 도구를 사용하는 "방법"에 대해 논의하지 않을 것입니다.

따라서 Log Parser 도구의 승격을 약간 완료한 후 제가 말한 시나리오로 돌아오겠습니다.

시나리오 1: 특정 텍스트에 대한 큰 텍스트 파일 구문 분석

문제의 작은 배경

고객이 무언가를 할 때 "액세스 거부" 문제가 있습니다. 고객이 Filemon이라는 또 다른 훌륭한 도구를 사용하여 문제를
재현하는 것이 좋습니다. 리소스 ACL에 문제가 있는 경우 Filemon 도구에서 오류를 포커스할 수 있습니다. 이제 고객에게 저장된 Filemon 로그 파일을 보내달라고 요청합니다. 여기에 불행한 부분이 있습니다. 파일(예: Filemon.log)을 얻지만 크기가 크지 않습니다(Filemon은 많은 데이터를 기록합니다!). 메모장은 중단된 것으로 표시되고 로그 파일에서 "액세스 거부" 줄을 찾기가 느려질 것입니다. Microsoft Office Excel에서 파일을 완전히 열지 않습니다. 이제 어떻게 하나요?

대답: Log Parser 명령 창을 열고 다음 명령을 사용 합니다.

LOGPARSER "'%Access Denied%'와 같은 텍스트가 있는 C:\Filemon.log에서 텍스트를 선택합니다." -i:TEXTLINE -q:Off-Parser 도구는 줄에 '액세스 거부'가 포함된 주어진 파일(C:\Filemon.log)에서 각 줄(텍스트)을 구문 분석하는 것입니다. -i:TEXTLINE 명령줄 스위치는 입력 형식을 지정하고 ,-q:Off 명령줄 스위치는 설명(-q[:ON| OFF]:quiet mode;). -q 명령줄 스위치를 켜면 표시된 통계와 아래 출력의 필드 이름(텍스트)이 없습니다.

샘플 출력

Text7447 1:49:24 PM explorer.exe:1200 DIRECTORY C:\ 처리된 Access Denied StatisticsElements: 640444 요소
출력: 1 실행
시간: 12.75초 쿼리에서 반환되는 레코드 수가

10보다 큰 경우 ENTER를 여러 번 누르지 않도록 하는 방법

답변: 쿼리에서 -rtp:-1 매개 변수를 사용합니다.

출력을 파일로 리디렉션하려는 경우 필요한 매개 변수가 됩니다. 또한 STDOUT에 쓸 때 출력 레코드는 이 매개 변수에 지정된 값과 동일한 수의 행으로 구성되는 일괄 처리로 표시됩니다. 행 일괄 처리가 표시되면 사용자가 키를 눌러 다음 행 일괄 처리를 표시하라는 메시지가 표시됩니다. 이 매개 변수에 대해 "-1"을 지정하면 일괄 처리가 모두 비활성화됩니다.

쿼리 파일 사용

동일한 결과를 더 깔끔하게 달성하는 또 다른 방법은 쿼리 파일을 만드는 것입니다. 이렇게 하면 쿼리 파일을 쉽게 조정하고 Log Parser 도구의 명령줄에서 실행할 수 있습니다. 그 외에도 취향에 따라 GUI를 쉽게 만들 수 있습니다. GUI는 저장된 SQL 쿼리를 로드하고 Log Parser 도구를 사용하여 쿼리를 실행합니다.

쿼리에서 동일한 효과를 달성하려는 경우(시나리오 1에서와 같이) SQL 명령을 제공할 수 있습니다.

LOGPARSER -i:TEXTLINE 파일:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql에는

C:\ 폴더를 사용하여 이 열에 표시된 샘플을 사용합니다.

Select Text as LineFromFile
FROM C:\Filemon.log
WHERE Text
LIKE '%Access Denied%'

이제 쿼리가 훨씬 더 깔끔해보이는 것을 알 수 있으며 더 의미가 있습니다. 이렇게 하면 더 복잡하고 더 큰 쿼리도 만들 수 있으며, 을 사용 중이기 때문에 모든 쿼리가 명령줄에 맞아집니다. SQL 쿼리 대신 파일을 저장합니다. 어쨌든 명령줄에 260자 이상을 맞추는 것은 불가능합니다.

쿼리 파일을 사용하는 이점을 유지하면 다음 시나리오에서 이 메서드를 사용합니다. .sql 확장을 사용하여 C:\LPQ에 저장된 모든 쿼리가 있습니다(사용자만 사용할 수 있습니다).

시나리오 2: 하위 폴더를 포함하여 특정 폴더에서 가장 큰 10개 파일 찾기

문제의 작은 배경

폴더가 있으며 하위 폴더와 파일이 꽤 있습니다. 하위 폴더를 포함하여 해당 폴더에서 가장 큰 10개 파일을 찾으면 됩니다.

특정 폴더의 경우 Windows 탐색기에서 보기(보기 메뉴에서 세부 정보 클릭)를 변경하고 보기를 크기별로 정렬할 수 있습니다. 그러나 여기서 문제는 하위폴더의 내용도 고려해야 하다는 것입니다.

대답: Log Parser 도구 명령 창을 열고 다음 명령을 사용합니다.

LOGPARSER -i:FS 파일:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql에는 다음이 포함되어 있습니다.

SELECT TOP 10 
Path,
Name,
Size,
Attributes
FROM 'C:\Program Files\Microsoft Office\*.*'
ORDER BY Size DESC

여기서 -i:FS는 파일 시스템을 쿼리하고 있습니다. 설명서에서 FS 입력 형식 필드의 전체 목록을 보고 이에 따라 쿼리를 프레임할 수 있습니다.

-Recurse:-1은 모든 하위폴더를 포함하려는 것을 암시합니다. 모든 하위폴더를 원하지 않는 경우 또는 재발을 제한하려는 경우 0, 1, 2 등을 사용 합니다. 숫자는 파서가 들어갈 깊이를 의미합니다. 0은 재발이 없음을 의미하고, 2는 파서가 깊이 2 등까지 재발하는 경우를 의미합니다.

샘플 출력

Path                                                         Name         Size     Attributes 
------------------------------------------------------------ ------------ -------- ----------
C:\Program Files\Microsoft Office\Office10\WINWORD.EXE WINWORD.EXE 10738448 -A--R----
C:\Program Files\Microsoft Office\Office10\EXCEL.EXE EXCEL.EXE 9358096 -A--R----
C:\Program Files\Microsoft Office\Office10\OUTLLIB.DLL OUTLLIB.DLL 6326984 -A-------
C:\Program Files\Microsoft Office\Office10\POWERPNT.EXE POWERPNT.EXE 6093584 -A--R----
C:\Program Files\Microsoft Office\Office10\MSOWC.DLL MSOWC.DLL 3041880 -A-------
C:\Program Files\Microsoft Office\Office10\CLIPPIT.ACS CLIPPIT.ACS 2904417 -A-------
C:\Program Files\Microsoft Office\Office10\GRAPH.EXE GRAPH.EXE 2144824 -A-------
C:\Program Files\Microsoft Office\Office10\1033\OUTLLIBR.DLL OUTLLIBR.DLL 1977032 -A-------
C:\Program Files\Microsoft Office\Office10\1033\XLMAIN10.CHM XLMAIN10.CHM 1646072 -A-------
C:\Program Files\Microsoft Office\Office10\MSOWCW.DLL MSOWCW.DLL 1200177 -A-------


StatisticsElements 처리: 1000
요소 출력: 10
실행 시간: 0.42초

시나리오 3: 웹 사이트에서 가장 느린 페이지 20개 찾기

문제의 작은 배경

IIS(Microsoft 인터넷 정보 서비스) 6을 사용하고, 웹 ASP.NET 몇 가지가 있으며 성능에 만족하지 않습니다. 서버를 조정하고 웹 서버에서 서비스하는 데 가장 많은 시간이 필요한 상위 20개 페이지에 대해 알고자 합니다. 가장 많은 시간을 들이는 페이지를 결정하고, 수정하고, 문제가 해결되는 것만은 아니다. 안타깝게도 성능 문제를 해결하기 위한 실버 글머리 기호가 없습니다. 적어도 시작하는 방법이 있을 것입니다. 올바른가요?

대답: Log Parser 명령 창을 열고 다음 명령을 사용 합니다.

LOGPARSER -i:IISW3C 파일:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql에는 다음 예제 코드가 포함되어 있습니다.

Select Top 20
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
C:\ex060813.log
Order by time-taken desc

여기서 -i:IISW3C는 IIS W3C 로그를 쿼리하고 있습니다. 설명서에서 IISW3C 입력 형식 필드의 전체 목록을 보고 이에 따라 쿼리를 프레임할 수 있습니다.

-o:DataGrid는 출력이 데이터 그리드에 표시되어야 한다고 암시합니다.대체 텍스트참고 이 쿼리를 사용하려면


IISW3C 로깅을 사용하고 고급 로깅 속성을 사용하도록 설정해야
합니다. (웹 사이트 속성을 열고 웹 사이트 탭을 클릭하고 로깅 사용 을 선택한 다음, 활성 로그 형식을 W3C 확장로그 파일 형식으로 설정합니다. 속성을 클릭하고고급 탭을 클릭한 다음 클릭하여 모든 옵션을
선택합니다.

시나리오 4: 웹 사이트에서 가장 일반적으로 사용되는 .aspx 페이지 20개 찾기

문제의 작은 배경

IIS 6을 사용하고, 몇 ASP.NET 웹 사이트가 있으며, 가장 일반적으로 사용되는 .aspx 파일을 알고 싶어서 해당 페이지의 성능을 조정하면 결국 전체 웹 사이트/서버 이점이 있습니다. 항상 가장 많이 사용되는 페이지를 조정하는 데 시간을 소비하는 것이 좋습니다. (이 규칙에 예외가 있을 수 있습니다. 아까 사용한 페이지가 해당 문제의 CPU 사용률을 높게 하는 정말 나쁜 페이지라고 말하세요!) 이제 특정 페이지가 제공되는 데 시간이 오래 걸리고(시나리오 3) 페이지가 가장 일반적으로 사용되는 페이지 중 하나인 경우 항상 페이지가 스트레스 아래에서 잘 행동하는지 확인해야 합니다.

대답: Log Parser 도구 명령 창을 열고 다음 명령을 사용합니다.

LOGPARSER -i:IISW3C 파일:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql에는 다음 예제 코드가 포함되어 있습니다.

Select Top 20
cs-uri-stem as [Request URI],
COUNT(*) AS Hits
INTO MyChart.gif
FROM C:\ex060813.log
Group by cs-uri-stem ORDER BY Hits DESC

이 경우 -chartType:Bar3D는 준비할 차트의 종류를 Log Parser 도구에 알 수 있습니다. -groupSize 매개 변수는 대상 이미지의 너비와 높이를 픽셀로 지정합니다. 사용 가능한 차트 형식 집합은 로컬 컴퓨터에 설치된 Microsoft Office 웹 구성 요소의 버전에 따라 다를 수 있습니다.

출력의 모양은 다음과 같습니다 대체 텍스트이미 보신 것 처럼 로그 파서 도구가 다양한 로그의 데이터를 분석하는 데 정말 도움이 될 수 있는 여러 가지 방법이 있을



수 있습니다. 여기서는 창의성만이 제한됩니다. 데이터에 훨씬 더 나은 그림을 반영할 수 있는 거의 무제한 방법이 있으며, 이를 통해 행동할 수 있습니다. 우리가 건드린 것은 빙산의 끝입니다! Microsoft Visual C# Microsoft Visual Basic .NET 등의 고급 언어를 사용하여 Log Parser 도구의 기능을 사용하여 유용한 프로그램을 만들 수도 있습니다. 아래 "리소스" 섹션을 참조하세요.

리소스

Log Parser 도구에 대한 더 많은 시나리오에 대해 논의하고, Log Parser 도구에 대한 새 섹션을 블로그에 만들어 봤습니다. 공유하려는 시나리오 또는 Log Parser 도구 쿼리에 대한 제안 사항이 있는 경우 rahulso@microsoft.com 메일로 보내 주시기 바랍니다. 다음 웹 사이트에서 가장 빠른 편의를 위해
게시합니다.

http://blogs.msdn.com/rahulso/archive/category/14624.aspx

항상 그와 같은 경우, 요청 양식을 사용하여 향후 열 또는 기술 자료에서 해결하려는 항목에 대한 아이디어를 자유롭게
제출하세요.

이 문서에서 설명하는 타사 제품은 Microsoft와 독립적인 회사에서 제조합니다. Microsoft는 이러한 제품의 성능 또는 안정성에 대해 보증하지 않습니다.

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

번역 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?

소중한 의견에 감사드립니다.

×