Hello. I've been working out a large environment configuration for some time now, and I'm about at the end of my rope.
Currently, I'm monitoring 7500 hosts, 250k items, using one zabbix server and 3 proxies.
The 3 proxies run mysql community 5.5 and appear to run smoothly.
The 1 zabbix server runs MySQL 5.5 Percona and .. does not run so smoothly.
It seems no matter what I tweak, I still see the same issues:
Query failed: [1213] Deadlock found when trying to get lock; try restarting transaction [update ids set nextid=nextid+256 where nodeid=0 and table_name='events' and field_name='eventid']
Query failed: [1205] Lock wait timeout exceeded; try restarting transaction [update ids set nextid=nextid+256 where nodeid=0 and table_name='events' and field_name='eventid']
Here is some statistical data from mysqltuner:
[--] Up for: 47m 36s (13M q [4K qps], 640 conn, TX: 16B, RX: 4B)
[--] Reads / Writes: 85% / 15%
[--] Total buffers: 16.2G global + 3.0M per thread (400 max threads)
[OK] Maximum possible memory usage: 17.3G (73% of installed RAM)
[OK] Slow queries: 0% (172/13M)
[OK] Highest usage of available connections: 69% (278/400)
[OK] Key buffer size / total MyISAM indexes: 384.0M/102.0K
[OK] Key buffer hit rate: 100.0% (23M cached / 3 reads)
[!!] Query cache efficiency: 0.7% (86K cached / 11M selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 2K sorts)
[OK] Temporary tables created on disk: 0% (74 on disk / 220K total)
[OK] Thread cache hit rate: 56% (278 created / 640 connections)
[OK] Table cache hit rate: 96% (221 open / 228 opened)
[OK] Open file limit used: 2% (48/2K)
[OK] Table locks acquired immediately: 100% (55M immediate / 55M locks)
[!!] Connections aborted: 8%
[!!] InnoDB data size / buffer pool: 20.2G/15.6G
The connections aborted worries me.
Here is my my.cnf
innodb_file_per_table
innodb_file_format=barracuda
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 32M
max_connections=400
join_buffer_size=256k
read_buffer_size=256k
read_rnd_buffer_size=256k
table_open_cache = 512
sort_buffer_size = 2M
myisam_sort_buffer_size = 64M
thread_cache_size=384
query_cache_limit=1M
query_cache_size = 128M
thread_concurrency = 16
innodb_data_home_dir = /datastore/zabbix
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /datastore/zabbix
innodb_buffer_pool_size = 16000M
innodb_flush_method=O_DIRECT
innodb_flush_log_at_trx_commit = 2
Does anyone see anything I can do to stabilize this more?
Currently, I'm monitoring 7500 hosts, 250k items, using one zabbix server and 3 proxies.
The 3 proxies run mysql community 5.5 and appear to run smoothly.
The 1 zabbix server runs MySQL 5.5 Percona and .. does not run so smoothly.
It seems no matter what I tweak, I still see the same issues:
Query failed: [1213] Deadlock found when trying to get lock; try restarting transaction [update ids set nextid=nextid+256 where nodeid=0 and table_name='events' and field_name='eventid']
Query failed: [1205] Lock wait timeout exceeded; try restarting transaction [update ids set nextid=nextid+256 where nodeid=0 and table_name='events' and field_name='eventid']
Here is some statistical data from mysqltuner:
[--] Up for: 47m 36s (13M q [4K qps], 640 conn, TX: 16B, RX: 4B)
[--] Reads / Writes: 85% / 15%
[--] Total buffers: 16.2G global + 3.0M per thread (400 max threads)
[OK] Maximum possible memory usage: 17.3G (73% of installed RAM)
[OK] Slow queries: 0% (172/13M)
[OK] Highest usage of available connections: 69% (278/400)
[OK] Key buffer size / total MyISAM indexes: 384.0M/102.0K
[OK] Key buffer hit rate: 100.0% (23M cached / 3 reads)
[!!] Query cache efficiency: 0.7% (86K cached / 11M selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 2K sorts)
[OK] Temporary tables created on disk: 0% (74 on disk / 220K total)
[OK] Thread cache hit rate: 56% (278 created / 640 connections)
[OK] Table cache hit rate: 96% (221 open / 228 opened)
[OK] Open file limit used: 2% (48/2K)
[OK] Table locks acquired immediately: 100% (55M immediate / 55M locks)
[!!] Connections aborted: 8%
[!!] InnoDB data size / buffer pool: 20.2G/15.6G
The connections aborted worries me.
Here is my my.cnf
innodb_file_per_table
innodb_file_format=barracuda
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 32M
max_connections=400
join_buffer_size=256k
read_buffer_size=256k
read_rnd_buffer_size=256k
table_open_cache = 512
sort_buffer_size = 2M
myisam_sort_buffer_size = 64M
thread_cache_size=384
query_cache_limit=1M
query_cache_size = 128M
thread_concurrency = 16
innodb_data_home_dir = /datastore/zabbix
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /datastore/zabbix
innodb_buffer_pool_size = 16000M
innodb_flush_method=O_DIRECT
innodb_flush_log_at_trx_commit = 2
Does anyone see anything I can do to stabilize this more?

Comment