服务器 : 32核 bi-thread (HT) Intel 2300Mhz, 128GB RAM 操作系统 : Oracle Linux 6.2 文件系统 : XFS mounted with "noatime,nodiratime,nobarrier,logbufs=8" MySQL : 5.6-GA, latest 5.5 MySQL配置: #-------------------------------------------------- max_connections = 4000 key_buffer_size = 200M low_priority_updates = 1 sort_buffer_size = 2097152 back_log = 1500 query_cache_type = 0 # files innodb_file_per_table innodb_log_file_size = 1024M innodb_log_files_in_group = 3 innodb_open_files = 4000 table_open_cache = 8000 table_open_cache_instances = 16 # buffers innodb_buffer_pool_size = 32000M innodb_buffer_pool_instances = 32 innodb_log_buffer_size = 64M join_buffer_size = 32K sort_buffer_size = 32K # tune innodb_checksums = 0 innodb_doublewrite = 0 innodb_support_xa = 0 innodb_thread_concurrency = 0 innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT 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 = 16 innodb_write_io_threads = 4 innodb_io_capacity = 2000 innodb_purge_threads =1 innodb_adaptive_hash_index = 1 / 0 # Monitoring innodb_monitor_enable = '%' performance_schema = ON performance_schema_instrument = '%=on' #-------------------------------------------------- MySQL 调整:
首先向你展示第一个有趣的比较,为了跟我以前的测试保持“兼容性”,我首先测试了 TPS (事务/秒),然后再是 QPS (查询/秒) ,我更喜欢这种方式。 首个测试是经典的 Sysbench OLTP_RO (只读): Sysbench OLTP_RO:接下来是同一个 OLTP_RO 测试,但在事务中不进行表的打开和关闭操作 (完整的解释请看 这里 ) Sysbench OLTP_RO-trx : 接下来是 "point-selects" ,这是一种读数据的方式,在以前的 MySQL 5.5 版本表现良好,但在 5.6 仍有一些不同。 Sysbench OLTP_RO Point-Selects : 这是最痛苦的测试,Simple-Ranges (你可以阅读 此文 了解为什么痛苦和令人沮丧) Sysbench OLTP_RO Simple-Ranges : 下面是读写测试,这还不是负载最重的读写,但仍可说明问题: Sysbench OLTP_RW :TPS 从 256 个并发用户时就开始下降,期待这个有更高的水平。但仍然比 5.5 版本要高出 2 倍,相信我,下一个版本的 MySQL 表现会更好。这个阶段可通过调整 innodb 线程并发设置来得到更稳定和更高性能。 我很高兴的看到 MySQL 5.6 GA 发布,因为:
转载请保留固定链接: https://linuxeye.com/database/1284.html |