最近公司同事反应线上Zabbix奇慢 随便查点东西都非常慢,查了下是因为Zabiix历史数据量太大导致的,且我们线上Zabbix的裤子是没用经过任何优化的。。。性能奇差。。。我们有7 8w+的items吧 所以各位大大懂得。。。
既然数据多了就清下历史数据呗 提高下查询的性能 顺便对MySQL做了一些优化
好了不废话 直接上代码:(MySQL优化的相关参数就不在这里贴出来了,另外数据量大的朋友请nohup然后扔到后台执行)

此脚本删除30天之前的数据,时间可可根据需求自行修改

#!/bin/bash

# Author: ZhiPeng Wang.
# Last Modified: 2014/6/2

User="root"
Passwd="wangzhipeng"
Date=`date -d $(date -d "-30 day" +%Y%m%d) +%s` #取30天之前的时间戳

$(which mysql) -u${User} -p${Passwd} -e "
use zabbix;
DELETE FROM history WHERE 'clock' < $Date;
optimize table history;
DELETE FROM history_str WHERE 'clock' < $Date;
optimize table history_str;
DELETE FROM history_uint WHERE 'clock' < $Date;
optimize table history_uint;
DELETE FROM  trends WHERE 'clock' < $Date;
optimize table  trends;
DELETE FROM trends_uint WHERE 'clock' < $Date;
optimize table trends_uint;
DELETE FROM events WHERE 'clock' < $Date;
optimize table events;
"

发表评论

邮箱地址不会被公开。 必填项已用*标注