MySQL server upgrade, how to adapt variables

configurationcpumemorymy.cnfMySQL

I am about to upgrade my MySQL server because I have currently used it mainly with a couple of people in the development stage. Before we launch, however, we would like more capacity to avoid the server crashing. I currently run on a Ubuntu system with 2 GB of RAM, 2 vCPU's, 60 GB disk and 3 TB of monthly transfer.

My variables are set to:

innodb_buffer_pool_size = 256M
innodb_io_capacity      = 1900
innodb_flush_method     = O_DIRECT
key_buffer_size         = 10M
max_allowed_packet      = 32M
thread_stack            = 192K
thread_cache_size       = 100
myisam-recover-options  = BACKUP
query_cache_limit       = 10M
query_cache_size        = 0
slow_query_log          = 1
slow_query_log_file     = /var/log/mysql/mysql-slow.log
long_query_time         = 2
wait_timeout            = 300
interactive_timeout     = 300

I am about to ugprade my server to 8 GB RAM, 4 vCPU's, 160 GB of disk space and 5 TB of monthly transfer. The size of my table is currently 1.3 MB, but this will of course increase as soon as more users become active. How much this will increase and how fast, I can not really say for sure.

So I am now trying to figure out how I should change my variables to get the best performance. I know I should allocate my memory correctly, and these settings work fine for the setup I currently have, but if I need to change anything for the upgraded system, I would really appreciate some insights.

Cheers!

Best Answer

If your dataset size is only 1,3MB, then buffer_pool_size = 256M gives you a lot of growing room.

If HDD, change innodb_io_capacity back to the default of 200.

The slowlog (which you have already turned on) will provide info on what to fix if you have performance problems.

Has the server crashed? If so, let's see details on that.

Do you have other apps crammed into the tiny 2GB of RAM? Changing to 8GB is likely to help with that.