jueves, 31 de mayo de 2012

como hacer que wget no descargue, solo visualice

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.




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.


PartitionSizePartition Contents
/40 GB recommended (20 GB minimum)Base operating system
/boot250 MBKernels, boot loader configuration file
/usr16 GB recommended (8 GB minimum)cPanel, Apache, Apache logs, and most applications
/var16 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
/homeGrow to fill disk
Note: Allotting more disk space allows you to host more accounts.
cPanel user accounts
/tmp2 GB
Note: We recommend creating a /tmp partition. You can use securetmpregardless of this setting.
Temporary files
swapTwice the server's RAMThe 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


  1. Instalamos CentOS con lo mínimo (sin apache/php/mysql/email)
  2. Configuramos la red
  3. 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

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

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









  







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




martes, 22 de mayo de 2012

Plesk carga alta por qmail


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 }')

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


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

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










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




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
  • Mail
  • 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:


  1. ver configuraciones de optimización disponibles para el software afectado
  2. dividir el trabajo entre varios equipos
  3. instalar discos duros más rápidos
  4. 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.










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 xencenter
3- 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




Ejemplo de factura electrónica 2022 en Panamá (DGI)

Código fuente Facturación 2022 Panamá Panamá comenzó el proceso de migración a facturación electrónica,  actualmente ya salieron los primero...