Com base nas informações fornecidas pelo mysqltuner, sugestões a serem consideradas para o seu .cnf (ou .ini) na seção [mysqld]. NÃO altere mais de 1 item por dia. Mantenha uma cópia dos 3 últimos .cnf por precaução. Invista em mais RAM, se possível.
max_connections
=200 # de 2540 18/08/2017, apenas 119 usados em 35 diashave_query_cache
=NO # de YES mm/dd/ccyy, para evitar sobrecarga de QCquery_cache_size
=0 # é 0 mm/dd/ccyy, para garantir que o CQ não esteja disponívelthread_cache_size
=100 # 5.7 calc is 8 + (max_connections / 100 ) cap em 100 - para suportar 22 milhões de conexões em 35 diaskey_buffer_size
=8M # de 16M mm/dd/ccyy apenas ~20% usado em 35 dias innodb_thread_concurrency=25 # from 0 mm/dd/ccyy to manage activity
innodb_buffer_pool_size=20G # from 22.5G mm/dd/ccyy to reduce memory footprint
innodb_buffer_pool_instances=8 # from 20 mm/dd/ccyy should be fine
table_open_cache=10000 # from 2000 mm/dd/ccyy for your 532K opened in 35 days
Para uma análise mais completa, após 7 dias de UPTIME, forneça SHOW GLOBAL STATUS; MOSTRAR VARIÁVEIS GLOBAIS; MOSTRAR STATUS INNODB DO MOTOR;
Os 3,2 M por thread relatados pelo tuner devem ser analisados com a ajuda de mysqlcalculator.com para comparar os padrões com seus valores conforme relatado por SHOW GLOBAL VARIABLES; alguns itens parecem excessivos.