首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于my.cnf的问题

关于my.cnf的问题
EN

Database Administration用户
提问于 2018-07-19 04:58:53
回答 1查看 66关注 0票数 1

我正在配置一个在MySQL8上运行CentOS7的新unix框。这个盒子是hyperV上的专用数据库服务器,16 CPU的64 Gb内存,2Tb的SSD空间。我的配置文件如下所示。服务器主要用于生产OLAP处理。我的问题是:

  1. my.cnf配置文件中有什么突出的问题吗?
  2. 与我的服务器上的MySQL8默认fsync相比,使用MySQL8的Sysbench性能要差得多(与我在这个论坛上一直阅读的内容相反)。这是CentOS7的具体问题吗?在基准测试过程中,有没有其他人遇到过类似的性能下降?

- My.Cnf --

代码语言:javascript
复制
[client]
#########Connect to 3306
port=3306
socket=/mysqldata/mysql-logs/mysql.sock

[mysqld]
#########User mysql as user
port=3306
user=mysql
basedir=/mysqldata/mysql
datadir=/mysqldata/mysql/innodb/
log_error=/mysqldata/mysql-logs/mysql.err
general_log_file=/mysqldata/mysql-logs/mysql.general.log
socket=/mysqldata/mysql-logs/mysql.sock

#########General
max_connections=200
table_open_cache=4000
table_open_cache_instances=16
back_log=50
default_authentication_plugin=mysql_native_password
character_set_server=latin1
skip-character-set-client-handshake
skip_log_bin=1
performance_schema=OFF
lc_messages_dir = /opt/mysql/share
lc_messages = en_US

######### Temporary table
tmp_table_size = 2000M
max_heap_table_size = 2000M

######### Slow Query
slow_query_log  = 1
slow_query_log_file=/mysqldata/mysql-logs/mysql-slow-query.log
long_query_time = 30

######### Files
innodb_log_group_home_dir=/mysqldata/innodb-logs/
innodb_log_file_size=2048M
innodb_log_files_in_group=5
innodb_open_files=4000

######### Innodb Buffer
innodb_buffer_pool_size=40G
innodb_buffer_pool_instances=16
innodb_log_buffer_size=64M

######### Tune
#########Happy to risk 1 sec of data loss for improved performance

innodb_flush_log_at_trx_commit=2

######### These two lines below for max dirty page are server defauls from 8.0.3
innodb_max_dirty_pages_pct=90
innodb_max_dirty_pages_pct_lwm=10



#########innodb_flush_method=O_DIRECT_NO_FSYNC
#########innodb_checksum_algorithm=none

innodb_io_capacity=10000
innodb_io_capacity_max=40000
innodb_page_cleaners=16
innodb_undo_log_truncate=off

######### perf special
innodb_adaptive_flushing=1
innodb_flush_neighbors=0
innodb_read_io_threads=16
innodb_write_io_threads=16
innodb_purge_threads=4
innodb_adaptive_hash_index=0

######### monitoring
innodb_monitor_enable='%'
EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-07-19 14:06:51

将这些内存保持在1%以下,否则可能导致交换,这是不好的:

代码语言:javascript
复制
tmp_table_size = 2000M
max_heap_table_size = 2000M

其他人看上去很合理。在你跑了一段时间之前,无法预测还有什么东西需要改变。

是你的sysbench测试决定了fsync吗?多年来,O_DIRECT一直是人们普遍的思维方式。

您会为OLAP构建和维护汇总表吗?这通常是数据仓库中最重要的性能问题。调整设置可以帮助你几个百分点,总结可以给你10倍。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/212616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档