使用 O_DIRECT 提高 MySQL 性能
Improve MySQL performance with O_DIRECT
我想提高 MySQL 的性能。所以我已经将配置级别更改为 MySQL。我使用了 innodb_flush_method = O_DIRECT
,但插入率并没有增加多少。通常情况下,插入率为 650 inserts/sec。我怎么知道天气 O_DIRECT 工作正常。
我正在使用 Ubuntu 14.04.1 服务器和 MySQL v5.6。 CPU 内存和磁盘 I/O 速率正常(我使用 RAID、16 GB RAM、8 CPU 内核)我使用 WSO2 CEP 进行插入。我已经实施了该部分并使用 MySQL workbench 进行了测量。但是虽然我通过 wSO2 CEP 增加了插入率,但我无法获得更多性能。
我用过以下my.cnf.
my.cnf
[mysqld]
innodb_buffer_pool_size = 9G
query_cache_size = 128M
innodb_log_file_size = 1768M
innodb_flush_log_at_trx_commit = 0
innodb_io_capacity = 1000
innodb_flush_method = O_DIRECT
max_heap_table_size = 536870912
innodb_lock_wait_timeout = 1
max_connections = 400
sort_buffer_size = 128M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
skip-host-cache
skip-name-resolve
event_scheduler=on
在这种情况下,如果您使用的是事件表,旧的 CEP/siddhi 版本不会执行批量插入。这可能是上述原因的原因。在最新的 SNAPSHOT 源(Siddhi 的)中,我们已经修复了这个问题.. 并且您可以在下一个版本中获得相当不错的数字..
我想提高 MySQL 的性能。所以我已经将配置级别更改为 MySQL。我使用了 innodb_flush_method = O_DIRECT
,但插入率并没有增加多少。通常情况下,插入率为 650 inserts/sec。我怎么知道天气 O_DIRECT 工作正常。
我正在使用 Ubuntu 14.04.1 服务器和 MySQL v5.6。 CPU 内存和磁盘 I/O 速率正常(我使用 RAID、16 GB RAM、8 CPU 内核)我使用 WSO2 CEP 进行插入。我已经实施了该部分并使用 MySQL workbench 进行了测量。但是虽然我通过 wSO2 CEP 增加了插入率,但我无法获得更多性能。
我用过以下my.cnf.
my.cnf
[mysqld]
innodb_buffer_pool_size = 9G
query_cache_size = 128M
innodb_log_file_size = 1768M
innodb_flush_log_at_trx_commit = 0
innodb_io_capacity = 1000
innodb_flush_method = O_DIRECT
max_heap_table_size = 536870912
innodb_lock_wait_timeout = 1
max_connections = 400
sort_buffer_size = 128M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
skip-host-cache
skip-name-resolve
event_scheduler=on
在这种情况下,如果您使用的是事件表,旧的 CEP/siddhi 版本不会执行批量插入。这可能是上述原因的原因。在最新的 SNAPSHOT 源(Siddhi 的)中,我们已经修复了这个问题.. 并且您可以在下一个版本中获得相当不错的数字..