項目上線不到一個月,zabbix數據居然快100G,監控項太多,數據量太大,zabbix負載重,暫時不想升級硬件,只好內部挖掘下,清除下歷史數據;一般保留1個月的數據,zabbix這個項目只是做監控報警用,數據保留太多沒太大參考意義;
一般都是這幾個表太大, history, history_uint,history_log,有的直接了當直接清空表,簡潔方便,不過要是有人需要參考數據,那還蠻尷尬的;有的做一個獨立分表,做存儲過程,蠻高效,不過項目不一樣只做簡單監控不必那麼麻煩;
套路都一樣:停掉zabbix,mysql添加skip new以便於刪除數據後壓縮存儲空間,截取需要清除的時間點:
root@Testl]$ date +%s -d"20160929"
1475078400
mysql> delete from history where clock<1475078400;
Query OK, 36093 rows affected (43.64 sec)
mysql> delete from history_uint whereclock < 1475078400;
Query OK, 21501392 rows affected (25 min51.48 sec)
mysql> optimize table history;
Query OK, 12175692 rows affected (5 min9.16 sec)
Records: 12175692 Duplicates: 0 Warnings: 0
mysql> optimize table history_uint;
Query OK, 145195609 rows affected (54 min29.07 sec)
Records: 145195609 Duplicates: 0 Warnings: 0
漫長時間等待以後看下效果:
原來數據:
-rw-rw---- 1 mysql mysql 1.4G Oct 28 13:23history.ibd
-rw-rw---- 1 mysql mysql 12M Oct 28 13:23 items.ibd
-rw-rw---- 1 mysql mysql 96M Oct 28 13:23 events.ibd
-rw-rw---- 1 mysql mysql 17G Oct 28 13:23 history_uint.ibd
-rw-rw---- 1 mysql mysql 56G Oct 28 13:23 history_log.ibd
-rw-rw---- 1 mysql mysql 252M Oct 28 13:23 trends_uint.ibd
-rw-rw---- 1 mysql mysql 72M Oct 28 13:23 trends.ibd
-rw-rw---- 1 mysql mysql 112K Oct 28 13:59sessions.ibd
壓縮中:
縮進過程生成/#sql-5f11_3.ibd文件,作業完畢就是history_uint.ibd文件;
find -size +50M -exec ls -lh {} \;
-rw-rw---- 1 mysql mysql 960M Oct 28 14:42./history.ibd
-rw-rw---- 1 mysql mysql 9.2G Oct 28 15:31./#sql-5f11_3.ibd
-rw-rw---- 1 mysql mysql 56G Oct 28 13:23./history_log.ibd
-rw-rw---- 1 mysql mysql 96M Oct 28 13:23 ./events.ibd
-rw-rw---- 1 mysql mysql 252M Oct 28 13:23./trends_uint.ibd
-rw-rw---- 1 mysql mysql 72M Oct 28 13:23./trends.ibd
-rw-rw---- 1 mysql mysql 17G Oct 28 14:59./history_uint.ibd
最終刪兩個表以後數據:
zabbix]$ find -size +50M -execls -lh {} \;
-rw-rw---- 1 mysql mysql 960M Oct 28 15:42./history.ibd
-rw-rw---- 1 mysql mysql 56G Oct 28 15:42./history_log.ibd
-rw-rw---- 1 mysql mysql 96M Oct 28 15:42./events.ibd
-rw-rw---- 1 mysql mysql 252M Oct 28 15:41./trends_uint.ibd
-rw-rw---- 1 mysql mysql 72M Oct 28 15:41./trends.ibd
-rw-rw---- 1 mysql mysql 11G Oct 28 15:42./history_uint.ibd
完了以後,重啓mysql,zabbix,nginx試試;
看着history_log那麼大好憂傷,準備truncate掉。以後可以做個腳本,每月定期執行刪除記錄;
原文鏈接:http://xpu2001.blog.51cto.com/890980/1866927