Compilacion y Optimizacion de Squid3

Publicado por firecold, Agosto 23, 2013, 01:43:54 PM

Tema anterior - Siguiente tema

mac86

Se que llego tarde al post, pero quiero felicitar al autor por su excelente aporte!!

firecold

Cita de: mac86 en Enero 29, 2014, 07:38:23 AM
Se que llego tarde al post, pero quiero felicitar al autor por su excelente aporte!!

Gracias amigo mac86 y espero que te haya sido de utilidad, siempre espero preguntas o sugerencias, ya que seran bien recibidas, Saludos

yony4300

hola, soy nuevo en esto y estuve siguiendo los pasos para optimizar el Squid pero cuando ingreso este comando
cd squid3-3.1.20
gedit /usr/src/squid/squid3-3.1.20/debian/rules   

me dise:
no existe el fichero o el directorio
-bash :gedit: no se encontró la orden

Alguna idea de que pueda ser o como hago para poder seguir con el tuto???

mac86

tendrias que instalar GEDIT o el editor de texto que mas te guste

si optas por GEDIT

apt-get install gedit

saludos

firecold

Cita de: yony4300 en Febrero 21, 2014, 02:36:06 AM
hola, soy nuevo en esto y estuve siguiendo los pasos para optimizar el Squid pero cuando ingreso este comando
cd squid3-3.1.20
gedit /usr/src/squid/squid3-3.1.20/debian/rules   

me dise:
no existe el fichero o el directorio
-bash :gedit: no se encontró la orden

Alguna idea de que pueda ser o como hago para poder seguir con el tuto???

En todo caso puedes editar el archivo con nano, dependiendo de la version de debian que utilices, va depender de la version de squid que utilices, por ejemplo en debian 7, la version de squid3 va a ser 3.1.20, si quieres saber primero que version de squid tienes teclea en consola:

Código (bash) [Seleccionar]
sudo squid3 -v

Y tambien si quieres que entre a la carpeta ignorando que version sea de squid, lo puedes hacer asi:

Código (bash) [Seleccionar]
cd /usr/src/squid
cd squid*


Saludos

firecold

Cita de: mac86 en Febrero 21, 2014, 07:33:45 AM
tendrias que instalar GEDIT o el editor de texto que mas te guste

si optas por GEDIT

apt-get install gedit

saludos

Gracias amigo por tu ayuda, lo que pasa que en el post se me olvido que lo hice con entorno grafico y obviamente sin entorno grafico no serviria mucho gedit, disculpa mi tontera, pero gracias por ayudar al compañero, Saludos

jonimh

acabo de terminar la instalacion y puesta en marcha de raptor, mi duda ¿es necesario hacer esto para que trabaje mejor mi proxy cache?

firecold

Cita de: jonimh en Abril 26, 2014, 09:06:03 PM
acabo de terminar la instalacion y puesta en marcha de raptor, mi duda ¿es necesario hacer esto para que trabaje mejor mi proxy cache?

Esto es opcional, si usted lo desea hacer, pero no es algo que obligatoriamente tenga que hacer, Saludos

jonimh

ya estube intentando hacerlo pero no me cambia los valores de 8 a 128 y al poner esto ls -l /usr/src/squid/*.deb solo me da 5 archivos
-rw-r--r-- 1 root root 1650712 abr 27 11:56 /usr/src/squid/squid3_3.1.20-2.2_amd64.deb
-rw-r--r-- 1 root root  202718 abr 27 11:56 /usr/src/squid/squid3-common_3.1.20-2.2_all.deb
-rw-r--r-- 1 root root 6963750 abr 27 11:57 /usr/src/squid/squid3-dbg_3.1.20-2.2_amd64.deb
-rw-r--r-- 1 root root  115240 abr 27 11:57 /usr/src/squid/squid-cgi_3.1.20-2.2_amd64.deb
-rw-r--r-- 1 root root  112294 abr 27 11:57 /usr/src/squid/squidclient_3.1.20-2.2_amd64.deb

firecold

Cita de: jonimh en Abril 27, 2014, 12:04:00 PM
ya estube intentando hacerlo pero no me cambia los valores de 8 a 128 y al poner esto ls -l /usr/src/squid/*.deb solo me da 5 archivos
-rw-r--r-- 1 root root 1650712 abr 27 11:56 /usr/src/squid/squid3_3.1.20-2.2_amd64.deb
-rw-r--r-- 1 root root  202718 abr 27 11:56 /usr/src/squid/squid3-common_3.1.20-2.2_all.deb
-rw-r--r-- 1 root root 6963750 abr 27 11:57 /usr/src/squid/squid3-dbg_3.1.20-2.2_amd64.deb
-rw-r--r-- 1 root root  115240 abr 27 11:57 /usr/src/squid/squid-cgi_3.1.20-2.2_amd64.deb
-rw-r--r-- 1 root root  112294 abr 27 11:57 /usr/src/squid/squidclient_3.1.20-2.2_amd64.deb


Dependiendo la distribucion cambia un poco como hacerlo, acuerdate de seguir y hasta instalar podras haberte dado cuenta si funciono, Saludos

ninohwifi

Amigo firecold ayudame en algo.. hice todo como dijistes pero al colocar el comando cat /proc/sys/fs/file-max me sigue apareciendo el valor 65536 que puedo estar haciendo mal?? hechame una mano por favor...!!

tonyvzla

he estado observando que el raptor se queda como nulo quiero decir squid3 muerto no genera trafico despues de 2 dias de funcionamiento, debo reiniciar o apagar para que vuelva a su funcionamiento, saben cual seria el problema?
En ayuda de los mas desprotegidos

firecold

Cita de: tonyvzla en Mayo 10, 2014, 11:27:08 AM
he estado observando que el raptor se queda como nulo quiero decir squid3 muerto no genera trafico despues de 2 dias de funcionamiento, debo reiniciar o apagar para que vuelva a su funcionamiento, saben cual seria el problema?

Amigo cuando esto pase deberia de revisar su /var/log/squid3/cache.log el cual le dira el problema que tiene, Saludos

firecold

Cita de: tonyvzla en Mayo 10, 2014, 11:27:08 AM
he estado observando que el raptor se queda como nulo quiero decir squid3 muerto no genera trafico despues de 2 dias de funcionamiento, debo reiniciar o apagar para que vuelva a su funcionamiento, saben cual seria el problema?

Siguio cada uno de los procedimientos entre ellos estaba cambiar o borrar estos parametros:

Código (cpp) [Seleccionar]
echo 65536 > proc sys fs file-max
echo "*         soft        nofile          65536" >>  etc security limits.conf
echo "*         hard        nofile          65536" >> etc security limits.conf
echo "root      soft        nofile          65536" >> etc security limits.conf
echo "root      hard        nofile          65536" >> etc security limits.conf
echo "proxy     soft        nofile          65536" >> etc securitylimits.conf
echo "proxy     hard        nofile          65536" >> etc security limits.conf
echo "ulimit -Hn 8192
ulimit -Sn 8192">>  etc profile
fs.file-max = 65536


Saludos

ninohwifi

Cita de: firecold en Mayo 11, 2014, 06:41:54 PM
Siguio cada uno de los procedimientos entre ellos estaba cambiar o borrar estos parametros:

Código (cpp) [Seleccionar]
echo 65536 > proc sys fs file-max
echo "*         soft        nofile          65536" >>  etc security limits.conf
echo "*         hard        nofile          65536" >> etc security limits.conf
echo "root      soft        nofile          65536" >> etc security limits.conf
echo "root      hard        nofile          65536" >> etc security limits.conf
echo "proxy     soft        nofile          65536" >> etc securitylimits.conf
echo "proxy     hard        nofile          65536" >> etc security limits.conf
echo "ulimit -Hn 8192
ulimit -Sn 8192">>  etc profile
fs.file-max = 65536


Saludos

como se borra o se cambia eso amigo ??

firecold

Cita de: ninohwifi en Mayo 11, 2014, 07:01:41 PM
como se borra o se cambia eso amigo ??

Primero vas a /etc/profile y borras estas dos lineas

ulimit -Hn 8192
ulimit -Sn 8192


Despues a /etc/security/limits.conf y borra las lineas relatadas en este tema nada mas, lo demas lo deja tal cual, despues vas a /etc/sysctl.conf y buscas la linea: fs.file-max = y la borras, por ultimo vas a /proc/sys/fs/file-max y borras el contenido del mismo y reinicias, al reiniciar volveran sus valores por defecto de acuerdo a los requisitos de tu servidor, Saludos

monfi

Estimado esta bien lo que dices pero hay que aclara que si tienes 8G de RAM  estas ocupando casi o toda la memoria 803668 kbytes para el SQUID sin dejar espacio para otros procesos o files si se necesitara,  yo creo que seria por lo menos un 10% del total . claro de dependiendo de la cantidad de memoria.

firecold

Cita de: monfi en Mayo 14, 2014, 11:58:41 AM
Estimado esta bien lo que dices pero hay que aclara que si tienes 8G de RAM  estas ocupando casi o toda la memoria 803668 kbytes para el SQUID sin dejar espacio para otros procesos o files si se necesitara,  yo creo que seria por lo menos un 10% del total . claro de dependiendo de la cantidad de memoria.

no mi amigo, no es que vaya a usar todo, solo le estas indicando cuanto tienes disponible, ya que por defecto solo tiene asignado 65536, pero al tener esta cantidad no la usa, si no usa una bastante inferior, por ejemplo al usar 65536 lo mas que pude usar son 500, aparte de esto para usar mas threads aparte de compilarlo con mas threads tienes que cambiar el archivo de inicio que se encuentra en /etc/init.d/squid3 o /etc/init/squid3.conf y cambiar la parte de ulimit -n 65535 por alguna mayor, entonces al indicarle que tiene mas threads de donde utilizar si realmente puede llegar a utilizar los 65536, Saludos

monfi

Depende como lo quieras ver y como realmente te afectarare con el tiempo  hay muchos parametros sobre los que se puede
 trabajar, pero una cosa es Filedescriptors y otra distinta hilos (threads)

 lo mejor es saber las cosas como funcionan, y no es personal, lo hago en forma general como recomendacion

- una cosa es decir poseeo 803668 DE descriptores de archivos
 y otra es 803668 PARA descriptores de archivos he insistio es toda la memoria
- hay diferencia entre nro Conexiones , hilos, o procesos, y la cantidad de memoria disponible
 para manejar estos, dentro de algunos otros parametros que existen estos son los que sobresalen
- el maximo de file descriptors cat /proc/sys/fs/file-max  esta relacionada con la cantidad  de memoria RAM
 y buffer para cada archivo abierto y esta variable linux lo pone por defecto como toda la cantidad de memoria para que a partir de alli sea repartida por el administrador si desea a los usuarios, desarrolladores,aplicaciones, etc. en caso que desee , sino linux trabajara como tu dices por default.
- Otro es controlar o limitar procesos , hilos y otros parametros con ULIMIT y dependiendo a que usuario , en este caso
 tu lo limitas al root y al proxy.


desde ya gracias por las buenas intensiones : que pasaria si A fork bomb -- a denial of service attack  sino se establecieran bien las limitaciones

firecold

Cita de: monfi en Mayo 14, 2014, 04:34:45 PM
Depende como lo quieras ver y como realmente te afectarare con el tiempo  hay muchos parametros sobre los que se puede
 trabajar, pero una cosa es Filedescriptors y otra distinta hilos (threads)

 lo mejor es saber las cosas como funcionan, y no es personal, lo hago en forma general como recomendacion

- una cosa es decir poseeo 803668 DE descriptores de archivos
 y otra es 803668 PARA descriptores de archivos he insistio es toda la memoria
- hay diferencia entre nro Conexiones , hilos, o procesos, y la cantidad de memoria disponible
 para manejar estos, dentro de algunos otros parametros que existen estos son los que sobresalen
- el maximo de file descriptors cat /proc/sys/fs/file-max  esta relacionada con la cantidad  de memoria RAM
 y buffer para cada archivo abierto y esta variable linux lo pone por defecto como toda la cantidad de memoria para que a partir de alli sea repartida por el administrador si desea a los usuarios, desarrolladores,aplicaciones, etc. en caso que desee , sino linux trabajara como tu dices por default.
- Otro es controlar o limitar procesos , hilos y otros parametros con ULIMIT y dependiendo a que usuario , en este caso
 tu lo limitas al root y al proxy.


desde ya gracias por las buenas intensiones : que pasaria si A fork bomb -- a denial of service attack  sino se establecieran bien las limitaciones

Si mi amigo entiendo lo que dices, pero aqui hay un detalle, yo no he dicho en ningun momento que pongan todo lo que tienen, si no lo que consideren necesario, ejemplo en mi caso en ese momento tenia 8bg de ram, ahora poseo 16gb de ram, ahora poseo 1607336 threads, pero si ves en mi squid modificado solo uso:


Una cantidad no exagerada y decente pienso yo, explicare de una forma sencilla tus conceptos que por casualidad los encontre hace poco en http://www.debianhackers.net/ que es una de las paginas que leo:

Citar¿Qué es un proceso?

Primero que nada, vamos a tratar de entender qué es un proceso.

Un proceso, no es más que una parte de un programa que se está ejecutando. Técnicamente es un conjunto de instrucciones haciendo uso de un conjunto de recursos del sistema.

¿Qué son los recursos del sistema?

Cuando hablamos de recursos del sistema nos referimos a uso de memoria RAM, Swap, CPU, tiempo de ejecución, entre otros recursos menos relevantes

¿Qué es un thread (hilo)?

Un hilo (thread en inglés) es similar a un proceso en cuanto a que también representa un conjunto de instrucciones. Sin embargo, los hilos se diferencian enormemente de los procesos, paradójicamente, por la administración que hacen de los recursos del sistema.

Entonces que hago en este procedimiento a squid3, primero aumentar los hilos a squid3, para acelerar las respuestas, pero esto seria inutil si no se incrementa los hilos en --enable-async-io que permite recibir las respuestas de los hilos de squid que por defecto son 8, en mi caso los aumento a 128, los cuales se recomienda incrementar en cuantos mas cache_dir tengas, pero como dije si aumentas solo los hilos del proceso squid3 que recibe, responde y envia, entonces tambien aumentas los hilos que recibe, responde y envia respuesta al disco que son los --enable-async-io, aparte como sabras todo proceso esta identificado en el caso de squid, trabaja bajo el usuario proxy y solo tienen permiso el usuario proxy, por eso se re-compila para tener esa proteccion que el mismo paquete se provee, con permisos de usuario, PID y demas para cada uno de los procesos e hilos, asignandoles una memoria y limitando de una manera no muy inasiva para no provocar un fork bomb -- a denial of service attack, gracias amigo, creame es bueno tener en este foro a su persona, que considero muy conocedora de dicho tema, en mi caso yo estoy aprendiendo, pero disfruto aprender cada dia mas, y para responderle investigue, me asesore y le doy las gracias por concederme aprender mas, Saludos