SQL Server 整合的容量規劃
我的公司有一個用於 LANDesk 的小型 SQL 環境,他們希望將所有伺服器遷移到每個區域的單個 SQL 集群。我想知道的是,我如何確定這種場景的容量?我已經獲得了每台伺服器(所有 Landesk)的數據庫增長情況,我可以將此數據作為合併到單個 SQL 集群的粗略估計嗎?Windows 團隊告訴我,來自這些伺服器的數據有點不穩定,可能無法給出他們想要的準確結果。
有問題的新集群已經有幾個數據庫,但還沒有達到最大容量。一旦他們開始從伺服器添加剩餘數據,它應該會達到其全部容量。我已經在這上面執行 Perfmon 一段時間了,為了檢查數據庫的增長,我使用了來自 sqlskills.com 的以下 TSQL 程式碼
SELECT [database_name] AS "Database", DATEPART(month,[backup_start_date]) AS "Month", AVG([backup_size]/1024/1024) AS "Backup Size MB", AVG([compressed_backup_size]/1024/1024) AS "Compressed Backup Size MB", AVG([backup_size]/[compressed_backup_size]) AS "Compression Ratio" FROM msdb.dbo.backupset WHERE [database_name] = N'AdventureWorks' AND [type] = 'D' GROUP BY [database_name],DATEPART(mm,[backup_start_date]);
我能做些什麼來獲得準確的結果嗎?LANDesk 團隊不希望我使用舊伺服器,我唯一的選擇是使用他們計劃遷移所有數據的新集群,而我只有 6 個月的數據。我應該問他們這個新集群使用年限之類的問題嗎?等等…
謝謝大家的答案。這是我從 PAL 工具中得到的
我使用 PAL 工具來確定 perfmon 數據,這些是它給出的一些警告
響應時間大於 25 毫秒 2) 空閒時間小於 10% - 磁碟隊列在 90% 的時間內至少有 1 個未完成的 I/O 3) 大於或等於 64 KB IO 大小。一般IO大小越大,每秒可以傳輸的數據越多,但響應時間也越長。
物理磁碟讀取延遲 - 大於 25 毫秒 5)Process % Privileged Time - SQL Server 使用超過 30% 的特權模式 CPU 使用率 6) SQL Server 訪問方法 FreeSpace Scans/sec - 超過 1 個空閒空間掃描的比率10 個批處理請求 - 確認高 paglatches、非同步 i/o 完成和低頁面預期壽命 7)SQLServer:Access Methods Workfiles Created/sec - 每 20 個批處理請求創建超過 1 個工作文件的比率 8)SQL 緩衝區記憶體命中率:小於 97% 的緩衝區記憶體命中率 9)紅色:大於 20 次延遲寫入每秒 10)紅色:頁面預期壽命小於 5 分鐘(300 秒) 11)黃色:比率大於 1 SQL 重新編譯每 10 個 SQL 編譯
關於 I/O,我們正在遷移到 SQL 2012 集群,所以我不確定哪種方法可以測量 IOPS。你會建議 SQLsim 或 IOmeter 等嗎?再次感謝!
就像 Randolph 提到的,磁碟是您最不需要擔心的事情。如果它像您提到的那樣集群化,您可以輕鬆添加儲存以適應數據增長。
更難添加和花費真錢的東西是:
CPU(許可)記憶體(如果您使用的是標準版,則限制為 128 GB)
在整合方案中,您需要獲得 CPU 使用基線(簡單的性能 - SQL Server CPU)和記憶體 - 更難(您需要跟踪頁面預期壽命,因為它與 SQL 的總記憶體使用量有關)。最後,如果您的源環境使用 SQL 2014 或更高版本,您將需要增加 IOPS(儲存的性能組件),您可以檢查一個計數器(磁碟讀/寫 IO/秒)來獲取該數據。磁碟數據只是累積的,而 CPU 和記憶體數據需要評估。在整合環境中,您可能會使用更少的 CPU 和記憶體。
最後,對於像這樣的共享環境,您可能希望將企業版與資源調控器一起使用,這樣您就可以防止“吵鬧的鄰居”問題。
如果我正確理解您的要求,您有多個目前託管 LANDesk 數據庫的 SQL Server 實例,並且您的公司希望將這些實例整合到單個 SQL Server 集群實例中,每個區域都有一個數據庫?
是的,您需要知道系統將使用多長時間,以及磁碟是否可以在將來擴展。
如果您只擔心磁碟容量,假設您使用您選擇的方法知道您的 avg.daily 增長率;可以使用以下方法計算 3 個月後的數字:
(avg.daily growth*[daystocalc.for])*(1+x)-(existing free space in DB)
其中,x 是一個分數,表示當您開始計劃擴展時您希望在數據庫中擁有多少可用空間。假設您希望磁碟和數據庫中有 10% 的空閒空間,那麼 x 將是 0.2。
如果您需要進行詳細的容量規劃,那麼您還需要跟踪 CPU 和記憶體使用率。