亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

八、IO優化(2)IO性能評估工具

發布時間:2020-07-01 15:45:47 來源:網絡 閱讀:3969 作者:jimshu 欄目:移動開發

  I/O子系統是SQL Server性能的重要組成部分。當我們為SQL Server配置一臺新的服務器,或者添加或修改已有系統的磁盤配置時,都需要判斷I/O子系統的性能。

  測試I/O讀寫的塊大小,需要區分順序讀寫與隨機讀寫(sequential/random)。

(1)順序I/O

  對于順序I/O,塊大小應當包括 8 KB、64 KB、128 KB、256 KB、1024 KB。這是因為SQL Server企業版的“預讀”Read-ahead 最高可達到1024KB。測量結果主要關注于磁盤的吞吐量(throughput),計量單位為MB/s 。


(2)隨機I/O

  對于隨機I/O,一般僅關注于 8 KB的塊。測量結果主要關注于磁盤的尋道能力,計量單位為I/Os per second(IOPs)。


  對于OLTP,有以下特點:

(1)OLTP處理在本質上一般是對數據文件(mdf和ndf)隨機的讀與寫。

(2)在大多數情況下,從本質上來說,讀的活動是持續的。

(3)對數據文件的寫的活動,主要是檢查點(checkpoint)時才發生。檢查點的頻率是由恢復間隔設置(recovery interval settings)決定的。

(4)事務日志的寫,從本質上說,是連續的、無固定大小的,依賴于工作負荷的性質(sector aligned up to 60 KB)。

(5)事務日志的讀,從本質上說,是連續的(sector aligned up to 120 KB)。


  Microsoft官方針對SQL Server 2005發布了一個最佳實踐的白皮書,推薦以下3種工具。 http://technet.microsoft.com/zh-cn/library/cc966412.aspx


一、SQLIO

1. 安裝SQLIO

  SQLIO是Microsoft官方的硬盤壓力測試工具,用于測試磁盤的IOPS(Input/Output per second)值。此工具盡管并不是針對SQL Server工作模式來設計的,但是仍然可以用來診斷與SQL Server相關的一些I/O類型的性能,可以測量磁盤的IOPs、吞吐量 (MB/s)和延遲時間。


  首先需要到微軟的官網下載 SQLIO Disk Subsystem Benchmark Tool http://www.microsoft.com/en-us/download/details.aspx?id=20163 (本文附件即是)


  下載后在運行SQLIO.msi文件,進入安裝向導。

八、IO優化(2)IO性能評估工具


八、IO優化(2)IO性能評估工具


八、IO優化(2)IO性能評估工具


八、IO優化(2)IO性能評估工具


八、IO優化(2)IO性能評估工具


2. 配置參數文件

  打開安裝所在的文件夾。用文本編輯工具修改param.txt,例如:

f:\testfile.dat 2 0x0 300

#d:\testfile.dat 2 0x0 100

  每一行都有4個參數,分別為:

(1)Path to test file。測試用的文件和它的完整路徑。上例表示要測試F盤的IOPS,并在F盤生成一個名為testfile.dat的測試文件。

(2)Number of threads (per test file)。測試時,同時使用多少個線程。建議和CPU的數量一致。

(3)Mask。始終為0x0 。

(4)Size of test file in MB。生成的一個測試文件的大小。


3. 運行測試

  運行“命令提示符”,轉到SQLIO的安裝路徑,運行以下命令(區分大小寫):

sqlio -kR -s360 -frandom -o8 -b8 -LS -Fparam.txt


  詳細的參數如下:

-k<R|W>

kind of IO (R=reads, W=writes)

-t<threads>

number of threads

-s<secs>

number of seconds to run

-d<drive1>..<driveN>

use same filename on each drive letter given

-R<drive1>,,<driveN>

raw drive letters/number on which to run

-f<stripe factor>

stripe size in blocks, random, or sequential

-p[I]<cpu affinity>

cpu number for affinity (0 based)(I=ideal)

-a[R[I]]<cpu mask>

cpu mask for (R=roundrobin (I=ideal)) affinity

-o<#outstanding>

depth to use for completion routines

-b<io size(KB)>

IO block size in KB

-i<#IOs/run>

number of IOs per IO run

-m<[C|S]><#sub-blks>

do multi blk IO (C=copy, S=scatter/gather)

-L<[S|P][i|]>

latencies from (S=system, P=processor) timer

-U[p]

report system (p=per processor) utilization

-B<[N|Y|H|S]>

set buffering (N=none, Y=all, H=hdwr, S=sfwr)

-S<#blocks>

start I/Os #blocks into file

-v1.1.1

I/Os runs use same blocks, as in version 1.1.1

-64

use 64 bit memory operations

-F<paramfile>

read parameters from <paramfile>

Defaults:

-kR -t1 -s30 -f64 -b2 -i64 -BN testfile.dat

Maximums:

-t (threads): 256

no. of files, includes -d & -R: 256

filename length: 256


4. 查看結果

C:\Program Files\SQLIO>sqlio -kR -s360 -frandom -o8 -b8 -LS -Fparam.txt

sqlio v1.5.SG

using system counter for latency timings, 14318180 counts per second

parameter file used: param.txt

file F:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)

2 threads reading for 360 secs from file F:\testfile.dat

using 8KB random IOs

enabling multiple I/Os per thread with 8 outstanding

size of file F:\testfile.dat needs to be: 314572800 bytes

current file size: 0 bytes

need to expand by: 314572800 bytes

expanding F:\testfile.dat ... done.

using specified size: 300 MB for file: F:\testfile.dat

initialization done

CUMULATIVE DATA:

throughput metrics:

IOs/sec: 2209.73

MBs/sec: 73.51

latency metrics:

Min_Latency(ms): 0

Avg_Latency(ms): 0

Max_Latency(ms): 107

histogram:

ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+

%: 98 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0


  重點關注輸出結果中的IOs/sec和MBs/sec的值。


5. 注意事項

(1)虛擬機中的測試結果將是虛假的,因為虛擬機的硬盤映像文件的緩存機制很復雜。

(2)如果存儲設備(SAN或RAID)有緩存,則param.txt文件中Size of test file in MB值必須為讀寫緩存的2倍至4倍。

(3)需要使用各種不同的參數測試。示例腳本如下:

::Test randmon IO's of 8K

call sqlio -kW -s600 -frandom -o32 -b8 -LS -Fparam.txt

call sqlio -kR -s600 -frandom -o32 -b8 -LS -Fparam.txt


::Test small sequential writes

call sqlio -kW -s60 -fsequential -o1 -b4 -LS -Fparam.txt

call sqlio -kW -s60 -fsequential -o1 -b8 -LS -Fparam.txt

call sqlio -kW -s60 -fsequential -o1 -b16 -LS -Fparam.txt

call sqlio -kW -s60 -fsequential -o1 -b32 -LS -Fparam.txt

call sqlio -kW -s60 -fsequential -o1 -b64 -LS -Fparam.txt


::Test large sequential read/write

call sqlio -kR -s60 -fsequential -o8 –b8 -LS -Fparam.txt

call sqlio -kR -s60 -fsequential -o8 -b64 -LS -Fparam.txt

call sqlio -kR -s60 -fsequential -o8 -b128 -LS -Fparam.txt

call sqlio -kR -s60 -fsequential -o8 -b256 -LS -Fparam.txt

call sqlio -kW -s60 -fsequential -o8 –b8 -LS -Fparam.txt

call sqlio -kW -s60 -fsequential -o8 -b64 -LS -Fparam.txt

call sqlio -kW -s60 -fsequential -o8 -b128 -LS -Fparam.txt

call sqlio -kW -s60 -fsequential -o8 -b256 -LS -Fparam.txt



二、SQLIOSim

1. 簡介

  SQLIOSim 用于驗證加壓后的I/O子系統的基本功能。此工具試圖模擬實際的 SQL Server I/O 模式(隨機讀寫數據文件、連續讀寫日志文件)并檢查結果的正確性。此工具通常用于隔離 SQL Server 的硬件相關問題。

  此工具默認隨SQL Server同時安裝,也可以到官網下載。有2個文件,一個是命令行工具,另一個是圖形界面工具。

八、IO優化(2)IO性能評估工具


2. 圖形界面

(1)配置測試文件用配置參數

  “以管理員身份運行”打開圖形工具。首先出現“File and Configuration”界面。默認會為每一個磁盤驅動器創建2個文件,分別模擬SQL Server的數據文件和日志文件。在下例中,修改其中一個數據文件的配置。為了自動刪除測試文件,我們還要選擇“Delete Files At Shutdown”。

八、IO優化(2)IO性能評估工具

(2)測試

  完成了上述配置,就回到主界面。點一下工具欄的綠色的“Start”開始測試。

八、IO優化(2)IO性能評估工具

  測試完成后,會出現一個提示。

八、IO優化(2)IO性能評估工具

  本例中出現4個警告,原因為:

八、IO優化(2)IO性能評估工具


(3)查看結果

  在最終結果的匯總列表中,找到剛才修改的那個測試文件相應的結果。

Test cycle complete

Stopping simulation

Closing file F:\sqliosim.mdx

********** Final Summary for file F:\sqliosim.mdx **********

File Attributes: Compression = No, Encryption = No, Sparse = No

Target IO Duration (ms) = 100, Running Average IO Duration (ms) = 15, Number of times IO throttled = 1071, IO request blocks = 29

Reads = 2460, Scatter Reads = 2372, Writes = 31, Gather Writes = 3238, Total IO Time (ms) = 422837

DRIVE LEVEL: Sector size = 512, Cylinders = 5221, Media type = 0, Sectors per track = 12, Tracks per Cylinders = 63

DRIVE LEVEL: Read cache enabled = No, Write cache enabled = No

DRIVE LEVEL: Read count = 4832, Read time = 20463, Write count = 8953, Write time = 428171, Idle time = 168697, Bytes read = 809762816, Bytes written = 1140978176, Split IO Count = 0, Storage number = 2, Storage manager name = VOLMGR

Closing file F:\sqliosim.ldx


3. 命令行

  命令行一共有6個參數。詳細用法見 http://support.microsoft.com/kb/231619

-cfg fileOverride the Sqliosim.cfg.ini default configuration file. The SQLIOSim utility returns an error if the utility cannot find the file.
-save fileSave the resulting configuration in the configuration file. You can use this option to create the initial configuration file.
-log fileSpecify the error log file name and the error log file path. The default file name is Sqliosim.log.xml.
-dir dirSet the location to create the data (.mdf) file and the log (.ldf) file. You can run this command multiple times. In most cases, this location is a drive root or a volume mount point. This location can be a long path or a UNC path.
-d secondsSet the duration of the main run. This value excludes the preparation phase and the verification phase.
-size MBSet the initial size of the data file in megabytes (MB). The file can grow up to two times the initial size. The size of the log file is calculated as half the size of the data file. However, the log file cannot be larger than 50 MB.


三、IOMeter

  這是一個第三方的工具,詳情請見 http://www.iometer.org/



本文結語:

  通過一些磁盤壓力測試工具,測試磁盤的性能。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

百色市| 咸丰县| 巴彦县| 淳化县| 宜黄县| 子长县| 淮北市| 苍溪县| 海淀区| 九江县| 绥宁县| 酉阳| 灵石县| 南安市| 郧西县| 沈丘县| 静宁县| 柞水县| 芷江| 平乐县| 闽清县| 蚌埠市| 城市| 临城县| 玉田县| 彰化市| 祁东县| 林甸县| 墨脱县| 观塘区| 商水县| 佛教| 海宁市| 聂拉木县| 始兴县| 红桥区| 巴东县| 绵阳市| 沙河市| 通辽市| 张家港市|