Foros del Web » Administración de Sistemas » Cloud Computing »

Necesito ayuda para optimizar mi servidor

Estas en el tema de Necesito ayuda para optimizar mi servidor en el foro de Cloud Computing en Foros del Web. Buenos días amigos. A pesar de mis limitados conocimientos en manejo de servidores, hasta hace poco tomé la decisión de contratar un servidor dedicado no ...

  #1 (permalink)  
Antiguo 11/11/2009, 16:27
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Necesito ayuda para optimizar mi servidor

Buenos días amigos.

A pesar de mis limitados conocimientos en manejo de servidores, hasta hace poco tomé la decisión de contratar un servidor dedicado no administrado. Mala o buena idea, ya estoy "embarcado" y lo que me queda es aprender. Ahora más que nunca, ya que luego de un mes sin problemas, hoy tuve dos caídas del server, aparentemente por muchas consultas mysql.

Acudo a este foro porque sé que aquí hay muchos expertos que pueden darme alguna ayuda.

Aunque ahora el servidor está estable, lo que me preocupa es el alto consumo de RAM, el cual anda cerca del 70%. El server load ahora mismo está en 1.81.

Tiene casi la misma cantidad de usuarios online como siempre, es decir cerca a las 600. Tengo tres blogs en el servidor, que en conjunto hacen cerca de 60 mil visitas diarias. Como vuelo a repetir, en un mes no hubo problema alguno, pero las caídas de hoy me causan preocupación.

La máquina es un Intel Core Quad CPU Q9300 @ 2.50GHz con 8GB de RAM.

Esto contiene my.cnf

Cita:
[mysqld]
set-variable = max_connections=1100
set-variable = wait_timeout=15
query_cache_type=1
query_cache_size=100M
max_connect_errors=100
safe-show-database
Supongo que, para encontrar el motivo de las caídas y el alto consumo de RAM necesitarán algún dato adicional, que se los proporcionaré cuando me los pidan.

Sería genial si podrían indicarme la configuración más acertada posible para my.cnf y httpd.conf, con lo cual supongo debe mejorar la carga.

Muchas gracias anticipadas a todos los que quieran brindarme ayuda!
  #2 (permalink)  
Antiguo 11/11/2009, 23:16
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Saludos,

Alto consumo de RAM es normal en servidores linux

Puedes postear la salida de comando top en hora pico de visitantes?

Que versión y tipo de apache usas? 2? prefork o worker?

Primera sugerencia si aún no lo tienes, instala un cache PHP, algo como eaccelerator dará resultados inmediatamente, si los blogs son wordpress asegúrate de instalar y configurar el plugin de cache (no recuerdo el nombre exacto) estos dos serán relativamente fáciles de instalar para novatos.

No existe una receta mágica para todos los casos, sugiero que comiences por los básico (los tips que he sugerido y avances de acuerdo a los resultados y tu capacidad).
  #3 (permalink)  
Antiguo 12/11/2009, 03:46
Avatar de WebTech
Hosting Moderator
 
Fecha de Ingreso: octubre-2005
Ubicación: East Coast
Mensajes: 5.399
Antigüedad: 19 años, 2 meses
Puntos: 162
Respuesta: Necesito ayuda para optimizar mi servidor

Cita:
y configurar el plugin de cache (no recuerdo el nombre exacto) estos dos serán relativamente fáciles de instalar para novatos.
WP-Cache y WP-Super Cache

Saludos,
__________________
Infranetworking.com - Expertos en Hosting Multidominio, Cloud Hosting, Servidores Dedicados y Administración de Servidores Linux
  #4 (permalink)  
Antiguo 12/11/2009, 07:13
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Datacenter1: uso Apache/2.0.63 (Unix) prefork. En los blogs tengo instalado Wp-cache y 1blogcacher, que hacen su trabajo. Pero aún así, en horas pico el consumo de RAM sube a 75% (de los 8gb que dispone), lo cual me parece excesivo. No quiero pensar lo que pasará cuando haya avalanchas, que siempre los hay, ya que en esos casos recibo 1000 usuarios concurrentes. Aunque ahora mi server está aparentemente estable, prefiero prevenir antes que lamentar.

Conozco blogs con el triple de visitas que los míos, y con un server con casi las mismas características, pero sin problemas.

Pondré los resultados del top en el pico de visitas de hoy. ¿Conoces algún manual para instalar eaccelerator?

En WHM veo que Swap Used está siempre en cero. ¿Es normal?

Gracias por la ayuda.
  #5 (permalink)  
Antiguo 12/11/2009, 07:23
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

El uso de memoria es generalmente normal, esto debido a que Linux utiliza una gran cantidad de memoria para cache y buffers, mientras que no haya swap o el swap sea muy pequeño todo estará bien.

Concuerdo contigo, tienes un potente servidor que debe manejar la carga correctamente, si utilizas cPanel o algún otro panel probablemente ya incluye o tiene listo para instalar algún tipo de cache.

Si quieres compilarlo tu mismo (no es nada difícil) las instrucciones están aquí http://eaccelerator.net/wiki/InstallFromSource

Otro comando que deberías postear es la salida de iostat si el comando aparece como no instalado, puedes instalar el paquete

sysstat yum sysstat install # suponiendo que estes en Centos/fedora/RedHat
  #6 (permalink)  
Antiguo 12/11/2009, 08:39
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Datacenter1,

Uso WHM/Cpanel. ¿Cómo saber si tengo instalado algún acelerador?. En todo caso, hoy en la noche trataré de instalar eaccelerator. Gracias por el manual.

Aquí está el resultado de iostat, aunque ahora mismo no hay mucho tráfico:

Cita:
avg-cpu: %user %nice %system %iowait %steal %idle
18.71 0.12 1.59 0.27 0.00 79.31

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 14.42 193.96 502.77 29705062 76998154
sda1 0.00 0.01 0.00 2252 10
sda2 14.42 193.95 502.77 29702530 76998144
dm-0 67.34 193.94 502.77 29701570 76998008
dm-1 0.00 0.00 0.00 576 136
  #7 (permalink)  
Antiguo 12/11/2009, 08:46
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Es sencillo ve a EasyApache y recompilalo, desde las opciones avanzadas puedes seleccionar el soporte para eaccelerator y compila nuevamente Apache

Si lo único que tiene el servidor son cuentas tuyas y no de terceros te sugiero compilar apache como fastcgi, ofrece mucho mayor que suphp, también asegurate de escoger apache 2.2 como worker, una vez que realices esto con gusto te ayudaré un poco con MySQL

El resultado de ioswait se se saludable y no se ven cuellos de botella causado por discos lentos o exceso de escrituras a disco (causa más común de embotellamiento)
  #8 (permalink)  
Antiguo 12/11/2009, 10:41
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

En EasyApache veo las siguientes opciones:

img20.imageshack.us/img20/1076/apachew.jpg (por favor, copia y pega en tu navegador, ya que aún no puedo adjuntar imágenes).

¿Qué tengo que hacer para compilarlo?. Sí, lo sé, quizás es una pregunta tonta, pero recuerden que yo recién comienzo con los dedicados, pero créeme, estoy aprendiendo mucho.
  #9 (permalink)  
Antiguo 12/11/2009, 11:36
 
Fecha de Ingreso: octubre-2003
Ubicación: Barcelona
Mensajes: 326
Antigüedad: 21 años, 1 mes
Puntos: 0
Respuesta: Necesito ayuda para optimizar mi servidor

¿El servidor lo tienes con una versión de Linux de 64bit o con un kernel PAE imagino no?
__________________
Servidores dedicados con reinicio remoto y KVMoIP: http://www.grito.net/servidores-dedicados/
Alojamiento web profesional: http://www.grito.net/alojamiento-web/
  #10 (permalink)  
Antiguo 12/11/2009, 13:52
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Lo que sé es que en el server corre CENTOS 5.4 i686. Eso dice en WHM. Lo de kernel PAE, la verdad no sé :(
  #11 (permalink)  
Antiguo 12/11/2009, 16:06
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Quizás esto pueda ayudar en algo. Este es el resultado de free -mt en "hora punta" de hoy (casi 600 online):

total used free shared buffers cached
Mem: 8106 7184 922 0 125 1932
-/+ buffers/cache: 5125 2980
Swap: 5279 0 5279
Total: 13386 7184 6202
  #12 (permalink)  
Antiguo 13/11/2009, 07:55
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Saludos

  1. Solo debes darle click en "Start Customization based on profile"
  2. Selecciona Apache 2.2 y click en "Next Step"
  3. Selecciona PHP 5 y click en "Next Step"
  4. Selecciona la última versión de PHP, en este momento es 5.2.11 y click en Next Step
  5. Baja hasta el final de la lista y click en "Exhaustive Option List"
  6. Escoge las opciones que requieras, por seguridad y rendimiento recomiendo:
    1. Mod FCGID
    2. MPM Worker
    3. EAccelerator for PHP
    4. Suhosin for PHP
    5. Mod_Security
    6. Fastcgi (en la sección PHP)
    7. Safe PHP CGI
    8. Safe Mode (no me agrada pero es da buena seguridad con php fastcgi)
    9. Incluye cualquier módulo que tu sistemas requieran pero no incluyas nada que de antemano sepas que no vas a usar
  7. Click en "Save and Build"
  8. Luego de terminar de compilar asegurate de que el handler de php sea fastcgi
El proceso debe tomar unos 15 minutos y es bastante seguro, cualquier duda puedes postearla por aca.
  #13 (permalink)  
Antiguo 13/11/2009, 08:21
(Desactivado)
 
Fecha de Ingreso: septiembre-2009
Ubicación: /home/jmtwl
Mensajes: 561
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Necesito ayuda para optimizar mi servidor

EasyApache es una de las tantas joyas que tiene cPanel...
  #14 (permalink)  
Antiguo 13/11/2009, 10:02
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Datacenter1, gracias por la detallada explicación.

Antes de proceder quería preguntarte si habrá algún corte en el servicio mientras hago eso.

Saludos y gracias
  #15 (permalink)  
Antiguo 13/11/2009, 10:16
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Será uno muy breve por lo que te recomiendo hacerlo en horas de poco tráfico

En caso de que algo falle el mismo easyapache lo detectará y usará la versión anterior para remediar el problema, por lo tanto es un procedimiento bastante seguro (aunque con servidores dedicados nunca hay nada seguro)

Esto de dará un servidor web más robusto, confiable y rápido pero aún hay mucho más que se puede hacer, considera esto solo como el 10% de las mejoras posibles, pero es un muy buen arranque.

Suerte y déjanos saber que tal te fue
  #16 (permalink)  
Antiguo 13/11/2009, 11:26
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Datacenter1, el proceso fue un éxito total :)

Lo hice tal como lo indicaste, paso a paso. Demoró casi 10 minutos, y no hubo ningún corte, o quizás duró algunos segundos que ni lo noté.

Al instante pude apreciar el notable descenso del consumo de RAM. Es realmente sorprendente que ahora sólo consuma 8% con casi 500 online. Segundos antes de hacer esta operación estuvo en 50%, y en horas pico llegaba hasta 75%

Dijiste que podrías ayudarme también con MySQL, lo cual sería genial, ya que quiero dejar el servidor lo más optimizado posible.

Es agradable encontrar personas que desean ayudar a los que menos saben.

Muchas gracias nuevamente!

Última edición por kepardox; 13/11/2009 a las 11:32
  #17 (permalink)  
Antiguo 13/11/2009, 17:04
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Me alegra que tu primera recompilación haya sido exitosa, sin embargo prefiero que pases algunos días con esa configuración antes de seguir, la razón es simple, si a corto plazo se presentará un problema, será fácil saber que cambio lo ha originado, en cambio si hacemos todos los cambios a la vez y luego sucede algo será mucho más dificil, mi sugerencia es un paso a la vez y solo cuando estás seguro de que ha sido realmente exitoso y no ha ocasionado ningún problema entonces sigue.

Dicho esto, para MySQL nos apoyaremos en par de scripts que nos ayudará a determinar los mejores ajustes para tu MySQL

ejecuta:
Código:
cd /
wget http://mysqltuner.pl/mysqltuner.pl
chmod 700 mysqltuner.pl
./mysqltuner.pl
y postea los resultados

Con esto ya tendremos suficiente información para optimizar MySQL y también te daré un par de tips extra para apache.

luego ejecuta:

Código:
cd /
wget http://www.day32.com/MySQL/tuning-primer.sh
chmod 700 tuning-primer.sh
./tuning-primer.sh
y postea los resultados
  #18 (permalink)  
Antiguo 16/11/2009, 11:39
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

El servidor está funcionando muy bien, el consumo de RAM disminuyó muchísimo, y el server load se mantiene estable.


A continuación los resultados de lo que me mysqltuner:

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.0.81-community
[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 51M (Tables: 66)
[--] Data in InnoDB tables: 112K (Tables: 7)
[!!] Total fragmented tables: 20

-------- Performance Metrics -------------------------------------------------
[--] Up for: 5d 21h 21m 17s (31M q [62.874 qps], 1M conn, TX: 1B, RX: 3B)
[--] Reads / Writes: 89% / 11%
[--] Total buffers: 134.0M global + 2.7M per thread (700 max threads)
[OK] Maximum possible memory usage: 2.0G (24% of installed RAM)
[OK] Slow queries: 0% (0/31M)
[OK] Highest usage of available connections: 4% (31/700)
[OK] Key buffer size / total MyISAM indexes: 8.0M/12.0M
[OK] Key buffer hit rate: 99.9% (3B cached / 3M reads)
[OK] Query cache efficiency: 81.9% (22M cached / 27M selects)
[!!] Query cache prunes per day: 13018
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 1M sorts)
[!!] Temporary tables created on disk: 47% (727K on disk / 1M total)
[!!] Thread cache is disabled
[OK] Table cache hit rate: 20% (64 open / 308 opened)
[OK] Open file limit used: 3% (106/3K)
[OK] Table locks acquired immediately: 99% (5M immediate / 5M locks)
[OK] InnoDB data size / buffer pool: 112.0K/8.0M

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
Enable the slow query log to troubleshoot bad queries
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries without LIMIT clauses
Set thread_cache_size to 4 as a starting value
Variables to adjust:
query_cache_size (> 100M)
tmp_table_size (> 32M)
max_heap_table_size (> 16M)
thread_cache_size (start at 4)
  #19 (permalink)  
Antiguo 16/11/2009, 11:49
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Resultado de tuning-primer.sh

100%[======================================>] 48,399 --.-K/s in 0.06s

2009-11-16 11:46:12 (800 KB/s) - `tuning-primer.sh' saved [48399/48399]

root@host [/]# chmod 700 tuning-primer.sh
root@host [/]# ./tuning-primer.sh

-- MYSQL PERFORMANCE TUNING PRIMER --
- By: Matthew Montgomery -

MySQL Version 5.0.81-community i686

Uptime = 5 days 21 hrs 33 min 58 sec
Avg. qps = 62
Total Questions = 32085008
Threads Connected = 2

Server has been running for over 48hrs.
It should be safe to follow these recommendations

SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 10 sec.
You have 0 out of 32085033 that take longer than 10 sec. to complete
Your long_query_time seems to be fine

BINARY UPDATE LOG
The binary update log is NOT enabled.
You will not be able to do point in time recovery

WORKER THREADS
Current thread_cache_size = 0
Current threads_cached = 0
Current threads_per_sec = 5
Historic threads_per_sec = 2
Threads created per/sec are overrunning threads cached
You should raise thread_cache_size

MAX CONNECTIONS
Current max_connections = 700
Current threads_connected = 3
Historic max_used_connections = 31
The number of used connections is 4% of the configured maximum.
You are using less than 10% of your configured max_connections.
Lowering max_connections could help to avoid an over-allocation of memory
See "MEMORY USAGE" section to make sure you are not over-allocating

MEMORY USAGE
Max Memory Ever Allocated : 201 M
Configured Max Per-thread Buffers : 1.83 G
Configured Max Global Buffers : 117 M
Configured Max Memory Limit : 1.95 G
Physical Memory : 7.91 G
Max memory limit seem to be within acceptable norms

KEY BUFFER
Current MyISAM index space = 12 M
Current key_buffer_size = 7 M
Key cache miss rate is 1 : 869
Key buffer free ratio = 41 %
Your key_buffer_size seems to be too high.
Perhaps you can use these resources elsewhere

QUERY CACHE
Query cache is enabled
Current query_cache_size = 100 M
Current query_cache_used = 47 M
Current query_cache_limit = 1 M
Current Query cache Memory fill ratio = 47.76 %
Current query_cache_min_res_unit = 4 K
MySQL won't cache query results that are larger than query_cache_limit in size

SORT OPERATIONS
Current sort_buffer_size = 2 M
Current read_rnd_buffer_size = 256 K
Sort buffer seems to be fine

JOINS
Current join_buffer_size = 132.00 K
You have had 0 queries where a join could not use an index properly
Your joins seem to be using indexes properly

OPEN FILES LIMIT
Current open_files_limit = 3500 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_cache value = 64 tables
You have a total of 90 tables
You have 64 open tables.
Current table_cache hit rate is 10%, while 100% of your table cache is in use
You should probably increase your table_cache

TEMP TABLES
Current max_heap_table_size = 16 M
Current tmp_table_size = 32 M
Of 803137 temp tables, 47% were created on disk
Effective in-memory tmp_table_size is limited to max_heap_table_size.
Perhaps you should increase your tmp_table_size and/or max_heap_table_size
to reduce the number of disk-based temporary tables
Note! BLOB and TEXT columns are not allow in memory tables.
If you are using these columns raising these values might not impact your
ratio of on disk temp tables.

TABLE SCANS
Current read_buffer_size = 128 K
Current table scan ratio = 413 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 1 : 1373
You may benefit from selective use of InnoDB.
If you have long running SELECT's against MyISAM tables and perform
frequent updates consider setting 'low_priority_updates=1'
If you have a high concurrency of inserts on Dynamic row-length tables
consider setting 'concurrent_insert=2'.

Quité las urls del resultado, ya que aun no puedo ponerlos en el post.
  #20 (permalink)  
Antiguo 16/11/2009, 12:19
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

El primer problema que veo a simple vista es que estás usando una versión de 32 bits de tu sistema operativo, esto no tiene mucho sentido debido a que un sistema 32 bits no podrá usar toda la memoria disponible en el servidor o para hacerlo requiere de un kernel PAE (no estoy seguro pero creo que por defecto Centos no lo usa)

Por favor confirma si están usando 32 bits, si es así mi consejo es que contactes con tu proveedor y realices un upgrade, esto puede ser algo problemático ya que no hay manera (que yo conozca) de pasar de 32 a 64 bits fácilmente, el método usual es reinstalar completamente el sistema operativo, otra opción es que instalales el kernel PAE que permite a sistemas 32 bits utilizar toda la memoria instalada, es probable que incluso ya esté instalado

Puedes ejecutar este comando y postear la salida: uname -a
  #21 (permalink)  
Antiguo 16/11/2009, 13:16
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Uname -a tira esto:

Linux "xxxxxxxxx.com" 2.6.18-164.2.1.el5.plusPAE #1 SMP Fri Oct 9 13:15:48 EDT 2009 i686 i686 i386 GNU/Linux
  #22 (permalink)  
Antiguo 17/11/2009, 21:09
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Ok es una buena noticia, a pesar de ser 32 bits tiene el kernel correcto para manejar la memoria extra.

Veamos un poco que podemos hacer con MySQL

Estás seguro que el my.cnf que colocaste más arriba es el mismo que esta ahora? los valores están diferentes por favor colocal tu actual my.cnf

cat /etc/my.cnf

Aprovecha para hacer un backup:

cp /etc/my.cnf /etc/my.cnf.bak
  #23 (permalink)  
Antiguo 17/11/2009, 21:20
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 4 meses
Puntos: 150
Respuesta: Necesito ayuda para optimizar mi servidor

kepardox, si no le das karma a datacenter1 voy a tu casa y te corto los webos xD

En serio, estoy por guardarme este post por si en pocos meses doy el paso de contratar un dedicado.

Por cierto, respeto al Mysql si podria ayudarte algo respecto a tener los indices correctos en tu base de datos, analizar que consultas "petan" la carga de tu server y evitarlas con un buen indice o cacheando con algun script. Me esperare al comandante datacenter1 que te de el visto bueno jeej
  #24 (permalink)  
Antiguo 17/11/2009, 23:25
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

@Datacenter1, gracias por la gran ayuda.

Esto tengo en my.cnf:

[mysqld]
set-variable = max_connections=1100
set-variable = wait_timeout=15
query_cache_type=1
query_cache_size=100M
max_connect_errors=100
safe-show-database

La db pesa más de 60mb.

------------

@Vun: no sabía esto del karma. Gracias por avisar. Si pudiera darle 1000 de karma a Datacenter1, lo haría :)
  #25 (permalink)  
Antiguo 18/11/2009, 07:37
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Prueba con este, recuerda hacer el backup del archivo original y reiniciar mysql (puedes hacerlo desde whm)

Código:
[mysqld]
local-infile
safe-show-database
low-priority-updates
symbolic-links
log-error=/var/log/mysql/error.log
log-slow-queries=/var/log/mysql/slowquery.log
long_query_time=5
connect_timeout=10
interactive_timeout=25
max_connections=500
max_connect_errors=20
max_allowed_packet=8M
key_buffer=32M
myisam_sort_buffer_size=64M
join_buffer=4M
record_buffer=8M
sort_buffer=24M
table_cache=256
thread_cache_size=64
wait_timeout=1800
tmp_table_size=64M
query_cache_size=64M
query_cache_limit=16M
concurrent_insert=2
open_files_limit=4096
thread_concurrency=4
Nota que he bajado las conexiones max a 500 al parecer tu base de datos no recibe una gran cantidad de conexiones simultáneas y es más bien una base de datos pequeña, estos ajustes deben ayudar y darte algún margen para crecer

Asegurate de que estos archivos existan antes de realizar los cambios
log-error=/var/log/mysql/error.log
log-slow-queries=/var/log/mysql/slowquery.log

Si no existen puedes crearlos con:

mkdir /var/log/mysql # rs normal un error si ya existe
touch /var/log/mysql/error.log
touch /var/log/mysql/slowquery.log
cd /var/log/mysql
chown mysql:root slowquery.log error.log
ls -la #para confirmar que existen y tienen el propietario correcto

La sugerencia de Vun es muy buena (la de las consultas pesadas no la de cortarte nada) por eso le he puesto un log a las consultas que toman más de 5 segundos que es /var/log/mysql/slowquery.log y debes hacerle mantenimiento a las bases de datos, la forma más fácil es usar phpmyadmin

Mi consejo es que realices los cambios, dejes correr el sistema 48 horas y luego vuelvas a correr los scripts que recomendé para mysql para analizar un poco el rendimiento.

Existe mucho más que se puede hacer, sin embargo lo hecho hasta ahora ayudará y como has visto no es nada tan difícil que un usuario novato con un poco de asesoría no pueda hacer.

NOTA: Los ajustes aquí mostrados son específicos para el servidor de kepardox y su patrón de uso. NO FUNCIONARÁN BIEN EN OTROS SERVIDORES O CON DIFERENTES CONDICIONES DE USO.

Cualquier otra duda, avísame
  #26 (permalink)  
Antiguo 18/11/2009, 07:38
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Cita:
Iniciado por Vun Ver Mensaje
kepardox, si no le das karma a datacenter1 voy a tu casa y te corto los webos xD

En serio, estoy por guardarme este post por si en pocos meses doy el paso de contratar un dedicado.

Por cierto, respeto al Mysql si podria ayudarte algo respecto a tener los indices correctos en tu base de datos, analizar que consultas "petan" la carga de tu server y evitarlas con un buen indice o cacheando con algun script. Me esperare al comandante datacenter1 que te de el visto bueno jeej
JAJAJAJA no le cortes nada GRACIAS

Buena sugerencia, he incluido algo de lo que has dicho en la configuración recomendada
  #27 (permalink)  
Antiguo 18/11/2009, 10:59
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

@Datacenter1.

Realicé todos los pasos sin problema alguno. Entonces veremos cómo funciona durante 48 horas. Muchas gracias nuevamente!

Cita:
Iniciado por Datacenter1 Ver Mensaje
... La sugerencia de Vun es muy buena (la de las consultas pesadas no la de cortarte nada) ...
:D jajajajaja
  #28 (permalink)  
Antiguo 20/11/2009, 13:39
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Datacenter1:

Ya pasaron más de 48 horas desde los últimos toques. A continuación traigo los resultados.

./mysqltuner.pl

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.0.81-community-log
[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 51M (Tables: 66)
[--] Data in InnoDB tables: 112K (Tables: 7)
[!!] Total fragmented tables: 18

-------- Performance Metrics -------------------------------------------------
[--] Up for: 2d 2h 44m 3s (10M q [59.243 qps], 468K conn, TX: 1B, RX: 1B)
[--] Reads / Writes: 88% / 12%
[--] Total buffers: 122.0M global + 36.4M per thread (500 max threads)
[!!] Allocating > 2GB RAM on 32-bit systems can cause system instability
[!!] Maximum possible memory usage: 17.9G (226% of installed RAM)
[OK] Slow queries: 0% (2/10M)
[OK] Highest usage of available connections: 4% (23/500)
[OK] Key buffer size / total MyISAM indexes: 32.0M/14.2M
[OK] Key buffer hit rate: 99.9% (909M cached / 1M reads)
[OK] Query cache efficiency: 82.2% (7M cached / 9M selects)
[!!] Query cache prunes per day: 30181
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 387K sorts)
[!!] Temporary tables created on disk: 49% (213K on disk / 429K total)
[OK] Thread cache hit rate: 99% (23 created / 468K connections)
[OK] Table cache hit rate: 34% (88 open / 256 opened)
[OK] Open file limit used: 3% (141/4K)
[OK] Table locks acquired immediately: 99% (1M immediate / 1M locks)
[OK] InnoDB data size / buffer pool: 112.0K/8.0M

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries without LIMIT clauses
Variables to adjust:
*** MySQL's maximum memory usage is dangerously high ***
*** Add RAM before increasing MySQL buffer variables ***
query_cache_size (> 64M)
tmp_table_size (> 64M)
max_heap_table_size (> 16M)
  #29 (permalink)  
Antiguo 20/11/2009, 13:45
 
Fecha de Ingreso: junio-2005
Mensajes: 36
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Necesito ayuda para optimizar mi servidor

Resultados de tuning-primer.sh

-- MYSQL PERFORMANCE TUNING PRIMER --
- By: Matthew Montgomery -

MySQL Version 5.0.81-community-log i686

Uptime = 2 days 2 hrs 48 min 11 sec
Avg. qps = 59
Total Questions = 10839249
Threads Connected = 2

Server has been running for over 48hrs.
It should be safe to follow these recommendations

To find out more information on how each of these

SLOW QUERIES
The slow query log is enabled.
Current long_query_time = 5 sec.
You have 2 out of 10839276 that take longer than 5 sec. to complete
Your long_query_time seems to be fine

BINARY UPDATE LOG
The binary update log is NOT enabled.
You will not be able to do point in time recovery


WORKER THREADS
Current thread_cache_size = 16384
Current threads_cached = 21
Current threads_per_sec = 0
Historic threads_per_sec = 0
Your thread_cache_size is fine

MAX CONNECTIONS
Current max_connections = 500
Current threads_connected = 1
Historic max_used_connections = 23
The number of used connections is 4% of the configured maximum.
You are using less than 10% of your configured max_connections.
Lowering max_connections could help to avoid an over-allocation of memory
See "MEMORY USAGE" section to make sure you are not over-allocating

MEMORY USAGE
Max Memory Ever Allocated : 944 M
Configured Max Per-thread Buffers : 17.79 G
Configured Max Global Buffers : 106 M
Configured Max Memory Limit : 17.89 G
Physical Memory : 7.91 G

Max memory limit exceeds 90% of physical memory

KEY BUFFER
Current MyISAM index space = 14 M
Current key_buffer_size = 32 M
Key cache miss rate is 1 : 885
Key buffer free ratio = 48 %
Your key_buffer_size seems to be too high.
Perhaps you can use these resources elsewhere

QUERY CACHE
Query cache is enabled
Current query_cache_size = 64 M
Current query_cache_used = 41 M
Current query_cache_limit = 16 M
Current Query cache Memory fill ratio = 65.13 %
Current query_cache_min_res_unit = 4 K
MySQL won't cache query results that are larger than query_cache_limit in size

SORT OPERATIONS
Current sort_buffer_size = 24 M
Current read_rnd_buffer_size = 256 K
Sort buffer seems to be fine

JOINS
Current join_buffer_size = 4.00 M
You have had 0 queries where a join could not use an index properly
Your joins seem to be using indexes properly
join_buffer_size >= 4 M
This is not advised

OPEN FILES LIMIT
Current open_files_limit = 4096 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_cache value = 256 tables
You have a total of 90 tables
You have 126 open tables.
The table_cache value seems to be fine

TEMP TABLES
Current max_heap_table_size = 16 M
Current tmp_table_size = 64 M
Of 216159 temp tables, 49% were created on disk
Effective in-memory tmp_table_size is limited to max_heap_table_size.
Perhaps you should increase your tmp_table_size and/or max_heap_table_size
to reduce the number of disk-based temporary tables
Note! BLOB and TEXT columns are not allow in memory tables.
If you are using these columns raising these values might not impact your
ratio of on disk temp tables.

TABLE SCANS
Current read_buffer_size = 8 M
Current table scan ratio = 773 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 1 : 1167
You may benefit from selective use of InnoDB.

Espero que todo esté bien. Me da miedo :(
  #30 (permalink)  
Antiguo 20/11/2009, 14:25
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 19 años, 4 meses
Puntos: 144
Respuesta: Necesito ayuda para optimizar mi servidor

Ok este debe funcionar mejor para tu entorno, aparte del exceso de memoria que de antemano lo esperabamos y un poco de excesivas tablas temporales en disco todos los demás valores se ven bien.

Aquí tienes unas modificaciones que mejorarán el rendimiento:

Código:
[mysqld]
local-infile
safe-show-database
low-priority-updates
symbolic-links
log-error=/var/log/mysql/error.log
log-slow-queries=/var/log/mysql/slowquery.log
long_query_time=5
connect_timeout=10
interactive_timeout=25
max_connections=100
max_connect_errors=20
max_allowed_packet=8M
key_buffer=16M
myisam_sort_buffer_size=64M
join_buffer=1M
query_cache_type=1
record_buffer=8M
sort_buffer=24M
table_cache=256
thread_cache_size=64
wait_timeout=1800
tmp_table_size=128M
max_heap_table_size=32M
query_cache_size=128M
query_cache_limit=32M
concurrent_insert=2
open_files_limit=4096
thread_concurrency=4
En pocas palabras le he quitado donde le sobraba y le colocado más donde le faltaba.

Otro detalle, tienes un par de consultas que demoran más de 5 segundos, observa cuales son en el log y ve si es posible hacer algo al respecto, tampoco te olvides del mantenimiento de las tablas, yo uso un par de scripts que automatizan el mantenimiento de todas las tablas y bases de datos de cada servidor, apenas tenga algo de tiempo libre los colocaré
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 21:13.