3

I upgrade some month ago from Ubuntu 18.04 to 20.04. So MySQL upgrade from 5.7.33 to 8.0.23.

I notice after the upgrade that MySQL is slow to start.

2021-02-24T09:20:16.972632Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.23-0ubuntu0.20.04.1). 2021-02-24T09:23:19.459483Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.23-0ubuntu0.20.04.1) (Ubuntu). 2021-02-24T09:28:43.738171Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.23-0ubuntu0.20.04.1) starting as process 999 2021-02-24T09:28:44.973719Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2021-02-24T09:33:02.352311Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2021-02-24T09:33:06.424798Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock 2021-02-24T09:33:07.646778Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2021-02-24T09:33:07.647106Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. 2021-02-24T09:33:08.295842Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.23-0ubuntu0.20.04.1' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu) 

The slowdown seems to come from the "InnoDB initialization".

The MySQL contains 70 databases (Wordpress) for development project and are not actively used.

I also notice this slowdown on 3 other servers. (but not as much and they contains less databases.)

Due to this slowdown, websites display "database connection" error during Innodb initialization.

What causes exactly this slowdown ? Is there any parameter to speed up the process ?

Edit : Actual configuration

# # The MySQL database server configuration file. # # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html # Here is entries for some specific programs # The following values assume you have at least 32M ram [mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql # If MySQL is running as a replication slave, this should be # changed. Ref https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmpdir tmpdir = /tmp # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 # # * Fine Tuning # key_buffer_size = 16M # max_allowed_packet = 64M # thread_stack = 256K # thread_cache_size = -1 # This replaces the startup script and checks MyISAM tables if needed # the first time they are touched myisam-recover-options = BACKUP # max_connections = 151 # table_open_cache = 4000 # # * Logging and Replication # # Both location gets rotated by the cronjob. # # Log all queries # Be aware that this log type is a performance killer. # general_log_file = /var/log/mysql/query.log # general_log = 1 # # Error log - should be very few entries. # log_error = /var/log/mysql/error.log # # Here you can see queries with especially long duration # slow_query_log = 1 # slow_query_log_file = /var/log/mysql/mysql-slow.log # long_query_time = 2 # log-queries-not-using-indexes # # The following can be used as easy to replay backup logs or for replication. # note: if you are setting up a replication slave, see README.Debian about # other settings you may need to change. # server-id = 1 # log_bin = /var/log/mysql/mysql-bin.log # binlog_expire_logs_seconds = 2592000 max_binlog_size = 100M # binlog_do_db = include_database_name # binlog_ignore_db = include_database_name skip-name-resolve table_open_cache = 4000 join_buffer_size = 8M tmp_table_size = 64M key_buffer_size = 48M max_heap_table_size = 64M innodb_buffer_pool_size = 1500M innodb_buffer_pool_instances = 1 innodb_log_file_size = 190M 
7
  • Check on skip-name-resolve. Commented Feb 25, 2021 at 6:38
  • Hi @Rick James, skip-name-resolve seems to help a little, but innodb initialisation is still pretty slow. I edit my post and add my mysql configuration. Maybe there is something wrong in it. Commented Feb 25, 2021 at 8:35
  • How much RAM?.. Commented Feb 25, 2021 at 15:02
  • @RickJames It's a small VM with 8Go. Also notice it is not only dedicated to MySQL. Commented Feb 25, 2021 at 15:33
  • 8G is good. 4 minutes for "InnoDB initialization" is baffling. Commented Feb 25, 2021 at 15:35

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.