项目上线不到一个月,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