操作系统是红帽子6.2 数据库版本MYSQL 5.7.14 安装方式是rpm文件,内存128G。
以下是网上收集的修改少部分地方,总感觉多了或少了点东西,但我新手,请高手们解答下~ 万分感谢
max_connections=4000
key_buffer_size=200M
low_priority_updates=1
table_open_cache = 8000
back_log=1500
query_cache_type=0
table_open_cache_instances=16# files
innodb_file_per_table=1
innodb_log_file_size=1024M
innodb_log_files_in_group = 3
innodb_open_files=4000# buffers
innodb_buffer_pool_size=32000M
innodb_buffer_pool_instances=32
innodb_additional_mem_pool_size=20M
innodb_log_buffer_size=64Mjoin_buffer_size=2560M
sort_buffer_size=2560M# innodb
innodb_checksums=0
innodb_doublewrite=0
innodb_support_xa=0
innodb_thread_concurrency=0
innodb_flush_log_at_trx_commit=2
innodb_max_dirty_pages_pct=50
innodb_use_native_aio=1
innodb_stats_persistent = 1
innodb_spin_wait_delay= 6 / 96# perf special
innodb_adaptive_flushing = 1
innodb_flush_neighbors = 0
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_io_capacity = 4000
innodb_purge_threads=1
innodb_adaptive_hash_index=0# monitoring
innodb_monitor_enable = '%'
performance_schema=OFF

解决方案 »

  1.   

    主要有三个地方:
    1、缓存设置问题
    innodb_buffer_pool_size=32000M
    key_buffer_size=200M
    这两个值分别影响innodb和mysiam引擎的表性能,机器内存有128G,如果主要是innodb引擎,除去操作系统和其他软件所需内存后,大概可以设置剩余内存的75%左右。当然最好是运行一段时间后,计算一下这两个缓存的命中率情况,命中率最好大于99%。
    2、session的缓存
    join_buffer_size=2560M
    sort_buffer_size=2560M
    这些参数是针对每个session,如果你有4k连接,每个连接都用了2560M sort_buffer_size,那么需要内存2560M*4000,显然内存是不足的;况且,一般的排序都不可能需要这么大内存,一般设置8M足矣!超过8M,就让它在磁盘临时表进行排序吧。
    3、数据安全关键参数
    innodb_flush_log_at_trx_commit=2
    设置为2,mysql每次事务提交会把log buffer的数据写入log file,但却每秒执行一次 flush(刷到磁盘)操作。这样会有一个问题,就是服务器断电时,可能会丢失上一秒的事务。所以,innodb_flush_log_at_trx_commit最好设置为1,当然这样会更多的消耗服务器io。
    纯粹个人经验,如有不当之处,还请不吝赐教!
      

  2.   

    修改
    innodb_doublewrite=1
    innodb_buffer_pool_size=80G去掉用默认即可
    join_buffer_size=2560M
    sort_buffer_size=2560M