Sql-Server
如何調整 SQL 伺服器資源(RAM、CPU 等)的大小
這是標準的故事,開發人員和管理員之間存在斗爭。一種譴責數據庫設計和查詢很糟糕,而另一些人則認為這是缺乏硬體和數據量。
所以我問你是我的 IBM x3400,有 2 個氙氣 2GHz 和 SCSI RAID 5 和 4GB 的 RAM,適合 53 GB 的 MSSQL 數據庫和表格,主要細節是大約 650 萬條詳細記錄和 200 萬條文件標題而其他的則在 100K 左右(例如物品)。
在從 SQL 獲取數據時,我們經常遭受性能不足的困擾,該伺服器僅專用於 SQL 伺服器,並充當來自其他 SQL 伺服器的複制數據的訂閱者。
另一個問題是數據庫管理員如何規劃數據庫伺服器的硬體大小?有一些標準的方法還是只是經驗和感覺?
- 如今,4 GB 記憶體是個笑話。所以,不——對不起。我想你已經完成了。它可以工作,但這需要特定的使用模式。原則上,我不會在 4 GB 硬體上執行數據庫伺服器 - 16 GB 的 RAM 幾乎沒有任何成本。
- SCSI RAID 5 不是最佳的。根據使用模式,您至少應該有兩組——一組用於寫入(日誌)快速,一組用於讀取(數據)快速。使用 RAID 10 的 4+ 磁碟用於 OS 和 LOG 以及另一個用於數據,我取得了很好的成功。不過請注意,數據庫要大得多。在您的情況下,放棄 RAID 5 並僅放入兩個鏡像 SSD 將是有意義的,因為您的數據只有 53 GB。兩個 SSD 的鏡像可能會將您的 IO 性能提高 100 倍。您可能會在 RAM 的幫助下 IO 綁定 - 按照今天的標準 - 可憐。抱歉,如果這聽起來很粗魯,但是數據庫伺服器應該比開發人員工作站擁有更多的 RAM,並且取決於您所在的公司,您的標准或遠低於該標準。
有一些標準的方法還是只是經驗和感覺?
經驗和感覺。您還可以向前思考並檢查幾年後有意義的事情。例如,SuperMicro 的 NICE 伺服器可以在 SAS 配置中放置 24-72 個磁碟。因此,您可能會避免使用 SAN(更昂貴)並根據需要填充光碟。其他人得到一個小型伺服器,然後用完了選項。您還可以通過在普通工作站上進行測試來獲得一些想法。
這是標準的故事,開發人員和管理員之間存在斗爭。
不它不是。
一種譴責數據庫設計和查詢很糟糕,而另一些人則認為這是缺乏硬體和數據量。
又不行了。數據庫設計可以非常客觀地衡量。如:有某些記錄和已知的方法(很多開發人員基本上完全不知道)。聽說過第五範式嗎?
與查詢相同。我實際上可以查看查詢是否有效執行。這裡沒有真正的灰色地帶。也就是說,可能會有取捨,但如果這進入了責備遊戲,那麼我可以很確定有什麼問題。
開發人員通常不知道“這是一個簡單的選擇”之外的任何內容,並且不知道如何處理數據庫,然後嘗試將硬體扔到問題上。去過那裡,看到了。並非總是如此,但這很可能是猜測。