九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Storage Area Network (SAN) for DBA's

在與朋友們聊到怎么讓SQL Server的性能更好時(shí),發(fā)現(xiàn)一些問(wèn)題。對(duì)于SQL Server,除了遵循OS和應(yīng)用程序的最佳實(shí)踐外,還有哪些優(yōu)化方法?

硬件級(jí)別的優(yōu)化同樣也很重要,特別是存儲(chǔ)的優(yōu)化。聊完這些,我們開(kāi)始從DBA的角度去解釋SAN的問(wèn)題。

有許多的因素影響著磁盤的IO性能,比如共用或?qū)S么疟P,RAID級(jí)別,總線速度,HBA的配置等。還有一個(gè)重要的但經(jīng)常被忽略的因素:磁盤分區(qū)對(duì)齊(alignment in disk partitions).

還有一些非磁盤因素,也可能出現(xiàn)瓶頸:

  -HBA和網(wǎng)卡

  -FC的處理能力和iSCSI端口

  -服務(wù)器和存儲(chǔ)的路徑數(shù)

  -交換機(jī)

了解和考慮架構(gòu)中相關(guān)組件的限制是非常重要的。下面是目前市場(chǎng)止一些組件的限制:

 

但是這些是怎么跟SQL Server聯(lián)系起來(lái)的呢?

     SQL Server中數(shù)據(jù)存儲(chǔ)的基本單元是頁(yè)(Page 8kb).分配給數(shù)據(jù)庫(kù)中數(shù)據(jù)文件(無(wú)論mdf或ldf)的空間,邏輯上被分為連續(xù)的,從0到N編號(hào)的頁(yè)。磁盤IO操作以頁(yè)的方式實(shí)現(xiàn)。

硬盤由一些薄片(Platter)組成。在薄片表面的的圓型磁盤(Disk)是存儲(chǔ)信息的電子媒體。薄片的每一面上有數(shù)以千計(jì)的磁道(Tracks)。薄片具有相同直徑的磁道組成了磁柱(Cylinder)。

對(duì)于新出的設(shè)備,磁柱沒(méi)有什么意義,因?yàn)樗麄儾⒉灰酝膱A排列。但是這對(duì)于理解術(shù)語(yǔ)的來(lái)龍去脈還是有幫助的。

每個(gè)磁盤表面有一個(gè)專門的頭(Head)用于IO。磁道被分為扇區(qū)(Sector).扇區(qū)是磁盤讀寫(xiě)的最小片段。新出的設(shè)備能夠提供1kb,3kb或4kb的扇區(qū)。

    使用RAID技術(shù),數(shù)據(jù)通過(guò)一組物理磁盤被條帶化。這種數(shù)據(jù)分布的方與操作系統(tǒng)請(qǐng)求數(shù)據(jù)的方式是相輔相成的。

在后續(xù)數(shù)據(jù)存儲(chǔ)在陣列中下一個(gè)磁盤前,數(shù)據(jù)存儲(chǔ)在陣列中當(dāng)前磁盤的粒度,叫做條帶化單元大小(stripe-unit size)。(譯者:這比較繞口,簡(jiǎn)單來(lái)說(shuō)就是數(shù)據(jù)經(jīng)過(guò)條帶化后,分成多個(gè)小塊存儲(chǔ)在陣列的磁盤上。這個(gè)“塊”就叫條帶單元,它大小就叫條帶單元大小。)從陣列中第一個(gè)磁盤到最后一個(gè)磁盤的條帶單元的集合稱為一個(gè)條帶(Stripe)。

 

    這就是分區(qū)對(duì)齊嗎?這影響SQL Server的性能嗎?下面的圖示將會(huì)解釋這些。

覆蓋著紅色梯度線的黑色虛線代表一組陣列中單個(gè)磁盤的邊界。Windows Server2008之前的Windows版本,保留63個(gè)扇區(qū)用于記錄磁盤硬件的信息,接下來(lái)分區(qū)中其它的可供用戶使用。

如圖所示,一般的扇區(qū)大小為512 bytes,圖中的條帶單元大小為64kb,NTFS的默認(rèn)簇(Cluster)大小為4kb。(譯者:簇就是一組扇區(qū)的集合,也是磁盤上分配存儲(chǔ)空間的最小單位)

缺少磁盤對(duì)齊將迫使第八個(gè)用戶數(shù)據(jù)的簇跨越兩個(gè)條帶單元。從第一個(gè)條帶單元的最后的一個(gè)空白扇區(qū)直到第二條帶單元。這種情況會(huì)延續(xù)整個(gè)分區(qū)的余下部分。因?yàn)槊康贜個(gè)跨越兩個(gè)條帶單元的簇執(zhí)行一次讀或?qū)憣?huì)導(dǎo)致兩次IO。

    建議用于SQL Server的文件分配單元大小(即簇大小)為64kb。SQL Server首選的64kb的簇大小造成了默認(rèn)分區(qū)錯(cuò)位,迫使用戶數(shù)據(jù)簇跨越兩個(gè)條帶單元。從第一個(gè)條帶單元的第一個(gè)可用扇區(qū)開(kāi)始,直到第二個(gè)條帶單元。這種情會(huì)延續(xù)整個(gè)分區(qū)的余下部分。這種配置注定了后續(xù)每一個(gè)用戶數(shù)據(jù)簇的讀寫(xiě),會(huì)跨越兩個(gè)磁道或者條帶單元。

 

      下面是我們的一個(gè)測(cè)試磁盤性能的實(shí)驗(yàn)數(shù)據(jù),基于Windows Server2003&SQL Server 2005。通過(guò)運(yùn)行一個(gè)查詢從SQL Server獲取信息。每次都會(huì)執(zhí)行DBCC DROPCLEANBUFFERS清理緩存區(qū)高速緩存(Buffer Cache),用以保證結(jié)果可信。我們監(jiān)控了用于度量磁盤延遲的性能計(jì)數(shù)器Avg.Disk Transfer/Sec。結(jié)果表明,磁盤對(duì)齊的Duration和Latency性能有明顯提升,提升超過(guò)30%。

   

  

為了檢驗(yàn)磁盤對(duì)齊,您需要清楚以下幾個(gè)概念:

       分區(qū)起始偏移量(Starting Partition Offset):卷中分區(qū)起始偏移量用于確定在早期卷中分配默認(rèn)數(shù)據(jù)頁(yè)給隱藏扇區(qū)。

       條帶單元大小(Stripe Unit Size):在后續(xù)數(shù)據(jù)存儲(chǔ)在陣列中下一個(gè)磁盤前,數(shù)據(jù)存儲(chǔ)在陣列中當(dāng)前磁盤的粒度。這個(gè)由SAN管理員提供。

       文件分配單元大小(File Allocation Unit Size):就是傳說(shuō)中的簇大小。分配磁盤空間的最小單元。此值在OS格式化分區(qū)時(shí)確定。

為了正確的磁盤分區(qū),需要遵守兩個(gè)規(guī)則:下面的兩個(gè)計(jì)算結(jié)果需是整數(shù)值。

      Partition_Offset / Stripe_Unit_Size
      Stripe_Unit_Size / File_Allocation_Unit_size

  前面兩條中的第一條對(duì)性能優(yōu)化非常重要。

   磁盤未對(duì)齊示例場(chǎng)景:

        某個(gè)磁盤的分區(qū)起始偏移量為32256bytes(31.5Kb),條帶單元大小為65536bytes(64Kb)。Partition_Offset/Stripe_Unit_Size=0.4921875,不是整數(shù),所以磁盤是未對(duì)齊的。

   磁盤對(duì)齊示例場(chǎng)景:

       某個(gè)磁盤的分區(qū)起始偏移量為1048576bytes(1Mb),條帶單元大小為65536bytes(64Kb)。Partition_Offset/Stripe_Unit_Size=8,是整數(shù),所以磁盤是對(duì)齊的。

 

經(jīng)過(guò)以上的闡述,現(xiàn)在需要解答的問(wèn)題是:怎么知道磁盤的對(duì)齊狀態(tài)呢?

    我們可以使用WMIC命令獲取一個(gè)磁盤的偏移量的信息,語(yǔ)法如下:

        wmic partition get BlockSize, BootPartition, DeviceID, DiskIndex, HiddenSectors, NumberOfBlocks,  StartingOffset, Name, Index

     這個(gè)命令可以檢查SaartingOffset的值。也可以通過(guò)DISKPART獲知StartingOffset,選定你要分析的磁盤執(zhí)行l(wèi)ist partition命令就可以知首o(hù)ffset了。檢查動(dòng)態(tài)磁盤的Offset,需要使用打開(kāi)-v開(kāi)關(guān)的dmdiag工具。

    如果可以使用下面的命令檢查文件分配單元大小:

         fsutil fsinfo ntfsinfo [drive]

    下面的圖片展示了上面所有的命令:

      

  總結(jié)

       很多方面共同作用才能讓磁盤發(fā)揮最佳性能。在Windows 2003上創(chuàng)建磁盤分區(qū)應(yīng)嚴(yán)格驗(yàn)證條帶單元大小和簇大小的正確關(guān)系,并做為最佳實(shí)踐。Windows 2008創(chuàng)建分區(qū)時(shí)默認(rèn)對(duì)齊。

       服務(wù)器從Windows 2003更新為2008,已經(jīng)存在的分區(qū)不會(huì)自動(dòng)對(duì)齊,而需要重建以最佳化性能。

----------------------------------------------------------------------------------------------------------------

       Joe.TJ翻譯整理,原文地址:Storage Area Network (SAN) for DBA's

---------------------------------------------------------------------------------------------------------------

我的總結(jié):

    1. 原文好多地方摘抄引用了Disk Partition Alignment Best Practices for SQL Server

    2. 我是在找SAN相關(guān)資源時(shí)看到此文的,看完后發(fā)現(xiàn)沒(méi)有什么關(guān)于SAN的內(nèi)容,有標(biāo)題黨的嫌疑。但是對(duì)存儲(chǔ)的介紹很有意義就翻譯了出來(lái)。

    3. 文中的“缺少磁盤對(duì)齊將迫使第八個(gè)用戶數(shù)據(jù)的簇跨越兩個(gè)條帶單元?!保@是對(duì)原文的翻譯并且對(duì)參照了Disk Partition Alignment Best Practices for SQL Server。

        我個(gè)人對(duì)這點(diǎn)很是不解。64kb的條帶單元=128扇區(qū),減去隱藏的63個(gè)扇區(qū),還有65個(gè)扇區(qū)供用戶使用。每個(gè)用戶數(shù)據(jù)簇4kb=8扇區(qū),那么8個(gè)用戶數(shù)據(jù)簇=64扇區(qū)。

        65-64=1,所以應(yīng)該是第9個(gè)用戶數(shù)據(jù)簇才是跨越兩個(gè)條帶單元的,而不是第8個(gè)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
固態(tài)硬盤分區(qū)方法詳解以及注意事項(xiàng)
系統(tǒng)集9
硬盤數(shù)據(jù)修復(fù)工具介紹
硬盤數(shù)據(jù)恢復(fù)
硬盤分區(qū):硬盤怎么分區(qū)才是好的?一個(gè)硬盤能分多少主分區(qū)和邏輯分
WIN8 與WIN7的64位及32位 分別對(duì)Legacy BIOS+MBR和UEFI+GPT兩種 啟動(dòng)方式和分區(qū)架構(gòu)下的安裝可行性分析
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服