Si tu actividad de correo es muy intensa posiblemente se te eleve el iowait por causa del correo
una opción es pasar la cola de correo a una unidad en RAM y aquí te presento como hacerlo
edita /etc/fstab
# nano /etc/fstab
y agrega
none /ram_qmailqueue tmpfs defaults,size=100m,nr_inodes=999k,mode=775 0 0
en este caso se le asignaron 100Mb de RAM a esa unidad virtual; con la experiencia a futuro aumentaras o disminuirás la cantidad según sean tus necesidades
ahora para terminar de configurar ejecutamos:
# mkdir /ram_qmailqueue
# mount -a
# chmod 750 /ram_qmailqueue
# chown qmailq:qmail /ram_qmailqueue
# cd /var/qmail/
# mv queue queue_bak
# ln -s /ram_qmailqueue /var/qmail/queue
# rsync -av /var/qmail/queue_bak/* /ram_qmailqueue
IMPORTANTE, al reiniciar el servidor el disco en RAM estara vacio, asi que es importante volver a ejecutar el rsync; un modo comodo es editar /etc/init.d/qmail buscar start(){ y despues incluir el comando; asi cada vez que inicie se verificara que existan los archivos necesarios
martes, 31 de julio de 2012
viernes, 13 de julio de 2012
apache No space left on device y si hay espacio en disco
Situación: Apache no inicia el log muestra
Cantidad de semáforos configurados actualmente:
[Fri Jul 13 22:03:17 2012] [emerg] (28)No space left on device: mod_fcgid: Can't create global fcgid-pipe mutex
[Fri Jul 13 22:07:05 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Jul 13 22:07:05 2012] [error] (28)No space left on device: Cannot create SSLMutex
Configuration Failed
pero si hay espacio en disco
# df -h
S.ficheros Size Used Avail Use% Montado en
/dev/xvda2 77G 17G 57G 23% /
tmpfs 1,5G 0 1,5G 0% /dev/shm
/dev/xvda1 97M 49M 44M 53% /boot
y si hay nodos
# df -hi
S.ficheros Inodes IUsed IFree IUse% Montado en
/dev/xvda2 4,9M 224K 4,7M 5% /
tmpfs 367K 1 367K 1% /dev/shm
/dev/xvda1 26K 44 26K 1% /boot
El problema esta en los semáforos, los cuales se terminaron;
¿Qué es un semáforo? En palabras sencillas es una bandera que esta en el sistema operativo la cual utiliza para pausar ejecuciones con la finalidad de sincronizarlas; por ejemplo una aplicación pudiera estar esperando un semáforo de un servicio de disco duro indicándole que la información esta lista, tan pronto el semáforo se pone en verde la aplicación continua su ejecución.
Comprobar si el problema son semáforos:
Cantidad de semáforos ejecutados globalmente
# ipcs -s | grep -c .
Cantidad de semáforos ejecutados por apache
# ipcs -s |grep apache | grep -c .
# sysctl -a | grep sem
kernel.sem = 200 32000 32 128
Solución
Ejecutar:
# ipcs -s | grep apache | awk ' { print $2 } ' | xargs ipcrm sem
reiniciar apache y listo.
en lo personal me agrada editar /etc/init.d/httpd
busquen start() y despúes de ahí agrego el comando de eliminar semáforos existentes
....
# when not running is also a failure. So we just do it the way init scripts
# are expected to behave here.
start() {
ipcs -s | grep apache | perl -e 'while (<STDIN>) { @a=split(/\s+/); print `ipcrm sem $a[1]`}',
....
....
Por otro lado si tu servidor cuenta con mucho tráfico se incremente la probabilidad de repetir el problema y para evitarlo podemos aumentar la cantidad de semáforos editando /etc/sysctl.conf , agrego:
kernel.sem = 250
y ejecuto:
# sysctl -p
el valor por default son 200, si realmente tienes mucha carga de trabajo puedes probar con una cantidad mayor, pero sin exagerar.
viernes, 6 de julio de 2012
Agregando mi sitio a google
Para agregar tu sitio a google es muy sencillo, solo rellena el siguiente formulario
http://www.google.com/addurl.html
y listo
http://www.google.com/addurl.html
y listo
como bloquear china, rusia, korea y otros países con iptables
Un gran problema son los contantes ataques y escaneos de bots, una solución es bloquear los países más conflictivos y que no contamos con relación comercial o similar con ellos.
Hace tiempo encontré un buen script, ya no recuerdo la fuente pero aquí se los dejo.
#EDITAR LISTAS DE PAISES DESEADOS
ISO="af cn ru nl pl kr"
### Set PATH ###
IPT=/sbin/iptables
WGET=/usr/bin/wget
EGREP=/bin/egrep
### No editing below ###
SPAMLIST="countrydrop"
ZONEROOT="/root/iptables"
DLROOT="http://www.ipdeny.com/ipblocks/data/countries"
cleanOldRules(){
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
}
# create a dir
[ ! -d $ZONEROOT ] && /bin/mkdir -p $ZONEROOT
# clean old rules
cleanOldRules
# create a new iptables list
$IPT -N $SPAMLIST
for c in $ISO
do
# local zone file
tDB=$ZONEROOT/$c.zone
# get fresh zone file
$WGET -O $tDB $DLROOT/$c.zone
Hace tiempo encontré un buen script, ya no recuerdo la fuente pero aquí se los dejo.
#EDITAR LISTAS DE PAISES DESEADOS
ISO="af cn ru nl pl kr"
### Set PATH ###
IPT=/sbin/iptables
WGET=/usr/bin/wget
EGREP=/bin/egrep
### No editing below ###
SPAMLIST="countrydrop"
ZONEROOT="/root/iptables"
DLROOT="http://www.ipdeny.com/ipblocks/data/countries"
cleanOldRules(){
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
}
# create a dir
[ ! -d $ZONEROOT ] && /bin/mkdir -p $ZONEROOT
# clean old rules
cleanOldRules
# create a new iptables list
$IPT -N $SPAMLIST
for c in $ISO
do
# local zone file
tDB=$ZONEROOT/$c.zone
# get fresh zone file
$WGET -O $tDB $DLROOT/$c.zone
# country specific log message
SPAMDROPMSG="$c Country Drop"
# get
BADIPS=$(egrep -v "^#|^$" $tDB)
for ipblock in $BADIPS
do
$IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG"
$IPT -A $SPAMLIST -s $ipblock -j DROP
done
done
# Drop everything
$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST
# call your other iptable script
# /path/to/other/iptables.sh
exit 0
creen un .sh con ese contenido, asignen permiso 700 o 755 y ejecuten, tardara varios minutos así que no desesperen
lunes, 2 de julio de 2012
myisam vs innodb, como decidir?
A simple vista la pregunta eterna, y he aquí una respuesta fácil y rápida
No te compliques si no tienes una necesidad muy especial
Utiliza innodb cuando tengas mucha escritura o requieres que se elimine o actualice información en cascada automáticamente.
Utiliza myisam cuando exista poca escritura y se notará mucho más rápido
así de fácil.
No te compliques si no tienes una necesidad muy especial
Utiliza innodb cuando tengas mucha escritura o requieres que se elimine o actualice información en cascada automáticamente.
Utiliza myisam cuando exista poca escritura y se notará mucho más rápido
así de fácil.
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 ...
-
Como bloquear adjuntos del correo en Plesk/Postfix 1- edita el archivo /etc/postfix/main.cf 2- busca el parametro mime_header_checks...