項目上線不到一個月,zabbix數據竟然快100G,監控項太多,數據量太大,zabbix負載重,暫時不想升級硬件,只好內部挖掘下,清除下歷史數據;通常保留1個月的數據,zabbix這個項目只是作監控報警用,數據保留太多沒太大參考意義;mysql
通常都是這幾個表太大, history, history_uint,history_log,有的直接了當直接清空表,簡潔方便,不過要是有人須要參考數據,那還蠻尷尬的;有的作一個獨立分表,作存儲過程,蠻高效,不過項目不同只作簡單監控沒必要那麼麻煩;nginx
套路都同樣:停掉zabbix,mysql添加skip new以便於刪除數據後壓縮存儲空間,截取須要清除的時間點:sql
root@Testl]$ date +%s -d"20160929"session
1475078400ide
mysql> delete from history where clock<1475078400;ui
Query OK, 36093 rows affected (43.64 sec)spa
mysql> delete from history_uint whereclock < 1475078400;blog
Query OK, 21501392 rows affected (25 min51.48 sec)ip
mysql> optimize table history;it
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