数据库管理—mysql中的cpu利用率有时非常高

hpcdzsge  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(421)

如何优化mysql的cpu利用率有时会很高?
这是我的.ini文件

slow-query-log=1
long_query_time=10
server-id=1
max_connections=2000
table_open_cache=2000
tmp_table_size=391M
thread_cache_size=10
key_buffer_size=512M
read_buffer_size=64K
read_rnd_buffer_size=256K
innodb_additional_mem_pool_size=32M
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=256M
innodb_buffer_pool_size=10G
innodb_log_file_size=512M
innodb_thread_concurrency=25
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=256M
max_connect_errors=100
open_files_limit=4161
query_cache_type=1
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000
query_cache_size = 2084M

为了降低cpu的高利用率,请对此提出修改建议?

xienkqul

xienkqul1#

为my.ini[mysqld]部分考虑的建议(rps=每秒速率)
以root用户身份登录后,您可以验证这些动态全局变量是否适用于您的mysql版本:
设置全局变量\u name=variable\u value(注:128k为1281024,391m为3911024*1024-不允许动态更改)
就在每天更改my.ini之前。如果您的请求因“只读”消息而被拒绝,请跳过它并通知我。


# 20180904 1137  from  mysqlservertuning.com

# read_rnd_buffer_size=128K  # from 256K to reduce handler_read_rnd_next RPS

# innodb_io_capacity=1000  # from 200 to allow additional HD RD and WD RPS

# read_buffer_size=128K  # from 64K to reduce handler_read_next RPS

# max_connections=1000  # from 2000 because max_used_connections in 2 days was 244

# thread_cache_size=100  # from 10 to conserve CPU and reduce threads_created of 339 in 2 days

# max_heap_table_size=391M # from 16M to be = tmp_table_size and reduce created_tmp_disk_tables count

# innodb_lru_scan_depth=100  # from 1024 to reduce CPU busy every second see refman

# key_buffer_size=64M  # from 512M because only 11% used today

# innodb_change_buffer_max_size=15  # from 25 percent because less than 1% used

# innodb_flushing_avg_loops=10  # from 30 to reduce flushing loop delay

每天,将当前的my.ini保存在\history中,并使用日期计时文件名(如20180904-1137-my.ini)以允许快速返回到上次使用的my.ini。
第一次,将此块(包括开始日期和我们的网站名称)复制到[mysqld]部分的末尾,并通过删除开始#和空格字符启用每天一次更改,然后继续进行下一次更改。
使用前导#和空格键禁用先前的同名变量,以避免混淆。在5年内,您仍将拥有my.ini更改的历史记录和大致日期。
通常每天只有一次更换,在进行下一次更换前进行监控。如果一个变化似乎有害,回到上一个工作我的.ini,让我们知道,请。
期待您在实施后7天内发布评论到mysqlservertuning.com,选择商店,选择您购买的商品-即使是免费的,请向下滚动到评论并添加您的评论。发布评论不需要登录帐户。

相关问题