預寫式記錄 - Write-Ahead Logging 說明:
http://twpug.net/docs/postgresql-doc-8.0-zh_TW/wal.html
在關閉之前先讓我們了解一下磁碟快取對於I/O的差異有多少,我使用二種方式進行測試,第一種是利用 SQL Server 的 Store Procedure 透過迴圈寫入表格並執行100,000次,每次約寫入30~50 byte,然後得到執行時間,而第二種的話,我就透過 硬碟測試軟體 - HD_SPEED測試,在切換磁碟寫入快取的兩種情況各執行3分鐘,有磁碟寫入快取的情況下,效能約皆在100~120MB左右,而沒有磁碟快取的測試下,在經過一分鐘以後,就會馬上從原本的每秒100MB左右,掉至每秒只剩下10MB左右,而且就一持維持爬不上來了。
第一種 (測試實測對資料庫的Insert影響效能):
a. 啟用磁碟寫入快取(預設)
32分38秒
b.停用磁碟寫入快取
33分43秒
第二種 (用磁碟效能測式軟體進行測試):
a.啟用磁碟寫入快取(預設)時的測試結果:
b.停用磁碟寫入快取時的測試結果:
基於上述理由為了提高資料的完整性最好是關閉磁碟寫入快取,但是關閉寫入快取會讓磁碟的I/O效能降低,所以在下列三種情況下是可以維持寫入快取的啟用。
1、磁碟本身有獨立穩定完整的電源供應設備,如 Network Attached Storage 等。
2、資料本身對於完整性較不重視,如單獨放置 tempdb 的磁碟等。
3、在電源設備上提供更完整的備援,如不斷電系統(UPS)等。
以下說明如何進行磁碟寫入快取的設定:
PS:在Windows 7的測試下可以不用重開機即可啟用。
總結:針對以上的測試,其實磁碟寫入快取在使用上,關閉後對效能還是有一定的影響,但為了資料的完整性,中間的取捨,只好靠各位DBA的智慧與努力了。
參考網址:http://support.microsoft.com/kb/234656/zh-tw
關鍵字:Disk Cache、SQL Server、Write-Ahead Logging、磁碟寫入快取
沒有留言:
張貼留言