Ad Widget

Collapse

Zabbix 1.6.1: CPU load MySQL (5.0.32) 100%! Need help tuning MySQL server

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • cybernijntje
    Junior Member
    • Sep 2008
    • 16

    #1

    Zabbix 1.6.1: CPU load MySQL (5.0.32) 100%! Need help tuning MySQL server

    Hi there,

    First of all sorry for this LONG post, but I've tried to be as complete as possible.

    After upgrading our Zabbix server (version 1.4.4) to version 1.6.1 we've been experiencing an increase of the CPU load on our MySQL server to nearly 100% constant! Before version 1.6.1 the CPU load was around 65%.

    Are there any specific MySQL parameters we have to set?
    The settings used for Zabbix 1.4.4 (CPU load around 65%) won't do for version 1.6.1.
    Here are the details of the 2 servers:

    Zabbix server:
    > Zabbix version 1.6.1 on Debian Etch 4.0
    > Virtual Machine (2 cores / 3072Mb)
    > Parameter Value Details
    ZABBIX server is running Yes -
    Number of hosts (monitored/not monitored/templates) 628 575 / 22 / 30
    Number of items (monitored/disabled/not supported) 7291 5919 / 736 / 636
    Number of triggers (enabled/disabled)[true/unknown/false] 6554 5946 / 608 [27 / 413 / 5506]
    Number of users (online) 26 3
    Required server performance, new values per second 96.7792 -
    > Zabbix_server.conf:
    StartPollers=25
    HousekeepingFrequency=1
    SenderFrequency=30
  • cybernijntje
    Junior Member
    • Sep 2008
    • 16

    #2
    MySQL server:
    > MySQL version 5.0.32-Debian_7etch1 Debian etch distribution
    > Zabbix database format: InnoDB (innodb_file_per_table)
    > mysql> show variables;
    +---------------------------------+-----------------------------+
    | Variable_name | Value |
    +---------------------------------+-----------------------------+
    | auto_increment_increment | 1 |
    | auto_increment_offset | 1 |
    | automatic_sp_privileges | ON |
    | back_log | 50 |
    | basedir | /usr/ |
    | binlog_cache_size | 32768 |
    | bulk_insert_buffer_size | 8388608 |
    | character_set_client | latin1 |
    | character_set_connection | latin1 |
    | character_set_database | latin1 |
    | character_set_filesystem | binary |
    | character_set_results | latin1 |
    | character_set_server | latin1 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ |
    | collation_connection | latin1_swedish_ci |
    | collation_database | latin1_swedish_ci |
    | collation_server | latin1_swedish_ci |
    | completion_type | 0 |
    | concurrent_insert | 1 |
    | connect_timeout | 5 |
    | datadir | /var/lib/mysql/ |
    | date_format | %Y-%m-%d |
    | datetime_format | %Y-%m-%d %H:%i:%s |
    | default_week_format | 0 |
    | delay_key_write | ON |
    | delayed_insert_limit | 100 |
    | delayed_insert_timeout | 300 |
    | delayed_queue_size | 1000 |
    | div_precision_increment | 4 |
    | engine_condition_pushdown | OFF |
    | expire_logs_days | 0 |
    | flush | OFF |
    | flush_time | 0 |
    | ft_boolean_syntax | + -><()~*:""&| |
    | ft_max_word_len | 84 |
    | ft_min_word_len | 4 |
    | ft_query_expansion_limit | 20 |
    | ft_stopword_file | (built-in) |
    | group_concat_max_len | 1024 |
    | have_archive | YES |
    | have_bdb | NO |
    | have_blackhole_engine | NO |
    | have_compress | YES |
    | have_crypt | YES |
    | have_csv | YES |
    | have_dynamic_loading | YES |
    | have_example_engine | NO |
    | have_federated_engine | YES |
    | have_geometry | YES |
    | have_innodb | YES |
    | have_isam | NO |
    | have_merge_engine | YES |
    | have_ndbcluster | DISABLED |
    | have_openssl | DISABLED |
    | have_query_cache | YES |
    | have_raid | NO |
    | have_rtree_keys | YES |
    | have_symlink | YES |
    | init_connect | |
    | init_file | |
    | init_slave | |
    | innodb_additional_mem_pool_size | 1048576 |
    | innodb_autoextend_increment | 8 |
    | innodb_buffer_pool_awe_mem_mb | 0 |
    | innodb_buffer_pool_size | 1572864000 |
    | innodb_checksums | ON |
    | innodb_commit_concurrency | 0 |
    | innodb_concurrency_tickets | 500 |
    | innodb_data_file_path | ibdata1:10M:autoextend |
    | innodb_data_home_dir | |
    | innodb_doublewrite | ON |
    | innodb_fast_shutdown | 1 |
    | innodb_file_io_threads | 4 |
    | innodb_file_per_table | ON |
    | innodb_flush_log_at_trx_commit | 1 |
    | innodb_flush_method | |
    | innodb_force_recovery | 0 |
    | innodb_lock_wait_timeout | 50 |
    | innodb_locks_unsafe_for_binlog | OFF |
    | innodb_log_arch_dir | |
    | innodb_log_archive | OFF |
    | innodb_log_buffer_size | 1048576 |
    | innodb_log_file_size | 5242880 |
    | innodb_log_files_in_group | 2 |
    | innodb_log_group_home_dir | ./ |
    | innodb_max_dirty_pages_pct | 90 |
    | innodb_max_purge_lag | 0 |
    | innodb_mirrored_log_groups | 1 |
    | innodb_open_files | 300 |
    | innodb_rollback_on_timeout | OFF |
    | innodb_support_xa | ON |
    | innodb_sync_spin_loops | 20 |
    | innodb_table_locks | ON |
    | innodb_thread_concurrency | 8 |
    | innodb_thread_sleep_delay | 10000 |
    | interactive_timeout | 28800 |
    | join_buffer_size | 131072 |
    | key_buffer_size | 536870912 |
    | key_cache_age_threshold | 300 |
    | key_cache_block_size | 1024 |
    | key_cache_division_limit | 100 |
    | language | /usr/share/mysql/english/ |
    | large_files_support | ON |
    | large_page_size | 0 |
    | large_pages | OFF |
    | lc_time_names | en_US |
    | license | GPL |
    | local_infile | ON |
    | locked_in_memory | OFF |
    | log | OFF |
    | log_bin | OFF |
    | log_bin_trust_function_creators | OFF |
    | log_error | |
    | log_queries_not_using_indexes | OFF |

    Comment

    • cybernijntje
      Junior Member
      • Sep 2008
      • 16

      #3
      | log_slave_updates | OFF |
      | log_slow_queries | OFF |
      | log_warnings | 1 |
      | long_query_time | 10 |
      | low_priority_updates | OFF |
      | lower_case_file_system | OFF |
      | lower_case_table_names | 0 |
      | max_allowed_packet | 16776192 |
      | max_binlog_cache_size | 4294967295 |
      | max_binlog_size | 1073741824 |
      | max_connect_errors | 10 |
      | max_connections | 100 |
      | max_delayed_threads | 20 |
      | max_error_count | 64 |
      | max_heap_table_size | 16777216 |
      | max_insert_delayed_threads | 20 |
      | max_join_size | 18446744073709551615 |
      | max_length_for_sort_data | 1024 |
      | max_prepared_stmt_count | 16382 |
      | max_relay_log_size | 0 |
      | max_seeks_for_key | 4294967295 |
      | max_sort_length | 1024 |
      | max_sp_recursion_depth | 0 |
      | max_tmp_tables | 32 |
      | max_user_connections | 0 |
      | max_write_lock_count | 4294967295 |
      | multi_range_count | 256 |
      | myisam_data_pointer_size | 6 |
      | myisam_max_sort_file_size | 2147483647 |
      | myisam_recover_options | OFF |
      | myisam_repair_threads | 1 |
      | myisam_sort_buffer_size | 8388608 |
      | myisam_stats_method | nulls_unequal |
      | ndb_autoincrement_prefetch_sz | 32 |
      | ndb_force_send | ON |
      | ndb_use_exact_count | ON |
      | ndb_use_transactions | ON |
      | ndb_cache_check_time | 0 |
      | net_buffer_length | 16384 |
      | net_read_timeout | 30 |
      | net_retry_count | 10 |
      | net_write_timeout | 60 |
      | new | OFF |
      | old_passwords | OFF |
      | open_files_limit | 1024 |
      | optimizer_prune_level | 1 |
      | optimizer_search_depth | 62 |
      | pid_file | /var/run/mysqld/mysqld.pid |
      | port | 3306 |
      | preload_buffer_size | 32768 |
      | protocol_version | 10 |
      | query_alloc_block_size | 8192 |
      | query_cache_limit | 1048576 |
      | query_cache_min_res_unit | 4096 |
      | query_cache_size | 16777216 |
      | query_cache_type | ON |
      | query_cache_wlock_invalidate | OFF |
      | query_prealloc_size | 8192 |
      | range_alloc_block_size | 2048 |
      | read_buffer_size | 131072 |
      | read_only | OFF |
      | read_rnd_buffer_size | 262144 |
      | relay_log_purge | ON |
      | relay_log_space_limit | 0 |
      | rpl_recovery_rank | 0 |
      | secure_auth | OFF |
      | server_id | 0 |
      | skip_external_locking | ON |
      | skip_networking | OFF |
      | skip_show_database | OFF |
      | slave_compressed_protocol | OFF |
      | slave_load_tmpdir | /tmp/ |
      | slave_net_timeout | 3600 |
      | slave_skip_errors | OFF |
      | slave_transaction_retries | 10 |
      | slow_launch_time | 2 |
      | socket | /var/run/mysqld/mysqld.sock |
      | sort_buffer_size | 2097144 |
      | sql_big_selects | ON |
      | sql_mode | |
      | sql_notes | ON |
      | sql_warnings | OFF |
      | ssl_ca | |
      | ssl_capath | |
      | ssl_cert | |
      | ssl_cipher | |
      | ssl_key | |
      | storage_engine | MyISAM |
      | sync_binlog | 0 |
      | sync_frm | ON |
      | system_time_zone | CEST |
      | table_cache | 64 |
      | table_lock_wait_timeout | 50 |
      | table_type | MyISAM |
      | thread_cache_size | 8 |
      | thread_stack | 131072 |
      | time_format | %H:%i:%s |
      | time_zone | SYSTEM |
      | timed_mutexes | OFF |
      | tmp_table_size | 33554432 |
      | tmpdir | /tmp |
      | transaction_alloc_block_size | 8192 |
      | transaction_prealloc_size | 4096 |
      | tx_isolation | REPEATABLE-READ |
      | updatable_views_with_limit | YES |
      | version | 5.0.32-Debian_7etch1 |
      | version_comment | Debian etch distribution |
      | version_compile_machine | i486 |
      | version_compile_os | pc-linux-gnu |
      | wait_timeout | 28800 |
      +---------------------------------+-----------------------------+
      225 rows in set (0.01 sec)

      > /etc/mysql/my.cnf
      [mysqld]
      innodb_file_per_table
      key_buffer = 16M
      max_allowed_packet = 16M
      thread_stack = 128K
      thread_cache_size = 8
      query_cache_limit = 1M
      query_cache_size = 16M

      Comment

      • MrKen
        Senior Member
        • Oct 2008
        • 652

        #4
        You should try mysqltuner. It's a simple Perl script that will check your configuration and make some recommendations/suggestions for improved performance.

        Apibet Link Slot88 Rekomendasi Google 2025 Berita Jackpot Masa Depan serta harian slot gacor terbaik hingga winrate rtp tertinggi, klik link daftar untuk menuju situs Apibet.
        Disclaimer: All of the above is pure speculation.

        Comment

        • cybernijntje
          Junior Member
          • Sep 2008
          • 16

          #5
          Ok, so my post was nearly complete

          Thnx for the reply MrKen, but I forgot to mention that I already used 2 different tuning scripts, i.e. mysqltuner.pl and tuning-primer.sh.

          Btw, I lowered the StartPollers variable in zabbix_server.conf from 25 to 15, and now my CPU load is around 85-90% (instead of the full 100%).

          Anymore Zabbix related variables I can change to lower the CPU load?

          Comment

          • cybernijntje
            Junior Member
            • Sep 2008
            • 16

            #6
            Solved!

            After tweaking the following variables we had a CPU-load of 70-80%, but there were some weird zabbix_sender problems (even though there was no significant zabbix queue) so we had to increase the INNODB_BUFFER_POOL_SIZE to 1500M instead of 1000M.

            MySQL variables:
            innodb_buffer_pool_size
            join_buffer_size
            key_buffer_size
            long_query_time
            max_heap_table_size
            query_cache_limit
            query_cache_min_res_unit
            query_cache_size
            table_cache
            tmp_table_size

            Comment

            • flexguy
              Junior Member
              • Sep 2008
              • 19

              #7
              cpuload mysql-server, virtual machine

              Thanks for pointing out the 2 tuning scripts. We also suffered from heavy cpu-load caused by the mysql server daemon. After running the mysql tuner script and applying the recommendations we are now down to avg 30% (70% tops).

              We have a zabbix installation on a virtual machine (vmware) but i'm still considering "de-virtualisation" to improve performance.

              ubuntu 8.10, 300 hosts, 3000 items, lots of external scripts

              Comment

              • lostmarbles
                Member
                • Mar 2009
                • 50

                #8
                Please see this post about MySQL tuning scripts:

                We have been tuning MySQL lately and I ran accoss two useful tools that you might be interested in: mysqltuner.pl tuning-primer.sh Both of these scripts are quite useful for MySQL tuning. Here is some sample output of mysqltuner.pl >> MySQLTuner 0.9.8 - Major Hayden >> Bug reports, feature requests, and downloads at http://mysqltuner.com/ >> Run with '--help' for additional options and output filtering -------- General Statistics -------------------------------------...


                We use both and are pleased with how useful they are

                Comment

                Working...