Centos MySQL otimização 4gb ram

2

Estou usando o Centos 6 64bit em vps com ram de 4GB. 1 site wordpress e 2 sites de script de papéis de parede. Wordrpess tem 10k visitas diárias. O site está lento.

My.cnf

# Example mysql config file for large systems.
#
# This is for large system with memory = 512M where the system runs mainly
# MySQL.
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /usr/local/mysql/var) or
# ~/.my.cnf to set user-specific options.
#
# One can in this file use all long options that the program supports.
# If you want to know which options a program support, run the program
# with --help option.

# The following options will be passed to all MySQL clients
[client]
#password   = your_password
port        = 3306
socket      = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
skip-locking
set-variable    = key_buffer=256M
set-variable    = max_allowed_packet=1M
set-variable    = table_cache=256
set-variable    = sort_buffer=1M
set-variable    = record_buffer=1M
set-variable    = myisam_sort_buffer_size=64M
set-variable    = thread_cache=8
# Try number of CPU's*2 for thread_concurrency
set-variable    = thread_concurrency=8
log-bin
server-id   = 1

# Uncomment the following if you are using BDB tables
#set-variable   = bdb_cache_size=64M
#set-variable   = bdb_max_lock=100000

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/mysql/var/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql/var/
#innodb_log_arch_dir = /usr/local/mysql/var/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#set-variable = innodb_buffer_pool_size=256M
#set-variable = innodb_additional_mem_pool_size=20M
# Set .._log_file_size to 25 % of buffer pool size
#set-variable = innodb_log_file_size=64M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#set-variable = innodb_lock_wait_timeout=50

# Point the following paths to different dedicated disks
#tmpdir     = /tmp/     
#log-update     = /path-to-dedicated-directory/hostname

[mysqldump]
quick
set-variable    = max_allowed_packet=16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
set-variable    = key_buffer=128M
set-variable    = sort_buffer=128M
set-variable    = read_buffer=2M
set-variable    = write_buffer=2M

[myisamchk]
set-variable    = key_buffer=128M
set-variable    = sort_buffer=128M
set-variable    = read_buffer=2M
set-variable    = write_buffer=2M

[mysqlhotcopy]
interactive-timeout

Isso é ./mysqltuner.pl

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.27-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 16M (Tables: 61)
[--] Data in InnoDB tables: 4M (Tables: 34)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] Total fragmented tables: 34

-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 9m 53s (40K q [68.862 qps], 3K conn, TX: 203M, RX: 4M)
[--] Reads / Writes: 83% / 17%
[--] Total buffers: 432.0M global + 6.4M per thread (151 max threads)
[OK] Maximum possible memory usage: 1.4G (36% of installed RAM)
[OK] Slow queries: 0% (0/40K)
[OK] Highest usage of available connections: 74% (113/151)
[OK] Key buffer size / total MyISAM indexes: 256.0M/10.1M
[OK] Key buffer hit rate: 97.9% (152K cached / 3K reads)
[OK] Query cache efficiency: 62.0% (17K cached / 27K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 224 sorts)
[OK] Temporary tables created on disk: 25% (71 on disk / 277 total)
[OK] Thread cache hit rate: 77% (831 created / 3K connections)
[OK] Table cache hit rate: 39% (135 open / 342 opened)
[OK] Open file limit used: 15% (162/1K)
[OK] Table locks acquired immediately: 98% (13K immediate / 13K locks)
[OK] InnoDB data size / buffer pool: 4.5M/128.0M

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    MySQL started within last 24 hours - recommendations may be inaccurate
    Enable the slow query log to troubleshoot bad queries
    
por user156220 26.01.2013 / 21:56

4 respostas

1

Tente aumentar o innodb_buffer_pool_size (para 512M) e o tamanho do cache de consulta (query_cache_type = 1 e query_cache_size = 256M).

Algumas recomendações gerais e simples: link

    
por 14.03.2015 / 21:09
0

Tente instalar um plugin de cache para a sua instalação do WordPress. Eu pessoalmente recomendo W3 Super Cache:

link

Você também pode instalar o XCache e configurar o PHP como FCGI para obter melhor armazenamento em cache (o WP Super Cache funciona com o XCache e também com o standalone).

    
por 27.01.2013 / 03:04
0

Percona tem um assistente de configuração bastante decente, que cuspirá um arquivo my.cnf estreitamente ajustado ao seu servidor e carga de trabalho: link

Ele não fornece uma configuração perfeita, mas você pode comparar com o que está executando no momento e ver por que eles selecionaram determinadas configurações.

    
por 01.01.2015 / 22:25
0

Por que o mysql é um gargalo? Im pretty shure php é o problema aqui, já que eu gerencio muitos sites de magento com mais visitas do que 10k / dia.

O Wp é 100% compatível com o php7, então comece a partir daí. Faça isso em um ambiente de desenvolvimento primeiro e depois ao vivo. Também um plugin de cacheing é um bom impulso, eu sugiro que o cache de redis seja super rápido. O próximo passo seria mover o mysql / mariadb para outro vm. Desde que você está bombeando meu.cnf você está roubando cpu / ram para php assim 1 vm para php e um para o mysql deve ajudar muito

    
por 03.07.2016 / 20:25