En algunos casos deseamos solo accesar a una URL en particular pero no descargar información, siendo muy utilizado cuando deseas colocar tareas programadas con cron
El siguiente comando solo visualiza, pero no descarga
# wget -O- "http://www.google.com"
aunque también se puede utilizar lynx, curl, entre otros; este solo es otra forma más de poderlo hacer.
jueves, 31 de mayo de 2012
Instalando cpanel en CentOS
PASO 1
Instalamos CentOS en versión mínima y configuramos nuestra red.
En el sitio de Cpanel hacen las siguientes recomendaciones sobre como particionar.
Partition | Size | Partition Contents |
---|---|---|
/ | 40 GB recommended (20 GB minimum) | Base operating system |
/boot | 250 MB | Kernels, boot loader configuration file |
/usr | 16 GB recommended (8 GB minimum) | cPanel, Apache, Apache logs, and most applications |
/var | 16 GB recommended (8 GB minimum) Note: Allotting more disk space provides you with more database storage. | MySQL databases, cPanel configuration, system logs, and mail queue |
/home | Grow to fill disk Note: Allotting more disk space allows you to host more accounts. | cPanel user accounts |
/tmp | 2 GB Note: We recommend creating a /tmp partition. You can use securetmp regardless of this setting. | Temporary files |
swap | Twice the server's RAM | The amount of RAM overflow that the system can write to the hard disk. |
Pero en lo personal no estoy de acuerdo ya que /var y /usr suelen saturarse con el paso del tiempo debido a actualizaciones o software adicional que vamos necesitando instalar.
Para evitar problemas en lo personal prefiero:
/boot
/swap
/
PASO 2
Ejecutar:
# cd /home
# wget -N http://httpupdate.cpanel.net/latest — Fetches the latest installation files from cPanel's servers.
# chmod 755 latest
# ./latest
Pasara por un proceso alrededor de 45min dependiendo del hardware, así que no se aburran.
Una vez terminado el proceso elimina el archivo latest y entra a https://TU-IP:2087
el usuario y contraseña serán los mismos que root.
Instalando Plesk 10 en CentOS
El proceso es muy sencillo
Para conocer la contraseña que se nos asigno ejecutamos:
# /usr/local/psa/bin/admin --show-password
aVSe8EUmRoQ4
Ahora ya podemos entrar a plesk en
https://MI-IP:8443
usuario admin
pass aVSe8EUmRoQ4
Ahora el panel nos guiara en los últimos pasos.
Esto mismo sirve para otras distribuciones soportadas por Plesk, así como la instalación en VPS, XEN, vmware, virtuozzo, Virtualbox, etc....
- Instalamos CentOS con lo mínimo (sin apache/php/mysql/email)
- Configuramos la red
- ejecutamos wget -O - http://autoinstall.plesk.com/one-click-installer | sh
Para conocer la contraseña que se nos asigno ejecutamos:
# /usr/local/psa/bin/admin --show-password
aVSe8EUmRoQ4
Ahora ya podemos entrar a plesk en
https://MI-IP:8443
usuario admin
pass aVSe8EUmRoQ4
Ahora el panel nos guiara en los últimos pasos.
Esto mismo sirve para otras distribuciones soportadas por Plesk, así como la instalación en VPS, XEN, vmware, virtuozzo, Virtualbox, etc....
viernes, 25 de mayo de 2012
Servidores con carga alta, como solucionarlo
Como se lee la carga?
un modo es con el comando
# w
y comúnmente es expresada así.
load average: 0,39, 0,43, 0,35
un modo es con el comando
# w
y comúnmente es expresada así.
load average: 0,39, 0,43, 0,35
Esto es es la carga promedio a 1, 5 y 15 minutos.
en palabras simples ¿Que significa la Carga?
Significa que en promedio N cantidad de procesos estuvieron ejecutándose a la vez.
Eso no significa que si tengo activo apache, mysql y sendmail a la vez tendré una carga de 3; aunque los 3 servicios se encuentran activos no significa que ande gastando recursos en procesar información.
Ahora en un escenario real, apache, mysql, sendmail se ejecutan cientos de veces durante un segundo, consumiendo siempre recursos distintos; en ocasiones estarán los 3 a la vez, en otras 2 a a la vez, etc. Esto nos da como resultado una carga de 1.4 (valor inventado para el ejemplo); Este valor quiere decir que en promedio se estaban ejecutando 1.4 programas a la vez.
en vida real:
top - 14:35:04 up 15 days, 22:10, 1 user, load average: 1.13, 1.16, 1.26
Tasks: 206 total, 2 running, 202 sleeping, 1 stopped, 1 zombie
Cpu(s): 3.5%us, 2.3%sy, 0.0%ni, 89.7%id, 4.2%wa, 0.0%hi, 0.2%si, 0.0%st
Como verán están 206 tareas ejecutándose, pero no todas a la vez; en 1 segundo posiblemente atendió a 500 enlaces web y 200 correos, pero en cada uno solo tardo milisegundos.
¿Cual es la carga ideal? es menor a 1; ya que en promedio solo se ejecuta un proceso a la vez obteniendo el 100% de los recursos del hardware.
¿Porque tengo problemas de carga?
1- Un proceso esta lento ocupando recursos del hardware por mucho tiempo.
2- Existen demasiados procesos y todos desean ser atendidos.
3- El hardware esta lento = El hardware llego a su limite de capacidad
3- El hardware esta lento = El hardware llego a su limite de capacidad
Primero detectemos que proceso es el que causa el problema, un modo sencillo es ejecutar en una ventana de terminal a top para estar monitoreando la carga y en otra terminal trabajando, lo que aremos es detener un servicio y contar hasta 10, si la carga bajo significativamente ahí esta nuestro problema; si no bajo iniciemos otra vez el servicio y vallamos al siguiente servicio.
Muy bien, ya detectamos el servicio afectado. ahora analicemos...
Si el iowait esta mayor a 10% de modo constante tenemos un problema hacia el hardware, casi siempre el disco duro y para solucionarlo existen las siguientes opciones:
1- Existen muchas solicitudes a ese servicio, por lo tanto ese servicio hace mucho trabajo en disco duro almecenando o consultando lo necesario, aqui algunos ejemplos de solucion
a ) apache : mod_qos (balancea y protege DDOS) + APC (cache para php) + revisar que tengamos suficiente ram.
b) mysql: revisar que tengamos bien optimizado el cache
c) sendmail (qmail, exim, etc) si es por correo saliente entonces ver la posibilidad de tener un smtp secundario en otro equipo aquí un ejemplo ; si el problema es que recibes mucho corro entrante y el disco duro anda ocupado almacenandolo lo ideal es colocar un antispam, pronto platicare sobre el ASSP.
2- Si lo anterior no dio resultado provemos si hay demaciados procesos a al vez, tal vez alguien nos ataca, o tenemos una pagina mal programada, o malas consultas a la base de datos
3- Y lo ultimo, ir por un mejor hardware aunque el procesador es algo importante, es mucho mas importante ver el almacenamiento ya que es nuestro punto más lento. Si es posible divide la carga de trabajo en distintos discos duros (web, correo, BD, etc) y notaras un gran incremento de velocidad, y lo ideal pero muchas veces fuera de presupuesto: 1 servidor por actividad
Seguimos en contacto.... gracias por leer y compartir experiencias
2- Si lo anterior no dio resultado provemos si hay demaciados procesos a al vez, tal vez alguien nos ataca, o tenemos una pagina mal programada, o malas consultas a la base de datos
3- Y lo ultimo, ir por un mejor hardware aunque el procesador es algo importante, es mucho mas importante ver el almacenamiento ya que es nuestro punto más lento. Si es posible divide la carga de trabajo en distintos discos duros (web, correo, BD, etc) y notaras un gran incremento de velocidad, y lo ideal pero muchas veces fuera de presupuesto: 1 servidor por actividad
Seguimos en contacto.... gracias por leer y compartir experiencias
miércoles, 23 de mayo de 2012
log de errores en plesk
Los mensajes de error en plesk se almacenan en:
/var/log/sw-cp-server/error_log
y para visualizar los cambios en tiempo real es:
tail -f /var/log/sw-cp-server/error_log
/var/log/sw-cp-server/error_log
y para visualizar los cambios en tiempo real es:
tail -f /var/log/sw-cp-server/error_log
martes, 22 de mayo de 2012
Plesk carga alta por iowait
Un problema común en Plesk es tener una carga alta debido a que iowait creció mucho.
La carga alta comúnmente es porque se esta efectuando un respaldo o actualizando las estadísticas, una solucion es cambiar su pioridad de IO y les presento un script
#Si la carga es >= 3 cambia la prioridad de ejecucion
loadavg=`uptime | awk '{print $8}'`
thisloadavg=`echo $loadavg|awk -F \. '{print $1}'`
if [ "$thisloadavg" -ge "3" ]; then
#baja prioridad de respaldos
ionice -c3 -p $(ps ax | grep "tar" | grep -v grep | awk '{ print $1 }')
#baja prioridad de procesos plesk
ionice -c3 -p $(ps ax | grep "plesk_agent_manager" | grep -v grep | awk '{ print $1 }')
ionice -c3 -p $(ps ax | grep "mailmng_domain_toggle" | grep -v grep | awk '{ print $1 }')
#baja prioridad de estadisticas
fi
coloquenlo en cron cada 1-3 minutos y listo
La carga alta comúnmente es porque se esta efectuando un respaldo o actualizando las estadísticas, una solucion es cambiar su pioridad de IO y les presento un script
#Si la carga es >= 3 cambia la prioridad de ejecucion
loadavg=`uptime | awk '{print $8}'`
thisloadavg=`echo $loadavg|awk -F \. '{print $1}'`
if [ "$thisloadavg" -ge "3" ]; then
#baja prioridad de respaldos
ionice -c3 -p $(ps ax | grep "tar" | grep -v grep | awk '{ print $1 }')
ionice -c3 -p $(ps ax | grep "gzip" | grep -v grep | awk '{ print $1 }')
ionice -c3 -p $(ps ax | grep "pmm" | grep -v grep | awk '{ print $1 }')
#baja prioridad de procesos plesk
ionice -c3 -p $(ps ax | grep "plesk_agent_manager" | grep -v grep | awk '{ print $1 }')
ionice -c3 -p $(ps ax | grep "mailmng_domain_toggle" | grep -v grep | awk '{ print $1 }')
#baja prioridad de estadisticas
ionice -c3 -p $(ps ax | grep "statistics" | grep -v grep | awk '{ print $1 }')
ionice -c3 -p $(ps ax | grep "awstats" | grep -v grep | awk '{ print $1 }')
ionice -c3 -p $(ps ax | grep "webalizer" | grep -v grep | awk '{ print $1 }')
ionice -c3 -p $(ps ax | grep "dumps-disc-usage" | grep -v grep | awk '{ print $1 }')
fi
coloquenlo en cron cada 1-3 minutos y listo
recuperar contraseña root en MySQL
Pasos para restablecer la contraseña de root
# service mysqld stop
//inicia mysql saltando los permisos de acceso
# mysqld_safe – -skip-grant-tables – -skip-networking &
//inicia session mysql
# mysql -u root
//ejecutas los siguientes comandos
mysql> use mysql
mysql> UPDATE user SET password=PASSWORD(‘contraseña’) WHERE user=’root’;
mysql>exit
// reinicias mysql
# service mysqld stop
# service mysqld start
y listo
lunes, 21 de mayo de 2012
mod_qos mejorando apache y previniendo ataques DDOS
mod_qos (quality of service) es un modulo para apache por medio del cual nos es posible controlar la cantidad de accesos y trafico para optimizar la calidad del servicio, y así evitar que un ataque, usuarios traviesos o simplemente un exceso de visitas nos hagan pasar mal el rato.
Instalación en CentOS (aunque similar en las demás distribuciones), antes que nada instalar las librerias necesarias ejecutando:
# yum install openssl-devel.x86_64
# yum install pcre-devel.x86_64
# yum install httpd-devel.x86_64
una vez instaladas descargar mod_qos desde http://sourceforge.net/projects/mod-qos/ o desde el sitio oficial http://opensource.adnovum.ch/mod_qos/ en donde encontraremos documentación adicional para personalizar la configuracion
y ejecutamos
# tar -xfz mod_qos-10.5.tar.gz
# mod_qos-10.5
# cd apache2
# apxs -i -c mod_qos.c
si no salen mensajes de error la ultima linea menciona que se genero el archivo
/usr/lib64/httpd/modules/mod_qos.so
ahora creamos un archivo en nuestra configuración de apache /etc/httpd/conf.d/qos.conf y agregamos:
LoadModule qos_module /usr/lib64/httpd/modules/mod_qos.so
## QoS Configuracion
<IfModule mod_qos.c>
#Manejo de conexiones hasta 20000 IPs diferentes
QS_ClientEntries 20000
# Se permite solamente 20 conexiones por IP
QS_SrvMaxConnPerIP 20
# Maximo numero de conexiones TCP activas 156
MaxClients 156
# Desactivar la directiva keep-alive cuando el 70% de las conexiones TCP estan ocupadas:
QS_SrvMaxConnClose 70%
# Minimo de velocidad para peticiones / respuestas (niega a los clientes lentos que bloquean el servidor ,
#Ejemplo; el script slowloris mantiene las peticiones HTTP :
QS_SrvMinDataRate 150 1200
# Limite de peticiones de encabezados y cuerpo (con cuidado, limita las cargas y las peticiones POST):
# LimitRequestFields 30
# QS_LimitRequestBody 102400
</IfModule>
reiniciamos apache y listo...
Funcionando más que sobrado en un XEON 8 cores con mas de 300mil visualizaciones diarias a sitios con php/mysql aun en hora pico, claro que también cuenta con APC Cache del cual hablare luego
CPU Usage: u20.77 s4.02 cu0 cs0 - .462% CPU load
16.9 requests/sec - 185.6 kB/second - 11.0 kB/request
3 requests currently being processed, 8 idle workers
__.W__.C_C._._.._...............................................
................................................................
......................
ACTUALIZACIÓN 6 Junio 2012
Si muestra el error "undefined symbol: EVP_DecryptFinal" la solución es
Intenta instalar y después re compilar
# yum install libtool openssl*
Si persiste la falla busca en /etc/http/conf.d/
# LoadModule ssl_module modules/mod_ssl.so
colócalo como comentario y ahora agrégalo arriba de mod_qos quedando :
LoadModule ssl_module modules/mod_ssl.so
LoadModule qos_module /usr/lib64/httpd/modules/mod_qos.so
y listo...
jueves, 17 de mayo de 2012
como reducir iowait
El mayor problema de iowait se produce por el disco duro, si el disco esta muy ocupado las demás tareas se verán lentas.
Son 2 fuentes que comúnmente generan el problema:
1- Falta de RAM
esta es obvia cuando tienes mucho swap, para comprobarlo hay que ver cuanta ram tenemos libre y cuanto ocupado en swap, para ello ejecuta
# free -m
total used free shared buffers cached
Mem: 3431 3020 410 0 124 1755
-/+ buffers/cache: 1140 2290
Swap: 2047 63 1984
en este caso no hay swap y suficiente memoria libre, así que la solución no es instalar más memoria. o ver el proceso que consume demasiada RAM y existe algún parámetro para personalizarlo siempre cuidando que no sea indispensable para su deempeño
un modo de ver la ram ocupada es con
# top
una ves iniciado presionen shift+M y se acomodara por consumo de memoria y verán algo similar a:
sks: 211 total, 2 running, 209 sleeping, 0 stopped, 0 zombie
Cpu(s): 16.3%us, 4.2%sy, 0.3%ni, 76.4%id, 2.2%wa, 0.0%hi, 0.5%si, 0.0%st
Mem: 4037012k total, 3935720k used, 101292k free, 55408k buffers
Swap: 1052248k total, 37844k used, 1014404k free, 2175768k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
788501 mysql 15 0 1464m 680m 5920 S 40.6 17.3 534:46.35 mysqld
979804 apache 15 0 1261m 207m 48m S 0.0 5.3 0:01.31 httpd
977582 apache 15 0 1245m 197m 51m S 0.0 5.0 0:01.95 httpd
979747 apache 15 0 1260m 191m 34m S 1.7 4.9 0:00.97 httpd
977581 apache 15 0 1245m 189m 44m S 0.0 4.8 0:01.59 httpd
979760 apache 15 0 1242m 185m 42m S 0.7 4.7 0:01.01 httpd
979722 apache 17 0 1245m 185m 40m S 0.3 4.7 0:01.15 httpd
979810 apache 16 0 1242m 180m 37m S 0.0 4.6 0:00.55 httpd
979840 apache 16 0 1258m 177m 20m D 0.3 4.5 0:00.65 httpd
981013 apache 15 0 1188m 177m 34m S 13.3 4.5 0:00.40 httpd
979762 apache 17 0 1243m 171m 27m D 0.7 4.4 0:00.94 httpd
981005 apache 15 0 1242m 165m 23m S 2.3 4.2 0:00.30 httpd
981012 apache 15 0 1226m 137m 5192 S 2.0 3.5 0:00.06 httpd
967097 root 15 0 1164m 134m 10m S 0.0 3.4 0:03.88 httpd
981014 apache 18 0 1165m 129m 4868 D 0.0 3.3 0:00.00 httpd
967107 apache 15 0 395m 119m 468 S 0.0 3.0 0:00.00 httpd
977006 root 19 0 207m 99m 2352 R 96.4 2.5 0:11.71 perl
18935 root 17 0 250m 25m 4720 S 0.0 0.6 2:03.93 sw-engine
18943 root 15 0 334m 24m 956 S 0.0 0.6 137:04.24 sw-collectd
8295 named 15 0 418m 21m 2056 S 0.0 0.5 9:33.46 named
295584 root 15 0 63780 19m 1732 S 0.0 0.5 0:03.02 miniserv.pl
2- Alta escritura y/o lectura de archivos.
Para detectar que procesos son los responsables vean como detectar procesos que consumen iowait o instalen iotop
Imaginemos que existe un alto iowait en base de datos
Primero consultemos si la aplicación que afecta tiene parámetros para optimizar su rendimiento, los parámetros que mas impactan en iowait es la cantidad de procesos o usuarios simultáneos y cache en RAM; si no existe mas que optimizar por configuración vemos opciones por hardware
Supongamos que actualmente en un solo disco duro se encuentra sistema operativo, web, correo, base de datos; una solución es agregar un disco duro adicional preferentemente de alta velocidad y mover la base de datos a ese disco, asi el trabajo de lectura/escritura se distribuirá dando como resultado disminuir el iowait.
Aunque estos dos puntos comúnmente resuelven el problema de iowait aun así hay que buscar el origen real del problema, buscar existe un error de programación en nuestra aplicación o simplemente ahora la carga de trabajo es mayor y hay que comenzar a pensar en optimizar nuestra aplicación posiblemente mediante el uso de cache
y en el caso de hosting compartido una buena herramienta para controlar el uso de recursos es cloudlinix el cual limita los recursos para evitar sobrecargas por parte de cpu o ram; compatible con servidores planos, cpanel y plesk.
El panel de plesk ademas cuenta con una opción para limitar la cantidad máxima de conexiones, ayudando a controlar el sobreuso.
Son 2 fuentes que comúnmente generan el problema:
1- Falta de RAM
esta es obvia cuando tienes mucho swap, para comprobarlo hay que ver cuanta ram tenemos libre y cuanto ocupado en swap, para ello ejecuta
# free -m
total used free shared buffers cached
Mem: 3431 3020 410 0 124 1755
-/+ buffers/cache: 1140 2290
Swap: 2047 63 1984
memoria libre para trabajar, hay que procurar que una vez iniciado todos los servicios este libre mínimo el 25% de la memoria
memoria swap esta hay que procurar que este siempre al minimo, lo optimo es cero y a partir de 300-500M puede ser tema de preocupación,
en este caso no hay swap y suficiente memoria libre, así que la solución no es instalar más memoria. o ver el proceso que consume demasiada RAM y existe algún parámetro para personalizarlo siempre cuidando que no sea indispensable para su deempeño
un modo de ver la ram ocupada es con
# top
una ves iniciado presionen shift+M y se acomodara por consumo de memoria y verán algo similar a:
sks: 211 total, 2 running, 209 sleeping, 0 stopped, 0 zombie
Cpu(s): 16.3%us, 4.2%sy, 0.3%ni, 76.4%id, 2.2%wa, 0.0%hi, 0.5%si, 0.0%st
Mem: 4037012k total, 3935720k used, 101292k free, 55408k buffers
Swap: 1052248k total, 37844k used, 1014404k free, 2175768k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
788501 mysql 15 0 1464m 680m 5920 S 40.6 17.3 534:46.35 mysqld
979804 apache 15 0 1261m 207m 48m S 0.0 5.3 0:01.31 httpd
977582 apache 15 0 1245m 197m 51m S 0.0 5.0 0:01.95 httpd
979747 apache 15 0 1260m 191m 34m S 1.7 4.9 0:00.97 httpd
977581 apache 15 0 1245m 189m 44m S 0.0 4.8 0:01.59 httpd
979760 apache 15 0 1242m 185m 42m S 0.7 4.7 0:01.01 httpd
979722 apache 17 0 1245m 185m 40m S 0.3 4.7 0:01.15 httpd
979810 apache 16 0 1242m 180m 37m S 0.0 4.6 0:00.55 httpd
979840 apache 16 0 1258m 177m 20m D 0.3 4.5 0:00.65 httpd
981013 apache 15 0 1188m 177m 34m S 13.3 4.5 0:00.40 httpd
979762 apache 17 0 1243m 171m 27m D 0.7 4.4 0:00.94 httpd
981005 apache 15 0 1242m 165m 23m S 2.3 4.2 0:00.30 httpd
981012 apache 15 0 1226m 137m 5192 S 2.0 3.5 0:00.06 httpd
967097 root 15 0 1164m 134m 10m S 0.0 3.4 0:03.88 httpd
981014 apache 18 0 1165m 129m 4868 D 0.0 3.3 0:00.00 httpd
967107 apache 15 0 395m 119m 468 S 0.0 3.0 0:00.00 httpd
977006 root 19 0 207m 99m 2352 R 96.4 2.5 0:11.71 perl
18935 root 17 0 250m 25m 4720 S 0.0 0.6 2:03.93 sw-engine
18943 root 15 0 334m 24m 956 S 0.0 0.6 137:04.24 sw-collectd
8295 named 15 0 418m 21m 2056 S 0.0 0.5 9:33.46 named
295584 root 15 0 63780 19m 1732 S 0.0 0.5 0:03.02 miniserv.pl
en donde observan el porcentaje de RAM ocupada por ese proceso, en este caso MySQL consume el 17.3% que equivale a 4G*0.17 = 0.68G = 680M de RAM
2- Alta escritura y/o lectura de archivos.
Para detectar que procesos son los responsables vean como detectar procesos que consumen iowait o instalen iotop
Imaginemos que existe un alto iowait en base de datos
Primero consultemos si la aplicación que afecta tiene parámetros para optimizar su rendimiento, los parámetros que mas impactan en iowait es la cantidad de procesos o usuarios simultáneos y cache en RAM; si no existe mas que optimizar por configuración vemos opciones por hardware
Supongamos que actualmente en un solo disco duro se encuentra sistema operativo, web, correo, base de datos; una solución es agregar un disco duro adicional preferentemente de alta velocidad y mover la base de datos a ese disco, asi el trabajo de lectura/escritura se distribuirá dando como resultado disminuir el iowait.
Aunque estos dos puntos comúnmente resuelven el problema de iowait aun así hay que buscar el origen real del problema, buscar existe un error de programación en nuestra aplicación o simplemente ahora la carga de trabajo es mayor y hay que comenzar a pensar en optimizar nuestra aplicación posiblemente mediante el uso de cache
y en el caso de hosting compartido una buena herramienta para controlar el uso de recursos es cloudlinix el cual limita los recursos para evitar sobrecargas por parte de cpu o ram; compatible con servidores planos, cpanel y plesk.
El panel de plesk ademas cuenta con una opción para limitar la cantidad máxima de conexiones, ayudando a controlar el sobreuso.
martes, 15 de mayo de 2012
contar archivos en una carpeta desde shell Linux
el comando es:
# cd /carpeta/deseada
# ls | grep -c .
y el resultado se ve como:
# ls | grep -c .
109
# cd /carpeta/deseada
# ls | grep -c .
y el resultado se ve como:
# ls | grep -c .
109
lunes, 14 de mayo de 2012
Que es iowait
Todo software necesita de un hardware.
iowait es que tanto se debe de poner en pausa el software esperando que el hardware se desocupe, si esta en pausa equivale a que este detenido, no avanzar en el trabajo y acumulando trabajos pendientes, es por ello que sube la carga
en el Hardware existen algunos dispositivos lentos (a comparación del procesador) como el disco duro, cdrom, puerto serial, entre otros.
Si mi software dice que almacene un archivo de 5Gb en el disco este estará muy ocupado escribiéndolo, durante ese tiempo el iowait subirá mucho indicando que hay hardware ocupado. Si al mismo tiempo deseo leer otro archivo esta tarea se verá lenta porque el disco esta ocupado guardando la información.
No solo los archivos grandes causan ese problema. también lo causa el leer o escribir muchos archivos o un mismo archivo muchas veces.
Ejemplos en un servidor web:
cuento con sitio1.com el cual tiene 4000 visitantes diarios (20mil clicks diarios), hardware intel xeon 4 cores un disco SATA y 8G de ram.
En la programación de sitio1.com se incluyen alrededor de 100 archivos y librerias (muy común en joomla y WP al agregar muchos plugins), realiza 100 consultas a SQL y como es una galeria de fotos se visualizan 100 imágenes por click.
Problema: carga alta en el servidor, iowait > 40%
Causa del problema:
- accesar muchos archivos a la vez mas de archivos por click (100 archivos + 100 imagenes + consultar base de datos), por lo tanto el disco duro esta muy ocupado para atender a todas las visitas a la vez.
- Entre las 100 consultas a base de datos se encuentra leer y escribir información.
- Todo el trabajo recae sobre un solo disco duro (Sistema Operativo, Base de Datos, web, logs, etc)
Y si pongo un procesador más grande se soluciona?
NO: el problema es el disco duro, anda muy ocupado atendiendo muchos archivos.
Solución rápida:
-mover la pagina web o base de datos a un segundo disco duro
eficiencia: baja la carga y soportar algo mas de visitas
Solución ideal :
- Sitio o Base de datos en segundo disco duro.
- Optimizar el código fuente y utilizar cache.
- Analizar el diseño de la página para ver si es posible eliminar imagenes
eficiencia: 2-3 veces más visitas.
Lo mejor es ir migrando a algo programado a la medida (eficiencia 10veces más rápido) o hacerse de la idea en gastar mucho en alojamiento.
Aunque lo realmente ideal es contar con varios servidores y balancear la carga entre ellos, con tareas y configuraciones optimizadas para web, base de datos, etc.
Esto solo fue un escenario, antes de hacer algo hay que analizar que es lo que realmente me genera la carga, información en como detectar procesos que consumen demasiado iowait
iowait es que tanto se debe de poner en pausa el software esperando que el hardware se desocupe, si esta en pausa equivale a que este detenido, no avanzar en el trabajo y acumulando trabajos pendientes, es por ello que sube la carga
en el Hardware existen algunos dispositivos lentos (a comparación del procesador) como el disco duro, cdrom, puerto serial, entre otros.
Si mi software dice que almacene un archivo de 5Gb en el disco este estará muy ocupado escribiéndolo, durante ese tiempo el iowait subirá mucho indicando que hay hardware ocupado. Si al mismo tiempo deseo leer otro archivo esta tarea se verá lenta porque el disco esta ocupado guardando la información.
No solo los archivos grandes causan ese problema. también lo causa el leer o escribir muchos archivos o un mismo archivo muchas veces.
Ejemplos en un servidor web:
cuento con sitio1.com el cual tiene 4000 visitantes diarios (20mil clicks diarios), hardware intel xeon 4 cores un disco SATA y 8G de ram.
En la programación de sitio1.com se incluyen alrededor de 100 archivos y librerias (muy común en joomla y WP al agregar muchos plugins), realiza 100 consultas a SQL y como es una galeria de fotos se visualizan 100 imágenes por click.
Problema: carga alta en el servidor, iowait > 40%
Causa del problema:
- accesar muchos archivos a la vez mas de archivos por click (100 archivos + 100 imagenes + consultar base de datos), por lo tanto el disco duro esta muy ocupado para atender a todas las visitas a la vez.
- Entre las 100 consultas a base de datos se encuentra leer y escribir información.
- Todo el trabajo recae sobre un solo disco duro (Sistema Operativo, Base de Datos, web, logs, etc)
Y si pongo un procesador más grande se soluciona?
NO: el problema es el disco duro, anda muy ocupado atendiendo muchos archivos.
Solución rápida:
-mover la pagina web o base de datos a un segundo disco duro
eficiencia: baja la carga y soportar algo mas de visitas
Solución ideal :
- Sitio o Base de datos en segundo disco duro.
- Optimizar el código fuente y utilizar cache.
- Analizar el diseño de la página para ver si es posible eliminar imagenes
eficiencia: 2-3 veces más visitas.
Lo mejor es ir migrando a algo programado a la medida (eficiencia 10veces más rápido) o hacerse de la idea en gastar mucho en alojamiento.
Aunque lo realmente ideal es contar con varios servidores y balancear la carga entre ellos, con tareas y configuraciones optimizadas para web, base de datos, etc.
Esto solo fue un escenario, antes de hacer algo hay que analizar que es lo que realmente me genera la carga, información en como detectar procesos que consumen demasiado iowait
domingo, 13 de mayo de 2012
Reparar email quota en cPanel
Para la reparación de quotas de correo en "cPanel" es ejecutando lo siguiente:
rm -f /home/*/mail/maildirsize
rm -f /home/*/mail/.*/maildirsize
/scripts/generate_maildirsize --verbose --allaccounts --force --confirm
rm -f /home/*/mail/maildirsize
rm -f /home/*/mail/.*/maildirsize
/scripts/generate_maildirsize --verbose --allaccounts --force --confirm
sábado, 12 de mayo de 2012
Modificar la prioridad de ejecucion
Apara cambiar la prioridad de ejecución es el comando renice
el rango de prioridad es de -20 a 19
entre mayor sea el numero de la prioridad menos recursos se le asignaran
para cambiar la prioridad solo necesitamos conocer el PID del proceso y el comando es:
el proceso 1000 cambia a prioridad 10
# renice -n 10 -p 1000
si deseo cambiar la prioridad por nombre del proceso es:
en este caso cambia a prioridad 7 todos los procesos tar que encuente
# renice -n 7 -p $(ps ax | grep "tar" | grep -v grep | awk '{ print $1 }')
importante, no es común contar con procesos con valor negativo, así que se les suele considerar en tiempo real ya que tienen mas atención que todos el sistema operativo
Nota: solo root puede alterar la prioridad sobre cualquier proceso sin importar el usuario, y los usuarios normales solo pueden alterar procesos propios
jueves, 10 de mayo de 2012
Al recibir correos aparece un mensaje "Your email requires verification verify#"
Para desactivar la protección de correo ve a
- Cpanel
- BoxTrapper
- La cuenta de correo
- Manage
- y Disable
Para que sirve esta protección?
Comúnmente se activa en nuevos remitentes, al desconocer el correo les envía una verificacion a su correo a la cual hay que darle click, esa verificación es para evitar los bots de spam
lunes, 7 de mayo de 2012
Contidad de conexiones por IP, puerto y servicio
Contar conexiones por IP
netstat -ntu | grep ':' | awk '{print $5}' | awk '{sub("::ffff:","");print}' | cut -f1 -d ':' | sort | uniq -c | sort -n
Respuesta;
1 65.54.190.15
2 148.235.52.21
2 96.2.31.16
3 189.133.151.131
3 190.21.212.171
4 66.249.73.209
5 66.249.73.214
9 66.249.73.204
10 201.200.19.2
10 66.249.73.24
14 201.157.31.160
16 201.157.31.158
19 200.94.75.106
40 189.132.152.183
43 189.234.211.10
49 189.230.201.13
49 200.4.56.151
77 187.210.71.51
84 187.150.51.56
94 127.0.0.1
152 189.132.158.220
Contar conexiones por puertos
netstat -apn | awk '{print $4}' | cut -d: -f2 | sort | uniq -c | sort -n
Respuesta:
1 25
1 110
1 8880
1 995
2 993
6 143
9 110
10 123
18 25
20 53
28 3036
56 82
889 80
Contar conexiones por ejecutable:
netstat -apn | awk '{print $7}' | cut -d/ -f2 | sort | uniq -c | sort -n
Respuesta:
1 ntpd
1 python
1 sshd
2 couriertls
2 pop3d
6 xinetd
8 mysqld
8 httpd
9 qmail-smtpd
10 named
17 perl
18 httpd
23 lighttpd
como detectar procesos que consumen demasiado iowait
Puedes ejecutar cualquiera de los siguientes 2 comandos con resultados casi identicos
ps -eo pid,user,wchan=WIDE-WCHAN-COLUMN -o s,cmd|awk ' $4 ~ /D/ {print $0}'
ps ax | awk '$3 ~ /^D/ { print $0 }'
aquí el resultado de ambos ejecutados continuamente uno del otro, en este caso el proceso 1050 ya había terminado en la 2da ejecución
1050 apache sync_buffer D /usr/sbin/httpd
9560 root sync_page D /usr/local/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
-----------------------------
9560 ? D 0:15 /usr/local/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
en este caso vemos que contamos con alta lectura/escritura de datos en disco duro
Aunque es normal tener momentos con pequeños con iowait mas alto aquí unas posibles soluciones:
ps -eo pid,user,wchan=WIDE-WCHAN-COLUMN -o s,cmd|awk ' $4 ~ /D/ {print $0}'
ps ax | awk '$3 ~ /^D/ { print $0 }'
aquí el resultado de ambos ejecutados continuamente uno del otro, en este caso el proceso 1050 ya había terminado en la 2da ejecución
1050 apache sync_buffer D /usr/sbin/httpd
9560 root sync_page D /usr/local/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
-----------------------------
9560 ? D 0:15 /usr/local/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
en este caso vemos que contamos con alta lectura/escritura de datos en disco duro
Aunque es normal tener momentos con pequeños con iowait mas alto aquí unas posibles soluciones:
- ver configuraciones de optimización disponibles para el software afectado
- dividir el trabajo entre varios equipos
- instalar discos duros más rápidos
- dividir el trabajo entre varios discos duros
solucion rsync con alto iowait
Al ejecutar rsync o cp -r el iowait sube mucho la carga, mas que procesamiento es porque el disco duro se encuentra ocupado leyendo todos los archivos a la vez.
Una opción que me agrada mucho es el comando scp, este cuenta con un parámetro para limitar la cantidad de datos leídos por segundo ayudando mucho a hacer respaldos de varios G sin aumentar la carga del servidor
aquí un ejemplo
scp -r -P 1234 -l 2048 /datos/origen/* usuario@123.123.123.123:/datos/destino
-r = recursivo
-P 1234 = parámetro opcional para cambiar el puerto ssh del destino
-l 2048 = máximo 2048kbps = 2Mbps
/datos/origen/* = todos los archivos de esa carpeta
usuario = usuario :P
123.123.123.123 = IP destino, si fuera copia interna la IP es 127.0.0.1
/datos/destino = carpeta destino, nota: esta ya debe de existir
claro que al pasar grandes volúmenes de información limitando su lectura hace que sea un proceso algo más lento, pero les digo con seguridad que son tiempos razonables.
--- Actualización 29 Mayo 2012 ----
Como habrán leído en los comentarios rsync también limita la transferencia y con otras grandes ventajas como mantener permisos, usuarios, etc.
Ahora explicare en que caso conviene rsync y en cual es mejor scp.
Cuando utilizamos cp o rsync el proceso es:
1- Lee la ruta de todos los archivos involucrados
2- comenzar la transferencia de información.
Caso 1:
Servidor en Producción con alta carga de trabajo y/o procesador pequeño en donde hay que respaldar 10 archivos de 5G (total 50G); aquí utiliza el comando de tu preferencia (scp o rsync), aunque posiblemente te sea mejor utilizar rsync para aprovechar todas sus cualidades.
Caso 2:
Servidor en Producción con alta carga de trabajo y/o procesador pequeño en donde hay que respaldar 100 mil archivos de 5kb (total 50G); si utilizo rsync se alentara el servidor porque primero leerá a toda velocidad la ubicación de los 100mil archivos tanto en el origen como en el destino para después proceder a la copia de los mismos. En este caso tendríamos de 5 a 20min carga muy alta y lentitud en todo el servidor. Siendo la solución utilizar scp, si tardará mas tiempo tiempo ya que volverá a copiar todo pero no se notará que la carga de trabajo afecte al desempeño del servidor.
En la vida real fue probado con un celeron y un xeon 8 nucleos manejando mas de 300mil archivos a respaldar y que no afectará al desempeño de las aplicaciones que estaban en ejecución (web, mysql, correo, procesos en shell, etc), en ambos equipos rsync causo problemas de carga y scp todo estable.
Una opción que me agrada mucho es el comando scp, este cuenta con un parámetro para limitar la cantidad de datos leídos por segundo ayudando mucho a hacer respaldos de varios G sin aumentar la carga del servidor
aquí un ejemplo
scp -r -P 1234 -l 2048 /datos/origen/* usuario@123.123.123.123:/datos/destino
-r = recursivo
-P 1234 = parámetro opcional para cambiar el puerto ssh del destino
-l 2048 = máximo 2048kbps = 2Mbps
/datos/origen/* = todos los archivos de esa carpeta
usuario = usuario :P
123.123.123.123 = IP destino, si fuera copia interna la IP es 127.0.0.1
/datos/destino = carpeta destino, nota: esta ya debe de existir
claro que al pasar grandes volúmenes de información limitando su lectura hace que sea un proceso algo más lento, pero les digo con seguridad que son tiempos razonables.
--- Actualización 29 Mayo 2012 ----
Como habrán leído en los comentarios rsync también limita la transferencia y con otras grandes ventajas como mantener permisos, usuarios, etc.
Ahora explicare en que caso conviene rsync y en cual es mejor scp.
Cuando utilizamos cp o rsync el proceso es:
1- Lee la ruta de todos los archivos involucrados
2- comenzar la transferencia de información.
Caso 1:
Servidor en Producción con alta carga de trabajo y/o procesador pequeño en donde hay que respaldar 10 archivos de 5G (total 50G); aquí utiliza el comando de tu preferencia (scp o rsync), aunque posiblemente te sea mejor utilizar rsync para aprovechar todas sus cualidades.
Caso 2:
Servidor en Producción con alta carga de trabajo y/o procesador pequeño en donde hay que respaldar 100 mil archivos de 5kb (total 50G); si utilizo rsync se alentara el servidor porque primero leerá a toda velocidad la ubicación de los 100mil archivos tanto en el origen como en el destino para después proceder a la copia de los mismos. En este caso tendríamos de 5 a 20min carga muy alta y lentitud en todo el servidor. Siendo la solución utilizar scp, si tardará mas tiempo tiempo ya que volverá a copiar todo pero no se notará que la carga de trabajo afecte al desempeño del servidor.
En la vida real fue probado con un celeron y un xeon 8 nucleos manejando mas de 300mil archivos a respaldar y que no afectará al desempeño de las aplicaciones que estaban en ejecución (web, mysql, correo, procesos en shell, etc), en ambos equipos rsync causo problemas de carga y scp todo estable.
miércoles, 2 de mayo de 2012
Agregar disco virtual en XEN con Linux
1- crear disco nuevo en xencenter
2- apagada la maquina virtual agregar el disco desde xencenter3- Iniciar maquina virtual
4- utilizando fdisk -l observa el nombre de la nueva unidad, lo mas probable es que sea /dev/xvdb
5- con fdisk creamos la particion
fdisk /dev/xvdb
Type n to create new partitionSelect p or e: the partition type, say p for primarySelect partition number (1-4), say 1For next two options, accept the default values to create partition of maximum space available.
Type w to exit and save the partition table.
6- crear sistema de archivos
mkfs -t ext3 /dev/xvdb
u otro formato como ext4
7- montar disco duro
# mkdir /disco2
# mount /dev/xvdb /disco2
8- si deseas que se agrege el disco automaticamente al iniciar edita /etc/fstab y agrega
/dev/xvdb /disco2 ext3 defaults 1 2
Suscribirse a:
Entradas (Atom)
Como bloquera archivos adjuntos que son virus en postfix o plesk
Como bloquear adjuntos del correo en Plesk/Postfix 1- edita el archivo /etc/postfix/main.cf 2- busca el parametro mime_header_checks...
-
Activar en plesk nginx En plesk ir al dominio ir a Configuración de Apache y nginx desactivar Modo proxy...
-
Aquí les dejo un ejemplo de un query para mostrar el día de la semana (lunes, martes, miercoles,....) de una fecha almacenada en mysql ...
-
Facturacion electronica SAT Ejemplo crear xml cfdi Chaque en php error_reporting(~(E_WARNING|E_NOTICE)); //error_reporting(E_ALL); // S...