Вот и наступило время, когда мой сервер системы мониторинга начал тормозить. Со временем тормоза достигли таких пределов, что мириться с этим больше не хотелось и был предпринят рад изменений, которые и будут описаны в этой теме.
Диагностика:
для диагностики была установлена утилитка atop (/usr/ports/sysutils/atop) которая диагностировала полную занятость жёского диска (atop -d). Она же и показала что грузит жёский исключительно MySQL - значит с него и начнём оптимизацию. Беглый осмотр БД выявил огромный файл, который постоянно растёт
Код: Выделить всё
stat# ls -l /var/db/mysql/
total 41388142
drwx------ 2 mysql mysql 1024 Aug 18 2010 atslog
-rw-rw---- 1 mysql mysql 5242880 Feb 11 10:01 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 Feb 11 10:01 ib_logfile1
-rw-rw---- 1 mysql mysql 42331013120 Feb 11 10:01 ibdata1
-rw-r--r-- 1 root mysql 785 Feb 11 09:50 my.cnf
drwx------ 2 mysql mysql 2048 Jul 28 2010 mysql
drwx------ 2 mysql mysql 1536 Feb 11 10:01 zabbix
stat#
Внимание:
1) Софт - OS FreeBSD 9.0, MySQL 5.1
2) Железо - ASUS RS120 8Гигов памяти
3) Имейти в виду что это может затронуть другие базы - в частности мне пришлось так же выгрузить и загрузить базу ocs-inventory, так как она тоже частично использовала InnoDB тип базы данных
4) Делайти скидку на то, что у вас сервер будет слабее, как и нагрузка, создаваемая zabbix
Решение:
Первым делом оставновим zabbix, дабы не мешался
Код: Выделить всё
stat# /usr/local/etc/rc.d/zabbix_server stop
Stopping zabbix_server.
Waiting for PIDS: 1513 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1786.
stat# /usr/local/etc/rc.d/zabbix_agentd stop
Stopping zabbix_agentd.
Waiting for PIDS: 1521 1552 1553 1554 1555 1556.
Код: Выделить всё
stat# mysqldump -u root -ppassword zabbix > zabbix.sql
Код: Выделить всё
stat# mysql -u root -ppassword
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4805
Server version: 5.1.58 FreeBSD port: mysql-server-5.1.58
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> drop database zabbix;
Query OK, 88 rows affected (5.55 sec)
mysql> exit
Bye
Добавляем в конфиг MySQL (/var/db/mysql/my.cnf) в секцию [mysqld] следующее:
Код: Выделить всё
innodb_thread_concurrency = 8
innodb_buffer_pool_size = 4096M
innodb_additional_mem_pool_size = 24M
innodb_data_home_dir = /var/db/mysql/inno
innodb_log_group_home_dir = /var/db/mysql/inno
innodb_data_file_path = ibdata1:2000M;ibdata2:10M;ibdata3:10000M:autoextend
innodb_flush_method = O_DIRECT
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_log_files_in_group = 2
innodb_flush_log_at_trx_commit = 2
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table
Код: Выделить всё
mkdir /var/db/mysql/inno
chown mysql:mysql /var/db/mysql/inno
Код: Выделить всё
rm /var/db/mysql/ibdata1
Код: Выделить всё
stat# /usr/local/etc/rc.d/mysql-server stop
Stopping mysql.
Waiting for PIDS: 1504.
stat# /usr/local/etc/rc.d/mysql-server start
Starting mysql.
Код: Выделить всё
stat# mysql -u root -ppassword
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.58 FreeBSD port: mysql-server-5.1.58
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database zabbix;
Query OK, 1 row affected (0.00 sec)
mysql> exit
Bye
Код: Выделить всё
cat zabbix.sql | mysql -u root -ppassword zabbix
Литература:
1) http://www.realcoding.net/article/view/4752
2) http://www.zabbix.com/forum/showthread.php?t=19215
3) http://bolknote.ru/2007/11/09/~1466#09
4) http://www.proggear.ru/276-оптимизация- ... нимум-2-г/