Mysql

從 8GB 伺服器切換到 4GB 伺服器對我來說安全嗎?(內部統計)

  • December 19, 2016

我們正在尋求削減一些伺服器成本,我認為唯一可能的地方是我們的數據庫伺服器。

我們目前正在執行一個 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。

引用自:https://dba.stackexchange.com/questions/56241