### bei O_DSYNC und O_DIRECT sollte innodb_redo_log_capacity etwas größer sein => innodb_redo_log_capacity=32G ### aber wenn innodb_fast_shutdown = 0, dann kann innodb_redo_log_capacity deutlich kleiner => innodb_redo_log_capacity=8G ### SET GLOBAL innodb_io_capacity=3000; SET GLOBAL innodb_io_capacity_max=8000; SET GLOBAL innodb_redo_log_capacity = 8 * 1024 * 1024 * 1024; innodb_io_capacity = 3000 # wird von innodb_redo_log_capacity benötigt -> durchschnittliche IOPS des Datenträgers innodb_io_capacity_max = 8000 # wird von innodb_redo_log_capacity benötigt -> maximale IOPS des Datenträgers innodb_redo_log_capacity = 8G # Schreibrate * 10 Minuten (abhängig von innodb_flush_method) = innodb_redo_log_capacity -> ca.~ 5–15% vom innodb_buffer_pool_size innodb_buffer_pool_instances = 8 join_buffer_size = 2M tmp_table_size = 32M max_heap_table_size = 32M ### LRU Scan Depth bestimmt, wie weit InnoDB vorausschaut, um Platz zu schaffen ### Zu klein: Threads warten auf freie Pages, „buffer pool free list“ wird knapp, spontane Flush-Spikes ### Zu groß: hohe CPU-Last im Hintergrund, unnötige IO, keine echte Performanceverbesserung ### echo "SHOW GLOBAL VARIABLES WHERE VARIABLE_NAME IN ('Innodb_buffer_pool_size', 'innodb_lru_scan_depth', 'Innodb_page_size'); SHOW GLOBAL STATUS WHERE variable_name IN ('Innodb_buffer_pool_pages_free', 'Innodb_buffer_pool_pages_total', 'Innodb_buffer_pool_pages_dirty', 'Innodb_buffer_pool_wait_free', 'Innodb_page_size');" | mysql -t ### Innodb_buffer_pool_wait_free > 0 (muß "0" sein) # innodb_lru_scan_depth & innodb_io_capacity erhöhen ### Innodb_buffer_pool_pages_free ~ 0 (sollte mind. bei 1-5% vom Buffer Pool sein) # innodb_lru_scan_depth & innodb_io_capacity erhöhen ### echo "SET GLOBAL innodb_lru_scan_depth=1024;" | mysql ### Innodb_buffer_pool_pages_total = Innodb_buffer_pool_size / Innodb_page_size ### max. Innodb_buffer_pool_pages_free = Innodb_buffer_pool_pages_total / 20 ### min. Innodb_buffer_pool_pages_free = Innodb_buffer_pool_pages_total / 100 ### max. Innodb_buffer_pool_pages_free = 4194304 / 20 = ca. 210000 freie Pages ### min. Innodb_buffer_pool_pages_free = 4194304 / 100 = ca. 42000 freie Pages #innodb_lru_scan_depth = 256 #innodb_lru_scan_depth = 512 innodb_lru_scan_depth = 1024 ################################################################################ innodb_page_cleaners = 8 innodb_flush_log_at_trx_commit = 1 sync_binlog = 0 innodb_doublewrite_batch_size = 64 innodb_doublewrite_pages = 128 ################################################################################