Buenas a todos,
LLevo un tiempo que la RAM del servidor donde tengo instalado mysql está siempre al 100% y viendo los procesos que se están corriendo, MySQL es el que más consumo me da de CPU y memoria y por lo que puedo apreciar el causante de un gran uso de la RAM.
Observando el performance en queries, inserts, updates, etc solo consegui ver algunas queries que se ejecutaban cada hora y que tardaban mas de un minuto en terminarse las cuales ya solucione. Aún asi el problema continua y no consigo descubrir el porqué.
Os paso como tengo configurado el my.cnf y las cualidades del servidor para ver si alguno puede ayudarme en la mejora de performance y asi conseguir reducir el consumo de RAM, y si necesitais mas información me decis y estaré encantado de ofrecerla:
my.cnf:
federated
### General
user = ()
port = 3306
datadir = /var/lib/mysql
tmpdir = /tmp
socket = /var/lib/mysql/mysql.sock
skip-external-locking = 1
log_error = /var/log/mysqld.log
event_scheduler = on
open-files-limit = 20000
### Cache
thread-cache-size = 16
table-open-cache = 2048
table-definition-cache = 512
query-cache-size = 32M
query-cache-limit = 1M
### Per-thread Buffers
sort-buffer-size = 1M
read-buffer-size = 1M
read-rnd-buffer-size = 8M
join-buffer-size = 1M
### Temp Tables
tmp-table-size = 64M
max-heap-table-size = 64M
### Networking
back-log = 100
max-connections = 500
max-connect-errors = 10000
max-allowed-packet = 16M
interactive-timeout = 600
wait-timeout = 180
net_read_timeout = 30
net_write_timeout = 30
# This value is the size of the listen queue for incoming TCP/IP connections.
back_log = 128
#### Storage Engines
default-storage-engine = InnoDB
innodb = FORCE
### MyISAM
key-buffer-size = 64M
myisam-sort-buffer-size = 128M
### InnoDB
innodb-buffer-pool-size = 2G
innodb-log-buffer-size = 4M
innodb-log-file-size = 256M
innodb-log-files-in-group = 2
### Replication
server-id = ()
log-bin = /var/lib/mysqllogs/db1-binary-log
expire_logs_days = 14
server-id=21009674
binlog-format = mixed
### Logging
slow-query-log = 1
slow-query-log-file = /var/lib/mysqllogs/slow-log
[mysqld-safe]
log-error = /var/log/mysqld.log
[mysqldump]
max-allowed-packet = 16M
Server:
System: CentOS 6 - MGC LAMP
CPU: 4vCPUs
RAM: 8BG
System Disk: 320GB
Network: 600 Mb / s
Saludos
Mario
- Inicie sesión o registrese para enviar comentarios
Hola Mario Yo en los
Subido por Carlos el 5 Julio, 2014 - 12:39
Hola Mario
Yo en los parámetros no veo nada raro, pero siempre lo mejor es buscar primero por dónde viene el problema y después ajustar los parámetros que puedan mejorar el rendimiento en tu caso. Si no hay queries demasiado costosas y el consumo de memoria es muy alto, el problema te podría venir por el número de sesiones abiertas a la vez, se puede consumir mucha memoria si se lanzan demasiadas consultas concurrentes, aunque éstas no sean demasiado pesadas.
De todas maneras, te recomiendo que investigues un poco más antes de tocar nada. Si no lo has visto aún, hace tiempo escribí un artículo que trataba justo de analizar el rendimiento de MySQL para poder tunear los parámetros de la base de datos.
Seguro que el script mysqltunner.pl que explico en el post cómo utilizar te puede ayudar a identificar dónde puedes mejorar el rendimiento, y reducir así el consumo de memoria.
Saludos,
Actualmente tengo una página
Subido por veraz (no verificado) el 17 Marzo, 2016 - 20:51
Actualmente tengo una página web donde me consume cerca del 47% del consumo total de la CPU.
He analizado el caso, y no encuentro cual sea el problema.
He optimizado las tablas de todas las bases de datos.