Optimizar un servidor
Lo primero es editar el my.cnf
Conectados como root en la máquina (los paths aqui indicados son los míos, verificar los vuestros.)
abrimos el archivo con vuestro editor favorito.
view source
print?
1 | # vi /etc/my.cnf |
Añadimos las siguientes lineas dentro de la configuraicon de mysqld
view source
print?
1 | [mysqld]|
2 | log-slow-queries=/var/log/mysql-slow-queries.log |
3 | long_query_time = 1 |
4 | log-queries-not-using-indexes |
log-slow-queries, establece el lugar físico del archivo de log
long_query_time, establece a partir de que cantidad de segundos se considera lenta una query
log-queries-not-using-indexes, también logueará las queries lentas que no utilizen índices
Creamos elfichero mysq-slow-queries y ajustamos permisos
view source
print?
1 | # touch /var/log/mysql-slow-queries.log |
2 | # chown mysql.root /var/log/mysql-slow-queries.log |
Reiniciamos el servidor MySQL
view source
print?
1 | # /etc/init.d/mysqld restart |
Configurando y Optimizando un servidor. my.cnf
Tengo un servidor con Linux CentOs, es un servidor dedicado y que me lo dieron conla configuración por defecto.
Lo que venia notando es que al cambiar la web de un servidor a otro, la web iba muy muy lenta.
Me preguntaba porque si he escrito toda la web desde 0 con Cakephp Framework, los modelos y las vistas están cacheados y se ha cambiado a un nuevo servidor mucho mas potente
* Pentium E2200 Dual Core 2,2 GHz (2 cores, 1 MB caché, 800 FSB)
* 2 GB SDRAM DDR2
*2 x 250 GB SATA (7.200rpm)
* 2.000 GB de transferencia al mes
* SAS 6iR internal RAID controler
* 100MB de ancho de banda
porque me iba tan mal la web?
El tema es la configuracion por defecto de los servidores no es la optima para albergar una web, un servidor puede estar configurado para ser un servidor web, un servidor de correo, un servidor de juegos o simplemente se puede usaresa máquina como un ordenador normal.
Para ello hay que configurar varios aspectos, inicialmente: El apache, y el MySQL.
Lo primero que hice es optimizar el MySQL, y con esto el rendimiento del servidor mejoró notablemente.
Conectados como root en la máquina (los paths aqui indicados son los míos, verificar los vuestros.)
Lo primero un backup
cp /etc/my.cnf/etc/my.cnf.backup
abrimos el archivo con vuestro editor favorito.
vi /etc/my.cnf
por defecto en mi my.cnf sólo venia lo siguiente:
[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format forcompatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
He añadido una serie de parámetros nuevos
[mysqld]
set-variable=local-infile=0datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# nueva configuracion
#este parámetro es fundamental, hay que registrar las consultas lentas, todas las que duren mas de 2 segundos.
# asi se puede ver las consultas que se hacen y que tienen que ser optimizadas
log-slow-queries=/var/log/mysql-slow-queries.log
long_query_time = 2
log-queries-not-using-indexes
query_cache_limit=1M...
Regístrate para leer el documento completo.