Mysql
從 8GB 伺服器切換到 4GB 伺服器對我來說安全嗎?(內部統計)
我們正在尋求削減一些伺服器成本,我認為唯一可能的地方是我們的數據庫伺服器。
我們目前正在執行一個 8GB 機架空間雲,其中包含一個 mysql 實例,我相信它也在執行一個 sphinx searchd 實例。
以下是來自 free -m 的統計資訊:
total used free shared buffers cached Mem: 7971 4748 3223 0 773 2773 -/+ buffers/cache: 1201 6769 Swap: 16378 467 15911
以下是頂部的統計數據:
top - 15:23:52 up 349 days, 19:28, 1 user, load average: 0.39, 0.72, 0.92 Tasks: 141 total, 1 running, 139 sleeping, 0 stopped, 1 zombie Cpu(s): 0.5%us, 0.1%sy, 0.0%ni, 98.1%id, 1.3%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 8162332k total, 4861112k used, 3301220k free, 791832k buffers Swap: 16771852k total, 478512k used, 16293340k free, 2839936k cached
看起來只使用了我們可用 8Gig 的一半,但如果我們可以降級到 4GB 實例,它將為我們節省近 200 美元/月。
非常感謝有關這種情況的任何建議。
謝謝
如果目前的記憶體使用量代表了所有應用程序的每日/每週/每月活動週期,那麼您在 4GiB 上可能沒問題。您正在使用大約 5G,其中大部分是記憶體/緩衝區,所以如果這真的只是基本文件塊,那麼您就不會記憶體那麼多,這可能不是問題。
但是記憶體的計數包括記憶體映射的文件內容和其他一些東西,所以它可能不是那麼簡單。
此外,您確實在交換中分配了半 GB 的事實意味著在某些時候您使用了更多的記憶體。當然,這可能是由於幾週前的一次性事件,您無法從這一組讀數中看出。您應該做的是在一個月或更長時間內定期收集記憶體使用數據 - 有許多像 collectd 這樣的包可以在這里為您提供幫助,儘管每分鐘記錄一次由 cron 呼叫的小腳本可能就足夠了。
判斷這一點的最可靠方法是進行基準測試:自動化數據庫呼叫一段時間的活動(如果您的應用程序維護完整的審計跟踪,您可以使用它來複製真實期間的實際活動),將該活動加速幾倍對於偏執狂(比如將一天的活動塞進幾個小時)以允許增長,在本地複制應用程序安裝在 8G VM 中,執行該自動化活動,衡量應用程序對互動活動的響應程度(登錄並嘗試使用應用程序)在此過程中,然後重複,同時只為 VM 分配 4GB。