SQLIOSim 유틸리티를 사용하여 디스크 하위 시스템의 SQL Server 작업 시뮬레이션
이 문서에서는 SQLIOSim 유틸리티를 사용하여 디스크 하위 시스템에 대한 스트레스 테스트를 수행하여 SQL Server 작업을 시뮬레이션하는 방법을 설명합니다.
원래 제품 버전: SQL Server
원래 KB 번호: 231619
소개
이 문서에서는 SQLIOSim 도구에 대해 설명합니다. SQLIOSim을 사용하여 SQL Server가 활용하는 디스크 하위 시스템에 대한 안정성 및 무결성 테스트를 수행할 수 있습니다. 이러한 SQLIOSim 테스트는 Microsoft SQL Server에서 수행하는 읽기, 쓰기, 검사점, 백업, 정렬 및 미리 읽기 작업을 시뮬레이션합니다. SQL Server I/O 패턴에 대한 자세한 내용은 SQL Server I/O 기본 사항 2장을 참조하세요. SQLIOSim 유틸리티는 SQL Server 엔진과 독립적으로 이 시뮬레이션을 수행합니다.
I/O 시뮬레이션 테스트의 기본 목표는 SQL Server에서 사용을 시작하기 전에 기본 I/O 하위 시스템의 안정성을 보장하는 것입니다. SQLIOSim은 SQL Server와 상호 작용하지 않으며 SQL Server를 실행할 필요도 없습니다. 실제로 대부분의 경우 SQL Server가 실행되지 않을 때 SQLIOSim을 사용하여 두 애플리케이션 간의 I/O 처리량 경쟁을 방지하는 것이 좋습니다. 덮어쓸 수 있으므로 SQLIOSim 테스트에서 실제 SQL Server 데이터베이스 파일을 가리키거나 사용하지 않도록 주의해야 합니다.
적절한 데이터 무결성을 유지하려면 새 하드웨어에 SQL Server를 배포하기 전에 I/O 하위 시스템의 스트레스 테스트를 수행하는 것이 좋습니다. SQLIOSim 유틸리티는 SQL Server의 읽기 및 쓰기 패턴과 문제 식별 기술을 시뮬레이션합니다. 이러한 작업을 수행하기 위해 SQLIOSim 유틸리티는 SQL Server 시스템의 사용자 활동 및 시스템 활동을 시뮬레이션합니다.
SQLIOSim 유틸리티는 데이터 보안 또는 무결성을 보장하거나 보증하지 않습니다. 이 유틸리티는 시스템 환경의 기준 테스트를 제공하도록 설계되었습니다. SQLIOSim 유틸리티는 잠재적인 데이터 무결성 문제를 노출할 수 있습니다.
로깅 및 데이터 스토리지에 대한 자세한 내용은 SQL Server에서 데이터 안정성을 확장하는 로깅 및 데이터 스토리지 알고리즘에 대한 설명을 참조 하세요.
성능 벤치마크 테스트를 수행해야 하고 스토리지 시스템의 I/O 처리량 용량을 확인하려면 Diskspd 도구를 대신 사용합니다.
SQLIOSim 유틸리티는 이전에 SQL70IOStress 유틸리티로 알려진 SQLIOStress 유틸리티를 대체합니다.
SQLIOSim 위치
과거에는 SQLIOSim이 별도의 다운로드 패키지로 제공되었습니다. SQL Server 2008부터 SQLIOSim은 SQL Server 제품 설치에 포함됩니다. SQL Server를 설치할 때 SQL Server 설치의 \Binn 폴더에서 SQLIOSim 도구를 찾을 수 있습니다. 이 업데이트된 버전의 도구를 사용하여 디스크 하위 시스템의 IO 작업을 시뮬레이션하는 것이 좋습니다.
세 개의 파일은 SQLIOSim 패키지의 일부입니다. \Binn 폴더에는 SQLIOSim.com 및 SQLIOSim.exe 두 개의 실행 파일이 포함되어 있습니다. 두 실행 파일 모두 동일한 I/O 시뮬레이션 기능을 제공합니다.
- SQLIOSim.com 명령줄 도구입니다. 사용자 조작 없이 실행되도록 구성할 수 있습니다. 이 구성을 수행하려면 명령줄 매개 변수, 구성 파일 또는 이러한 두 메서드의 조합을 사용할 수 있습니다.
- SQLIOSim.exe 명령줄 매개 변수를 허용하지 않는 그래픽(GUI) 애플리케이션입니다. 그러나 SQLIOSim.exe 구성 파일에서 기본 구성 데이터를 로드합니다.
- 구성 파일을 사용하여 SQLIOSim을 사용하여 I/O 시뮬레이션을 자동화할 수도 있습니다. 자세한 내용은 SQLIOSim 구성 파일 섹션을 참조하세요.
SQL Server가 없는 컴퓨터에서 SQLIOSim 사용
SQL Server를 설치하기 전에 머신에서 확장 테스트에 SQLIOSim을 사용하는 것이 좋습니다. 이를 사용하여 나중에 데이터 및 로그 파일을 배치할 I/O 하위 시스템을 테스트하고 I/O 하위 시스템의 안정성을 확인합니다. 이 작업을 수행하려면 SQL Server가 설치된 컴퓨터에서 세 개의 SQLIOSim 파일을 복사하고 SQL Server를 설치하기 전에 테스트를 실행하는 것이 좋습니다. 미리 구성된 설정을 사용하려는 경우 SQLIOSim.com, SQLIOSim.exe 및 하나 이상의 구성 파일을 선택적으로 복사합니다. 그런 다음, 해당 컴퓨터에서 테스트 시뮬레이션을 실행합니다.
SQLIOSim을 사용하는 방법
SQLIOSim을 실행하는 동안에는 SQL Server 서비스를 실행할 필요가 없습니다. 실제로 SQLIOSim이 실행되는 동안에는 SQL Server를 실행하지 않는 것이 좋습니다. I/O 리소스와 경쟁할 수 있기 때문에.
Warning
테스트할 실제 SQL Server 데이터베이스 파일을 지정하지 마세요. SQLIOSim 유틸리티는 임의 테스트 패턴으로 데이터를 덮어쓰고 실제 SQL Server 데이터는 손실됩니다.
다음 몇 가지 예제에서는 GUI 및 명령줄을 사용하여 SQLIOSim을 실행하는 방법을 보여 줍니다.
예제 1: GUI 사용
C:\Program Files\Microsoft SQL Server\MSSQLXX로 이동합니다.<InstanceName>\MSSQL\Binn.
SQLIOSIM.EXE 애플리케이션을 시작합니다. 일부 기본 설정이 포함된 파일 및 구성 창을 볼 수 있습니다. 구성 요구 사항에 맞게 이러한 설정을 수정할 수 있습니다.
목록에서 첫 번째 mdx 파일 C:\temp\sqliosim\sqliosim.mdx 를 강조 표시합니다. 이 파일은 데이터 파일과 동일합니다.
위치, 크기, 최대 크기 또는 증분을 변경하여 파일 설정을 수정합니다. 데이터 파일을 시뮬레이션하려는 경우 로그 파일을 선택 취소된 상태로 유지합니다. 그런 다음, 적용 단추를 선택합니다.
이 예제에서는 파일의 위치가 D:\temp\sqliosim\sqliosim.mdx로 변경되고, 크기가 2048MB로 설정되고, 최대 크기가 4096MB로 설정되고, 증분 크기가 64MB로 설정된 것을 보여 줍니다.
ldx 접미사를 사용하여 두 번째 파일을 수정합니다. 이 파일은 트랜잭션 로그 파일에 해당하는 파일을 나타냅니다. 로그 파일 확인란을 사용하도록 설정해야 합니다. 완료되면 적용을 선택합니다.
테이블 형식 표 안의 화면 가운데에서 새 파일 옵션을 선택하여 목록에 파일을 더 추가할 수 있습니다. 새 파일을 선택하면 파일 위치를 입력하고 나머지 설정을 선택할 수 있습니다. 적용을 선택하는 것을 잊지 마세요. 예를 들어 다음과 같습니다.
구성에 만족하면 확인 단추를 선택합니다.
시뮬레이터>시작을 선택하여 SQL IO 시뮬레이션을 실행합니다. 또는 F12 또는 그 안에 녹색 원이 있는 맨 왼쪽 단추를 선택할 수 있습니다.
시뮬레이션이 완료되고 출력을 검사할 때까지 기다립니다.
예제 2: 명령줄 도구 및 구성 파일 사용
및 섹션에 대한
File1
File2
주석을 제거하고 값을 새 SQLIOSim 파일로 수정하여FileName
sqliosim.default.cfg.ini 파일을 수정합니다. 예시:[File1] FileName=D:\sqliosim\sqliosim.mdx InitialSize=100 MaxSize=200 Increment=10 Shrinkable=TRUE LogFile=FALSE Sparse=FALSE [File2] FileName=L:\sqliosim\sqliosim.ldx InitialSize=50 MaxSize=50 Increment=0 Shrinkable=FALSE LogFile=TRUE Sparse=FALSE
구성 파일 C:\temp\sqliosimconfig\sqliosim.default.cfg.ini 사용하여 SQLIOSIM.COM 실행합니다.
SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosimconfig\sqliosim.log.xml
예제 3: 스위치와 함께 명령줄 도구 사용
스위치를 사용하여 동시에 여러 디스크 볼륨을 테스트할 -dir
수 있습니다. 다음 예제에서는 500MB 파일을 만들고 300초(5분) 동안 테스트를 실행합니다.
SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosim\sqliosim.log.xml -dir "D:\sqliosim" -dir "F:\sqliosim\testfolder" -size 500 -d 300
예제 4: 여러 드라이브에 명령줄 도구 사용
다음 예제에서는 32GB 파일을 만들고 sqliosim.hwcache.cfg.ini 구성 파일을 사용하여 600초(10분) 동안 테스트를 실행합니다.
SQLIOSIM.COM -cfg "D:\Temp\SQLIOSIM\SQLIOSIM_Configs\sqliosim.hwcache.cfg.ini" -d 600 -dir D:\temp\sqliosim -log D:\temp\sqliosim\simlog.xml -size 32768
명령줄 매개 변수 SQLIOSim.com
SQLIOSIM.COM 기본 동작을 제어하기 위해 제한된 수의 명령줄 매개 변수를 허용합니다. SQLIOSim 유틸리티에 대한 구성 파일은 고급 동작 제어를 제공합니다. 명령줄 매개 변수와 구성 파일 옵션이 겹치면 명령줄 매개 변수가 우선합니다.
매개 변수 | Comment(설명) |
---|---|
-cfg file |
Sqliosim.cfg.ini 기본 구성 파일을 재정의합니다. 유틸리티에서 파일을 찾을 수 없는 경우 SQLIOSim 유틸리티는 오류를 반환합니다. |
-save file |
결과 구성을 구성 파일에 저장합니다. 이 옵션을 사용하여 초기 구성 파일을 만들 수 있습니다. |
-log file |
오류 로그 파일 이름 및 오류 로그 파일 경로를 지정합니다. 기본 파일 이름은 Sqliosim.log.xml. |
-dir dir |
데이터(.mdf) 파일 및 로그(.ldf) 파일을 만들 위치를 설정합니다. 이 명령을 여러 번 실행할 수 있습니다. 대부분의 경우 이 위치는 드라이브 루트 또는 볼륨 탑재 지점입니다. 이 위치는 긴 경로 또는 UNC 경로일 수 있습니다. |
-d seconds |
주 실행 기간을 설정합니다. 이 값은 준비 단계 및 확인 단계를 제외합니다. |
-size MB |
데이터 파일의 초기 크기를 MB(메가바이트)로 설정합니다. 파일은 초기 크기의 최대 2배까지 증가할 수 있습니다. 로그 파일의 크기는 데이터 파일의 절반 크기로 계산됩니다. 그러나 로그 파일은 50MB를 초과할 수 없습니다. |
SQLIOSim 구성 파일
SQLIOSim과 함께 구성 파일을 사용하여 I/O 시뮬레이션에 대한 모든 설정을 미리 선택할 수 있습니다. 이 구성 파일은 SQLIOSim 실행을 자동화하는 데 도움이 될 수 있습니다.
다양한 테스트에 대한 샘플 구성 파일은 SQL Server 지원 팀의 GitHub 리포지토리에서 다운로드할 수 있습니다.
구성 파일을 사용할 필요가 없습니다. 구성 파일을 사용하지 않는 경우 모든 매개 변수는 데이터 파일 위치 및 로그 파일 위치를 제외한 기본값을 사용합니다. 데이터 파일 위치와 로그 파일 위치를 지정하려면 다음 방법 중 하나를 사용해야 합니다.
- SQLIOSIM.COM 파일에서 명령줄 매개 변수를 사용합니다.
- SQLIOSim.exe 파일을 실행한 후 파일 및 구성 대화 상자를 사용합니다.
- 구성 파일의 파일<N> 섹션을 사용합니다.
샘플 구성 파일
자동화된 SQLIOSim 실행에 사용하려는 경우 5개의 샘플 구성 파일을 사용할 수 있습니다.
샘플 파일 | 설명 | 기본 구성 파일과 다른 매개 변수 |
---|---|---|
sqliosim.default.cfg.ini | ||
sqliosim.hwcache.cfg.ini | - 읽기 최소화 - 파일이 메모리에 완전히 유지되도록 작게 만들어집니다. - 순차적 읽기 없음 |
AuditUser 섹션 및 ReadAheadUser 섹션의 경우:CacheHitRatio=10000 UserCount=0 |
sqliosim.nothrottle.cfg.ini | - I/O 제한 제거 - I/O 볼륨을 늘리기 위해 대기하는 시간 최소화 |
TargetIODuration=1000000 AuditDelay=10 RADelay=10 |
sqliosim.seqwrites.cfg.ini | - 읽기 최소화 - 파일이 메모리에 완전히 유지되도록 작게 만들어집니다. - 파일을 축소할 수 없게 만들어집니다. - 순차적 읽기 없음 - 임의 액세스 없음 - 지연 없이 큰 청크로 대량 업데이트 |
Shrinkable=FALSE AuditUser, ReadAheadUser 및 RandomUser 섹션의 경우: CacheHitRatio=10000 ForceReadAhead=FALSE BuffersBUMin=600 BuffersBUMax=1000 BUDelay=1 UserCount=0 |
sqliosim.sparse.cfg.ini | - 32MB의 메모리만 사용 - 많은 미해결 I/O 요청을 사용할 수 있을 만큼 대상 I/O 기간을 크게 만듭니다. - 분산형/수집 API를 사용하지 않도록 설정하여 모든 8KB 페이지에 대해 별도의 I/O 요청을 발급합니다. - 축소할 수 없는 1GB 파일 만들기 - 파일에 축소할 수 없는 1GB 보조 스파스 스트림 만들기 |
MaxMemoryMB=32 TestCycles=3 TestCycleDuration=600 TargetIODuration=10000 UseScatterGather=FALSE [File1] FileName=sqliosim.mdx InitialSize=1000 MaxSize=1000 Increment=10 Shrinkable=FALSE LogFile=FALSE Sparse=FALSE [File2] FileName=sqliosim.ldx InitialSize=50 MaxSize=50 Increment=0 Shrinkable=FALSE LogFile=TRUE Sparse=FALSE [File3] FileName=sqliosim.mdx:replica InitialSize=1000 MaxSize=1000 Increment=10 Shrinkable=FALSE LogFile=FALSE Sparse=TRUE |
매개 변수 값에 대한 주의 사항
- 매개 변수의 이름이 매개 변수가 비율 또는 백분율임을 나타내는 경우 매개 변수 값은 백분율 또는 비율을 0.01로 나눈 값으로 표현됩니다. 예를 들어 매개 변수의 값은
CacheHitRatio
.입니다10 percent
. 이 값은 10을 0.01로1000
나눈 값으로 표현됩니다1000
. 백분율 매개 변수의 최대값은 .입니다10000
. - 매개 변수 형식이 숫자이고 숫자가 아닌 값을 매개 변수에 할당하는 경우 SQLIOSim 유틸리티는 매개 변수를
0
로 설정합니다. - 매개 변수 형식이
Boolean
면 매개 변수에 할당할 수 있는 유효한 값은 다음과 같습니다false
true
. 또한 값은 대/소문자를 구분합니다. SQLIOSim 유틸리티는 잘못된 값을 무시합니다. - 매개 변수 쌍이 최소값과 최대값을 나타내는 경우 최소값은 최대값을 초과해서는 안됩니다. 예를 들어 매개 변수 값이
MinIOChainLength
매개 변수 값보다MaxIOChainLength
크지 않아야 합니다. - 매개 변수가 여러 페이지를 나타내는 경우 SQLIOSim 유틸리티는 SQLIOSim 유틸리티가 처리하는 파일에 대해 매개 변수에 할당하는 값을 확인합니다. SQLIOSim 유틸리티는 페이지 수가 파일 크기를 초과하지 않는지 확인하기 위해 이 검사를 수행합니다.
구성 파일 섹션
구성 파일에는 다음과 같은 몇 가지 섹션이 있습니다.
- [CONFIG]
- [RandomUser]
- [AuditUser]
- [ReadAheadUser]
- [BulkUpdateUser]
- [ShrinkUser]
- [파일<N>] (자리 표시자는
<N>
숫자)
이러한 각 섹션은 다음 섹션에 설명되어 있습니다.
CONFIG 섹션
SQLIOSim 유틸리티는 SQLIOSim 구성 파일의 CONFIG 섹션에서 지정한 값을 사용하여 전역 테스트 동작을 설정합니다.
매개 변수 | 기본값 | 설명 | 설명 |
---|---|---|---|
ErrorFile |
sqliosim.log.xml | XML 형식 로그 파일의 이름 | |
CPUCount |
컴퓨터의 CPU 수 | 만들 논리 CPU 수 | 최대 CPU는 64개입니다. |
Affinity |
0 | 논리적 CPU에 적용할 물리적 CPU 선호도 마스크 | 선호도 마스크는 활성 CPU 마스크 내에 있어야 합니다. 값 0 은 사용 가능한 모든 CPU가 사용됨을 의미합니다. |
MaxMemoryMB |
SQLIOSim 유틸리티가 시작될 때 사용 가능한 실제 메모리 | 버퍼 풀 크기(MB) | 이 값은 컴퓨터의 총 실제 메모리 양을 초과할 수 없습니다. |
StopOnError |
true | 첫 번째 오류가 발생할 때 시뮬레이션을 중지합니다. | |
TestCycles |
1 | 수행할 전체 테스트 주기 수 | 값은 0 테스트 주기의 무한 수를 나타냅니다. |
TestCycleDuration |
300 | 주기가 끝날 때 감사 패스를 제외하고 테스트 주기 기간(초) | |
CacheHitRatio |
1000 | SQLIOSim 유틸리티가 디스크에서 읽을 때 시뮬레이션된 캐시 적중률 | |
MaxOutstandingIO |
0 | 프로세스 전체에서 허용되는 미해결 I/O 작업의 최대 수 | 값은 140,000을 초과할 수 없습니다. 값 0 은 최대 약 140,000개의 I/O 작업이 허용됨을 의미합니다. 유틸리티의 제한입니다. |
TargetIODuration |
100 | 제한의 대상이 되는 I/O 작업 기간(밀리초) | 평균 I/O 기간이 대상 I/O 기간을 초과하는 경우 SQLIOSim 유틸리티는 미해결 I/O 작업 수를 제한하여 부하를 줄이고 I/O 완료 시간을 개선합니다. |
AllowIOBursts |
true | 많은 I/O 요청을 게시하도록 제한을 해제할 수 있습니다. | I/O 버스트는 테스트 주기가 끝날 때 초기 업데이트, 초기 검사점 및 최종 검사점 통과 중에 활성화됩니다. 매개 변수는 MaxOutstandingIO 여전히 적용됩니다. 긴 I/O 경고를 예상할 수 있습니다. |
NoBuffering |
true | FILE_FLAG_NO_BUFFERING 옵션을 사용합니다. |
SQL Server는 .를 사용하여 FILE_FLAG_NO_BUFFERING == true 데이터베이스 파일을 엽니다. Analysis Services와 같은 일부 유틸리티 및 서비스는 다음을 사용합니다 FILE_FLAG_NO_BUFFERING == false . 서버를 완전히 테스트하려면 각 설정에 대해 하나의 테스트를 실행합니다. |
WriteThrough |
true | FILE_FLAG_WRITE_THROUGH 옵션을 사용합니다. |
SQL Server는 .를 사용하여 FILE_FLAG_WRITE_THROUGH == true 데이터베이스 파일을 엽니다. 그러나 일부 유틸리티 및 서비스는 .를 사용하여 FILE_FLAG_WRITE_THROUGH == false 데이터베이스 파일을 엽니다. 예를 들어 SQL Server Analysis Services는 .를 사용하여 FILE_FLAG_WRITE_THROUGH == false 데이터베이스 파일을 엽니다. 서버를 완전히 테스트하려면 각 설정에 대해 하나의 테스트를 실행합니다. |
ScatterGather |
true | 사용 ReadScatter 또는 WriteGather API |
이 매개 변수를 설정 true NoBuffering 하면 매개 변수도 .로 true 설정됩니다.SQL Server는 대부분의 I/O 요청에 분산/수집 I/O를 사용합니다. |
ForceReadAhead |
true | 데이터를 이미 읽은 경우에도 미리 읽기 작업을 수행합니다. | SQLIOSim 유틸리티는 데이터 페이지가 버퍼 풀에 이미 있는 경우에도 읽기 명령을 실행합니다. Microsoft SQL Server 지원에서 실제 설정을 사용하여 I/O 문제를 노출했습니다. |
DeleteFilesAtStartup |
true | 파일이 있는 경우 시작할 때 파일 삭제 | 파일에는 여러 데이터 스트림이 포함될 수 있습니다. 항목에 File <N> FileName 지정된 스트림만 파일에서 잘립니다. 기본 스트림을 지정하면 모든 스트림이 삭제됩니다. |
DeleteFilesAtShutdown |
false | 테스트가 완료된 후 파일 삭제 | 파일에는 여러 데이터 스트림이 포함될 수 있습니다. 항목에 File <N> FileName 지정한 데이터 스트림만 파일에서 잘립니다. 기본 데이터 스트림을 지정하면 SQLIOSim 유틸리티가 모든 데이터 스트림을 삭제합니다. |
StampFiles |
false | 0을 스탬프하여 파일 확장 | 파일이 큰 경우 이 프로세스는 시간이 오래 걸릴 수 있습니다. 이 매개 변수를 false로 설정하면 SQLIOSim 유틸리티는 유효한 데이터 표식을 설정하여 파일을 확장합니다. SQL Server 2005는 데이터 파일에 인스턴트 파일 초기화 기능을 사용합니다. 데이터 파일이 로그 파일이거나 인스턴트 파일 초기화를 사용하도록 설정되지 않은 경우 SQL Server는 0 스탬프를 수행합니다. SQL Server 2000 이전 버전의 SQL Server는 항상 0 스탬프를 수행합니다. 즉시 파일 초기화와 0 스탬핑이 모두 올바르게 작동하는지 확인하려면 테스트 중에 매개 변수 값을 StampFiles 전환해야 합니다. |
파일<N> 섹션
SQLIOSim 유틸리티는 여러 파일 테스트를 허용하도록 설계되었습니다. 섹션은 File<N>
테스트의 각 파일에 대해 ' [File2]
로 [File1]
표시됩니다.
매개 변수 | 기본값 | 설명 | 설명 |
---|---|---|---|
FileName |
기본값 없음 | 파일 이름 및 경로 | 매개 변수는 FileName 긴 경로 또는 UNC 경로일 수 있습니다. 보조 스트림 이름 및 형식을 포함할 수도 있습니다. 예를 들어 매개 변수를 FileName .로 설정할 file.mdf:stream2 수 있습니다.참고 SQL Server 2005에서 DBCC 작업은 스트림을 사용합니다. 스트림 테스트를 수행하는 것이 좋습니다. |
InitialSize |
기본값 없음 | 초기 크기(MB) | 기존 파일이 매개 변수에 InitialSize 지정된 값보다 큰 경우 SQLIOSim 유틸리티는 기존 파일을 축소하지 않습니다. 기존 파일이 더 작은 경우 SQLIOSim 유틸리티는 기존 파일을 확장합니다. |
MaxSize |
기본값 없음 | 최대 크기(MB) | 파일은 매개 변수에 대해 지정 MaxSize 한 값보다 커질 수 없습니다. |
Increment |
0 | 파일이 증가하거나 축소되는 증분 크기(MB)입니다. 자세한 내용은 이 문서의 섹션을 ShrinkUser 참조하세요. |
SQLIOSim 유틸리티는 시작 시 매개 변수를 Increment 조정하여 상황이 설정 Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles 되도록 합니다.값 Increment 이면 0 SQLIOSim 유틸리티는 파일을 축소할 수 없는 파일로 설정합니다. |
Shrinkable |
false | 파일을 축소하거나 확장할 수 있는지 여부를 나타냅니다. | 매개 변수를 Increment 0 설정하는 경우 파일을 축소할 수 없도록 설정합니다. 이 경우 매개 변수false 를 Shrinkable .로 설정해야 합니다. 매개 변수를 Increment 다른 0 값으로 설정하면 파일을 축소할 수 있도록 설정합니다. 이 경우 매개 변수true 를 Shrinkable .로 설정해야 합니다. |
Sparse |
false | 파일에 스파스 특성을 설정해야 하는지 여부를 나타냅니다. | 기존 파일의 경우 매개 변수를 false로 설정할 Sparse 때 SQLIOSim 유틸리티가 스파스 특성을 지우지 않습니다.SQL Server 2005는 스파스 파일을 사용하여 스냅샷 데이터베이스 및 보조 DBCC 스트림을 지원합니다. 스파스 파일과 스트림을 모두 사용하도록 설정한 다음 테스트 통과를 수행하는 것이 좋습니다. 참고 파일 설정에 대해 설정한 Sparse = true 경우 섹션에서 지정 NoBuffering = false config 하지 마세요. 이 두 가지 충돌하는 조합을 사용하는 경우 도구에서 다음과 유사한 오류가 발생할 수 있습니다.오류:-=====오류: 0x80070467 오류 텍스트: 하드 디스크에 액세스하는 동안 다시 시도한 후에도 디스크 작업이 실패했습니다. 설명: C:\SQLIOSim.mdx 페이지에서 버퍼 유효성 검사 실패: 28097 |
LogFile |
false | 파일에 사용자 또는 트랜잭션 로그 데이터가 포함되어 있는지 여부를 나타냅니다. | 하나 이상의 로그 파일을 정의해야 합니다. |
RandomUser 섹션
SQLIOSim 유틸리티는 OLTP(온라인 트랜잭션 처리) I/O 패턴과 같은 임의 쿼리 작업을 수행하는 SQL Server 작업자를 시뮬레이션하기 위해 섹션에서 지정 RandomUser
한 값을 사용합니다.
매개 변수 | 기본값 | 설명 | 설명 |
---|---|---|---|
UserCount |
-1 | 동시에 실행되는 임의 액세스 스레드 수 | 값은 다음 값을 CPUCount*1023-100 초과할 수 없습니다.또한 모든 사용자의 총 수는 이 값을 초과할 수 없습니다. 값이 0이면 임의 액세스 사용자를 만들 수 없습니다. 값은 값 min(CPUCount*2, 8) 의 -1 자동 구성을 사용해야 한다는 의미입니다.참고 SQL Server 시스템에는 수천 개의 세션이 있을 수 있습니다. 대부분의 세션에는 활성 요청이 없습니다. count(*) 이 테스트 매개 변수 값을 설정하기 위한 기준으로 DMV(동적 관리 뷰)에 대한 쿼리 sys.dm_exec_requests 의 함수를 사용합니다.CPUCount 여기서는 섹션의 CPUCount 매개 변수 값을 참조합니다 CONFIG .이 값은 min(CPUCount*2, 8) 사이의 CPUCount*2 값과 8 . |
JumpToNewRegionPercentage |
500 | 파일의 새 영역으로 이동할 수 있는 가능성 | 영역의 시작이 임의로 선택됩니다. 영역의 크기는 매개 변수 값과 매개 변수 값 MinIOChainLength 사이의 임의 MaxIOChainLength 값입니다. |
MinIOChainLength |
1 | 페이지의 최소 지역 크기 | |
MaxIOChainLength |
100 | 페이지의 최대 지역 크기 | SQL Server 2005 Enterprise Edition 및 SQL Server 2000 Enterprise Edition은 최대 1,024페이지까지 읽을 수 있습니다. 최소값은 0 입니다. 최대값은 시스템 메모리에 의해 제한됩니다.일반적으로 임의 사용자 활동으로 인해 작은 검색 작업이 발생합니다. 섹션에 지정된 ReadAheadUser 값을 사용하여 더 큰 검색 작업을 시뮬레이션합니다. |
RandomUserReadWriteRatio |
9000 | 업데이트할 페이지의 백분율 | 임의 길이 체인은 지역에서 선택되며 읽을 수 있습니다. 이 매개 변수는 업데이트하고 디스크에 쓸 페이지의 백분율을 정의합니다. |
MinLogPerBuffer |
64 | 최소 로그 레코드 크기(바이트) | 값은 디스크 내 섹터 크기의 배수이거나 디스크 내 섹터 크기에 균등하게 맞는 크기여야 합니다. |
MaxLogPerBuffer |
8192 | 최대 로그 레코드 크기(바이트) | 이 값은 64,000을 초과할 수 없습니다. 값은 디스크 내 섹터 크기의 배수여야 합니다. |
RollbackChance |
100 | 메모리 내 작업이 발생하여 롤백 작업이 발생할 가능성이 있습니다. | 이 롤백 작업이 발생하면 SQL Server는 로그 파일에 쓰지 않습니다. |
SleepAfter |
5 | 각 주기 후의 절전 시간(밀리초) |
AuditUser 섹션
SQLIOSim 유틸리티는 페이지에 대한 정보를 읽고 감사하는 DBCC 작업을 시뮬레이션하기 위해 섹션에서 지정 AuditUser
한 값을 사용합니다. 매개 변수 값 UserCount
이 .로 설정된 0
경우에도 유효성 검사가 수행됩니다.
매개 변수 | 기본값 | 설명 | 설명 |
---|---|---|---|
UserCount |
2 | 감사 스레드 수 | 값은 다음 값을 CPUCount*1023-100 초과할 수 없습니다.또한 모든 사용자의 총 수는 이 값을 초과할 수 없습니다. 값은 임의 0 액세스 사용자를 만들 수 없음을 의미합니다. 값은 값min(CPUCount*2, 8) 의 -1 자동 구성을 사용해야 한다는 의미입니다.참고 SQL Server 시스템에는 수천 개의 세션이 있을 수 있습니다. 대부분의 세션에는 활성 요청이 없습니다. count(*) 이 테스트 매개 변수 값을 설정하기 위한 기준으로 DMV에 대한 쿼리 sys.dm_exec_requests 의 함수를 사용합니다.CPUCount 여기서는 섹션의 CPUCount 매개 변수 값을 참조합니다 CONFIG .이 값은 min(CPUCount*2, 8) 사이의 CPUCount*2 값과 8 . |
BuffersValidated |
64 | ||
DelayAfterCycles |
2 | BuffersValidated 주기 수가 완료된 후 AuditDelay 매개 변수 적용 | |
AuditDelay |
200 | 각 DelayAfterCycles 작업 후 대기할 시간(밀리초) |
ReadAheadUser 섹션
SQLIOSim 유틸리티는 섹션에 ReadAheadUser
지정된 값을 사용하여 SQL Server 미리 읽기 작업을 시뮬레이션합니다. SQL Server는 미리 읽기 작업을 활용하여 비동기 I/O 기능을 최대화하고 쿼리 지연을 제한합니다.
매개 변수 | 기본값 | 설명 | 설명 |
---|---|---|---|
UserCount |
2 | 미리 읽기 스레드 수 | 값은 다음 값을 CPUCount*1023-100 초과할 수 없습니다.또한 모든 사용자의 총 수는 이 값을 초과할 수 없습니다. 값은 임의 0 액세스 사용자를 만들 수 없음을 의미합니다. 값 -1 은 다음 값 min(CPUCount*2, 8) 의 자동 구성을 사용해야 한다는 의미입니다.참고 SQL Server 시스템에는 수천 개의 세션이 있을 수 있습니다. 대부분의 세션에는 활성 요청이 없습니다. count(*) 이 테스트 매개 변수 값을 설정하기 위한 기준으로 DMV에 대한 쿼리 sys.dm_exec_requests 의 함수를 사용합니다.CPUCount 여기서는 CONFIG 섹션의 CPUCount 매개 변수 값을 참조합니다.이 값은 min(CPUCount*2, 8) 사이의 CPUCount*2 값과 8 . |
BuffersRAMin |
32 | 주기당 읽을 최소 페이지 수 | 최소값은 0 입니다. 최대값은 시스템 메모리에 의해 제한됩니다. |
BuffersRAMax |
64 | 주기당 읽을 최대 페이지 수 | SQL Server Enterprise 버전은 단일 요청으로 최대 1,024페이지를 읽을 수 있습니다. CPU, 메모리 및 디스크 리소스가 많은 컴퓨터에 SQL Server를 설치하는 경우 파일 크기와 미리 읽기 크기를 늘리는 것이 좋습니다. |
DelayAfterCycles |
2 | RADelay 지정된 주기 수가 완료된 후 매개 변수 적용 |
|
RADelay |
200 | 각 DelayAfterCycles 작업 후 대기할 시간(밀리초) |
BulkUpdateUser 섹션
SQLIOSim 유틸리티는 섹션에서 지정 BulkUpdateUser
한 값을 사용하여 작업 및 작업과 BULK INSERT
같은 SELECT...INTO
대량 작업을 시뮬레이션합니다.
매개 변수 | 기본값 | 설명 | 설명 |
---|---|---|---|
UserCount |
-1 | 스레드 수 BULK UPDATE |
값은 다음 값을 초과할 수 없습니다. CPUCount*1023-100 값 -1 은 다음 값 min(CPUCount*2, 8) 의 자동 구성을 사용해야 한다는 의미입니다.참고 SQL Server 시스템에는 수천 개의 세션이 있을 수 있습니다. 대부분의 세션에는 활성 요청이 없습니다. count(*) 이 테스트 매개 변수 값을 설정하기 위한 기준으로 DMV에 대한 쿼리 sys.dm_exec_requests 의 함수를 사용합니다.CPUCount 여기서는 섹션의 CPUCount 매개 변수 값을 참조합니다 CONFIG .이 값은 min(CPUCount*2, 8) 사이의 CPUCount*2 값과 8 . |
BuffersBUMin |
64 | 주기당 업데이트할 최소 페이지 수 | |
BuffersBUMax |
128 | 주기당 업데이트할 최대 페이지 수 | 최소값은 0 입니다. 최대값은 시스템 메모리에 의해 제한됩니다. |
DelayAfterCycles |
2 | BUDelay 지정된 주기 수가 완료된 후 매개 변수 적용 |
|
BUDelay |
10 | 각 DelayAfterCycles 작업 후 대기할 시간(밀리초) |
ShrinkUser 섹션
SQLIOSim 유틸리티는 섹션에서 지정 ShrinkUser
한 값을 사용하여 DBCC 축소 작업을 시뮬레이션합니다. SQLIOSim 유틸리티는 이 섹션을 ShrinkUser
사용하여 파일을 확장할 수도 있습니다.
매개 변수 | 기본값 | 설명 |
---|---|---|
MinShrinkInterval |
120 | 축소 작업 사이의 최소 간격(초) |
MaxShrinkInterval |
600 | 축소 작업 사이의 최대 간격(초) |
MinExtends |
1 | SQLIOSim 유틸리티가 파일을 늘리거나 축소할 최소 증분 수 |
MaxExtends |
20 | SQLIOSim 유틸리티가 파일을 늘리거나 축소할 최대 증분 수 |
구성 .ini 파일 주석
구성 .ini 파일의 줄 시작 부분에 있는 세미콜론 문자(;) )를 사용하면 줄이 단일 주석으로 처리됩니다.
파일 만들기
SQLIOSim 유틸리티는 별도의 데이터 파일과 로그 파일을 만들어 SQL Server가 데이터 파일 및 로그 파일에서 생성하는 I/O 패턴을 시뮬레이션합니다. SQLIOSim 유틸리티는 SQL Server 엔진을 사용하여 스트레스 작업을 수행하지 않습니다. 따라서 SQL SERVER를 설치하기 전에 SQLIOSim 유틸리티를 사용하여 컴퓨터를 테스트할 수 있습니다.
SQLIOSim 유틸리티를 실행할 때 SQL Server 데이터베이스 파일에 사용하는 것과 동일한 파일 위치를 지정해야 합니다. 이렇게 하면 유틸리티는 SQL Server 데이터베이스와 동일한 I/O 경로를 시뮬레이션합니다.
기존 테스트 파일에 대한 압축 또는 암호화 특성을 사용하도록 설정할 수 있습니다. 테스트 파일을 만들 기존 디렉터리에 대해 이러한 특성을 사용하도록 설정할 수도 있습니다. 이러한 특성을 사용하도록 설정하는 해당 옵션은 파일 또는 디렉터리에 대한 속성 대화 상자에 있습니다.
기본적으로 SQLIOSim 유틸리티는 .mdx 및 .ldx 파일 이름 확장명이 있는 테스트 파일을 만듭니다. 따라서 이러한 파일은 기존 데이터 및 로그 파일을 덮어쓰지 않습니다.
Warning
테스트할 실제 SQL Server 데이터베이스 파일을 지정하지 마세요. SQLIOSim 유틸리티는 임의 테스트 패턴으로 데이터를 덮어쓰고 실제 SQL Server 데이터는 손실됩니다.
SQLIOSim 오류 로그 및 처리
SQLIOSim 유틸리티는 다음 위치 중 하나에 오류 로그 파일을 만듭니다.
- 로그 시작 매개 변수에 지정한 위치
- Sqliosim.cfg.ini 파일의
ErrorFile=
줄에 지정한 위치
SQLIOSim.log.xml 오류 로그에는 실행에 대한 세부 정보가 포함되어 있습니다. 이러한 세부 정보에는 오류 정보가 포함됩니다. 오류 정보 및 경고 정보는 로그를 주의 깊게 검토합니다.
참고 항목
SQLIOSim 유틸리티에서 오류가 발생하는 경우 하드웨어 제조업체에 문제의 근본 원인을 확인하는 데 도움을 요청하는 것이 좋습니다. 디바이스 드라이버, 파일 시스템 필터 드라이버(예: 바이러스 백신) 또는 OS로 인해 문제가 발생할 수도 있습니다.
여러 복사본
SQLIOSim 유틸리티는 다중 파일 수준 테스트 및 다중 사용자 수준 테스트를 수용합니다. SQLIOSim 유틸리티에는 여러 호출이 필요하지 않습니다. 다음 조건이 충족되면 SQLIOSim 유틸리티의 여러 복사본을 실행할 수 있습니다.
- 모든 복사본은 유틸리티 인스턴스당 고유한 테스트 파일을 참조합니다.
- 각 인스턴스의 매개 변수는
MaxMemoryMB
각 인스턴스에 충분한 겹치지 않는 메모리 영역을 제공합니다.
각 인스턴스에 MaxMemoryMB
대한 매개 변수의 합계는 총 실제 메모리보다 작거나 같아야 합니다. 검사점 시뮬레이션과 같은 일부 테스트 단계는 메모리 집약적일 수 있으며 여러 복사본을 실행할 때 메모리 부족 조건을 만들 수 있습니다. 메모리 부족 오류가 발생하는 경우 실행 중인 유틸리티 복사본 수를 줄일 수 있습니다.