Re: squid y reducir sus 18 hijos!!!

2000-02-11 Por tema Jesus M. Gonzalez-Barahona
Antonio Castro writes:
  [...]
  Entonces tendriamos que ordenados por pesos estarían en primer lugar
  los procesos implementados en Windows, luego los procesos implementados
  en Linux, después los threads de Linux, y lo más ligero de todo creo que 
  serían los threads de Windows.
  

Pues no pillo de dónde sacas esa conclusión. Primero habría
que definir pesado con algo más de exactitud. Una definición podría
ser algo así como es más pesado cuanto más largo es el cambio de
contexto (el paso de ejecutar en la CPU un proceso a ejecutar
otro). Y en ese caso, medir lo que se tarde en ese cambio de contexto
en cada uno de los casos.

Como no tengo datos al respecto, no puedo decir si la
clasificación que pones es más o menos cierta o no...

  En realidad me gusta más la palabra procesos ligeros que threads para el 
  caso de Linux. 

Procesos ligeros hace referencia a que son procesos más
ligeros que los normales en el sentido de que tienen menos
contexto, y por lo tanto los cambios son más rápidos. Threads
(hilos, hebras) hace referencia a que son unidades de ejecución, 
esto es, son planificados por el planificador de la CPU. De hecho, los 
procesos tradicionales suelen considerarse como de una hebra. En
los sitemas con threads lo que ocurre es que un proceso normal puede 
tener en realidad varias hebras, varios flujos de ejecución.

  
  Para mi si tienen PID distintos, deberían llamarse procesos. 
  

Esto es relativamente poco relevante. Cada thread siempre
tiene algún identificador, que puede ser o no un PID, dependiendo
normalmente de la implementación. Como en Linux están implementados
con clone (como ya ha comentado alguien), que funciona hasta cierto
punto de forma (relativamente) análoga al fork, se usan PID como
identificadores.

Hala, ya está bien por hoy. Que voy a parecer un profesor de
esos que dan clases... ;-)

Saludos,

Jesus.

-- 
Jesus M. Gonzalez Barahona| Grupo de Sistemas y Comunicaciones
[EMAIL PROTECTED] / [EMAIL PROTECTED] | ESCET, Universidad Rey Juan Carlos 
tel: +34 91 664 74 72 | c/ Tulipan s/n
fax: +34 91 664 74 90 | 28933 Mostoles, Spain


Re: squid y reducir sus 18 hijos!!!

2000-02-11 Por tema Hue-Bond
El viernes 11 de febrero de 2000 a la(s) 11:54:19 +0100, Jesus M. 
Gonzalez-Barahona contaba:

   Hala, ya está bien por hoy. Que voy a parecer un profesor de
esos que dan clases... ;-)

 Pues ten por seguro que muchos nos alegraríamos :^).


[EMAIL PROTECTED]
[EMAIL PROTECTED]

-- 
 Just do it.

David Serrano [EMAIL PROTECTED]Linux 2.2.14 - Reg. User #87069
lynx -dump http://www.ctv.es/USERS/fserrano/pgp_dsspubkey.asc | gpg --import -
Hi! I'm a .signature virus!  Copy me into your ~/.signature to help me spread!


pgpyaOk56k0bC.pgp
Description: PGP signature


Re: squid y reducir sus 18 hijos!!!

2000-02-10 Por tema hcl
El Tue, Feb 08, 2000 at 02:40:21PM +0100, Antonio Castro dijo:
 On Mon, 7 Feb 2000, Hue-Bond wrote:
 
  El s=E1bado 05 de febrero de 2000 a la(s) 22:56:37 +0100, Manel Marin conta=
  ba:
  
  Pues que estoy configurando el squid (prometo chuleta ;-)
   y me encuentro que se me come una barbaridad de RAM (tengo 32MBytes) con =
  sus
   18 hijos!!!
  
   Pero si son 18 hijos y ocupan  cada uno 20 Mb (en mi equipo) es
   evidente  que  estan compartiendo  la  memoria.  Supongo que  algun
   programador nos podra hablar un rato de ello.
  []


Solo quiero añadir una cosa a lo que explicó Manuel  sobre  los  procesos. 
 Que si los procesos se crearon como un thread y no con  fork()  los  procesos 
 ademas  del  segmento  de  codigo,  comparte  completamente  el   de   datos. 

Podría ser el caso, dado el consumo  de  memoria  que  tiene  el  programa 
 quizas el autor halla optado por usar threads en vez de  clonar  el  servidor 
 con un fork().


 Un saludo.

-- 

  ______ _ ___
 /  /\  /  //  __//  /\
/  /_/_/  //  /\ /  / /
   /     //  /_/___ /  /_/__
  /_ /\__/_ /////\
  \__\/  \__\\\\\/



Re: squid y reducir sus 18 hijos!!!

2000-02-10 Por tema Antonio Castro
On Thu, 10 Feb 2000, hcl wrote:

 El Tue, Feb 08, 2000 at 02:40:21PM +0100, Antonio Castro dijo:
  On Mon, 7 Feb 2000, Hue-Bond wrote:
  
   El s=E1bado 05 de febrero de 2000 a la(s) 22:56:37 +0100, Manel Marin 
   conta=
   ba:
   
   Pues que estoy configurando el squid (prometo chuleta ;-)
y me encuentro que se me come una barbaridad de RAM (tengo 32MBytes) 
con =
   sus
18 hijos!!!
   
Pero si son 18 hijos y ocupan  cada uno 20 Mb (en mi equipo) es
evidente  que  estan compartiendo  la  memoria.  Supongo que  algun
programador nos podra hablar un rato de ello.
   []
 
 
 Solo quiero añadir una cosa a lo que explicó Manuel  sobre  los  
 procesos. 
  Que si los procesos se crearon como un thread y no con  fork()  los  
 procesos 
  ademas  del  segmento  de  codigo,  comparte  completamente  el   de   
 datos. 
 
 Podría ser el caso, dado el consumo  de  memoria  que  tiene  el  
 programa 
  quizas el autor halla optado por usar threads en vez de  clonar  el  
 servidor 
  con un fork().

Los threads generan procesos ? Estamos hablando de procesos con distinto PID.

Que alguien me aclare si los trheads en Linux generan procesos con PIDs 
distintos yo jamás he programado con threads pero tenía entendido que la
única forma de generar un nuevo proceso era mediante fork().

Los trheads pensaba que eran hilos de ejecución distintos en paralelo dentro
de un mismo proceso.

Saludos 

Antonio

 
 
  Un saludo.
 
 -- 
 
   ______ _ ___
  /  /\  /  //  __//  /\
 /  /_/_/  //  /\ /  / /
/     //  /_/___ /  /_/__
   /_ /\__/_ /////\
   \__\/  \__\\\\\/
 
 
 
 --  
 Unsubscribe?  mail -s unsubscribe [EMAIL PROTECTED]  /dev/null
 
 

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/\ /\ Ciberdroide Informatica (tienda linux)
  \\W// http://www.ciberdroide.com 
 _|0 0|_
+-oOOO--(___o___)--OOOo--+ 
|  . . . . U U . . . . Antonio Castro Snurmacher |  
| http://slug.ctv.es/~acastro.[EMAIL PROTECTED] | 
+()()()--()()()--+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
(((Donde Linux)))http://www.ciberdroide.com/misc/donde/dondelinux.html
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


Re: squid y reducir sus 18 hijos!!!

2000-02-10 Por tema Jesus M. Gonzalez-Barahona

Cada thread Linux (esto es, cada thread montado sobre
LinuxThreads) tiene un PID (identificador de proceso) distinto.

Por ejemplo, aquí tienes la salida de ps para un programa con 
varios threads:

cacharro(jgb)-jgb ps af
  PID TTY STAT TIME COMMAND
  441  p4 S0:00 bash 
  462  p4 S1:03  \_ xemacs 
  541  p4 S0:00  \_ ./example_chat2 
  542  p4 S0:00  \_ ./example_chat2 
  543  p4 S0:00  \_ ./example_chat2 

Puedes ver que tengo una bash, desde la que lanzo un xemacs y
también un example_chat2. Ese programa, a su vez, genera varios
threads (procesos ligeros, que comparten el mismo espacio de
direcciones, y por tanto, la misma memoria, descriptores de
dispositivos, etc.), que son los de PID 542 y 543.

En Unix (y en Linux también) cada proceso tiene su propio
espacio de direcciones. Para pasar de un proceso a otro, el kernel ha
de realizar un cambio de contexto, que es una operación
relativamente costosa (hay que cambiar dominios de protección, hacer
flush de los bloques de registros del procesador, y algunas cosas
más). Para poder hacer esos cambios de contexto más rápidamente, se
usan threads. Los threads son simplemente actividades o hilos de
control que comparten los recursos de un proceso. Como usan la misma
memoria, etc, no hay que hacer esas operaciones costoas para hacer el
cambio de un thread a otro, y el cambio es mucho más ligero (y
rápido). A veces los threads se implementan en el kernel (es el caso
de Linux con LinuxThreads), y en ese caso es relativamente habitual
darle a cada thread un PID distinto.

No sé si esto queda algo más claro...

Que sea leve,

Jesus.

Antonio Castro writes:
  [...]
  Los threads generan procesos ? Estamos hablando de procesos con distinto PID.
  
  Que alguien me aclare si los trheads en Linux generan procesos con PIDs 
  distintos yo jamás he programado con threads pero tenía entendido que la
  única forma de generar un nuevo proceso era mediante fork().
  
  Los trheads pensaba que eran hilos de ejecución distintos en paralelo dentro
  de un mismo proceso.
  
  Saludos 

-- 
Jesus M. Gonzalez Barahona | Universidad Rey Juan Carlos
[EMAIL PROTECTED] | ESCET
[EMAIL PROTECTED]   | c/ Tulipan s/n
Grupo de Sistemas y Comunicaciones | 28933 Mostoles, Spain


Re: squid y reducir sus 18 hijos!!!

2000-02-09 Por tema Hue-Bond
El martes 08 de febrero de 2000 a la(s) 14:40:21 +0100, Antonio Castro contaba:

las partes que se pueden compartir se comparten
para ahorrar memoria. Esto pasa con el area que contiene el c?digo del
programa. No se produce duplicaci?n en memoria de esta informaci?n.

 De acuerdo contigo. Lo que no me concuerda es:

USER   PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
proxy  232  0.0 10.0 19728 12912  ?  S   Jan 27   5:48 squid -D -sNY 
proxy  233  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  234  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  235  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  236  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  237  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  238  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  239  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  240  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  241  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  242  0.0 10.0 19728 12912  ?  S   Jan 27   0:01 squid -D -sNY 
proxy  243  0.0 10.0 19728 12912  ?  S   Jan 27   0:01 squid -D -sNY 
proxy  244  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
proxy  245  0.0 10.0 19728 12912  ?  S   Jan 27   0:01 squid -D -sNY 
proxy  246  0.0 10.0 19728 12912  ?  S   Jan 27   0:01 squid -D -sNY 
proxy  247  0.0 10.0 19728 12912  ?  S   Jan 27   0:01 squid -D -sNY 
proxy  248  0.0 10.0 19728 12912  ?  S   Jan 27   0:01 squid -D -sNY 
proxy  249  0.0 10.0 19728 12912  ?  S   Jan 27   0:01 squid -D -sNY 

 Los 19.728 Kb no pueden ser de código, y si son de datos, ¿para
 qué hacen falta tantos procesos?


[EMAIL PROTECTED]

-- 
 Just do it.

David Serrano [EMAIL PROTECTED]Linux 2.2.14 - Reg. User #87069
lynx -dump http://www.ctv.es/USERS/fserrano/pgp_dsspubkey.asc | gpg --import -
Hi! I'm a .signature virus!  Copy me into your ~/.signature to help me spread!


pgpx9D3C6C7HN.pgp
Description: PGP signature


Re: squid y reducir sus 18 hijos!!!

2000-02-09 Por tema Fernando Dura
Hola,

[EMAIL PROTECTED] said:
  De acuerdo contigo. Lo que no me concuerda es:
 USER  PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
proxy  232  0.0 10.0 19728 12912  ?  S   Jan 27   5:48 squid -D -sNY 
proxy  233  0.0 10.0 19728 12912  ?  S   Jan 27   0:00 squid -D -sNY 
 . . . 
  Los 19.728 Kb no pueden ser de código, y si son de datos,
 ¿para qué hacen falta tantos procesos?

Yo diría que lo que ocurre es que has instalado un Squid que venía 
compilado con la opción de --enable-async-io habilitada. Esta opción 
lo que hace es que el proceso principal lance una serie de threads 
para que se ocupen de la Entrada/Salida a disco (el cuello de botella 
básico de un proxy de web ... junto con la memoria :-) mientras que él 
queda libre para atender las peticiones de clientes. Se mejora la E/S 
y, a cambio, consume más CPU que en el modo normal (sin la opción 
async-io)

Deben estar compartiendo memoria todos ellos, o sea que no creo que sea 
grave.

Creo que puedes controlar el número de threads que se lanzan, pero solo 
en tiempo de compilación y si tienes un squid 2.3.
Otra cosa es que sea conveniente o no el tener habilitada esa opción. 
Tengo entendido que, salvo que tengas una carga MUY fuerte de E/S, no 
es conveniente habilitar la opción en Linux. En el FAQ del Squid se 
comenta el tema, concretamente en:

   http://www.si.uniovi.es/mirror/squid/Doc/FAQ/FAQ-19.html#ss19.5

(por cierto, si no tienes el espacio de caché repartido en varios 
discos, preferentemente SCSI, tampoco creo que obtengas ninguna mejora 
con el uso del async-io)

Para deshabilitarlo, tendrías que recompilar el squid, sin usar la 
opción --enable-async-io en el configure.

Saludos
-- 
Fernando Durá Colomina  | e-mail: [EMAIL PROTECTED]
Servei d'Informatica; Univ. de Valencia |Tel: +34 96 3864310
E-46100 Burjassot (Valencia) SPAIN  |Fax: +34 96 3864200


Re: squid y reducir sus 18 hijos!!!

2000-02-08 Por tema Antonio Castro
On Mon, 7 Feb 2000, Hue-Bond wrote:

 El s=E1bado 05 de febrero de 2000 a la(s) 22:56:37 +0100, Manel Marin conta=
 ba:
 
 Pues que estoy configurando el squid (prometo chuleta ;-)
  y me encuentro que se me come una barbaridad de RAM (tengo 32MBytes) con =
 sus
  18 hijos!!!
 
  Pero si son 18 hijos y ocupan  cada uno 20 Mb (en mi equipo) es
  evidente  que  estan compartiendo  la  memoria.  Supongo que  algun
  programador nos podra hablar un rato de ello.

La estructura exacta de un proceso en Linux  no la conozco pero lo
que si te puedo decir es que un proceso tiene varias zonas de memoria
mapeadas de forma que las partes que se pueden compartir se comparten
para ahorrar memoria. Esto pasa con el area que contiene el código del
programa. No se produce duplicación en memoria de esta información.
Las variables de lectura escritura por ejemplo estarán en 
otra zona que no estariá compartida. Los procesos no acceden a memoria
directamente sino que el kernel les asigna espacios de direcciones que
son mapeados en memoria real de acuerdo a unas determinadas políticas
establecidas en el kernel. Además el rango de direcciones disponibles
ofrecido por el kernel supera el valor de la RAM física gracias a la 
exiestencia de una memoria de disco swap. A todo ello se le llama modelo 
de memoria virtual.

Entre procesos que ejecutan programas distintos también se comparte memoria 
ya que se suelen usar librerias dinámicas compartidas y esto consigue aún
mayor ahorro de memoria.

Si me he equivocado en algo que alguien me corrija.

 [EMAIL PROTECTED]
 
 --=20
  Just do it.
 
 David Serrano [EMAIL PROTECTED]Linux 2.2.14 - Reg. User #87=
 069
 lynx -dump http://www.ctv.es/USERS/fserrano/pgp_dsspubkey.asc | gpg --impor=
 t -
 Hi! I'm a .signature virus!  Copy me into your ~/.signature to help me spre=
 ad!
 

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/\ /\ Ciberdroide Informatica (tienda linux)
  \\W// http://www.ciberdroide.com 
 _|0 0|_
+-oOOO--(___o___)--OOOo--+ 
|  . . . . U U . . . . Antonio Castro Snurmacher |  
| http://slug.ctv.es/~acastro.[EMAIL PROTECTED] | 
+()()()--()()()--+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
(((Donde Linux)))http://www.ciberdroide.com/misc/donde/dondelinux.html
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


Re: squid y reducir sus 18 hijos!!!

2000-02-08 Por tema Ricard Pillosu
On Tue, Feb 08, 2000 at 02:40:21PM +0100, Antonio Castro wrote:
 On Mon, 7 Feb 2000, Hue-Bond wrote:
 
  El s=E1bado 05 de febrero de 2000 a la(s) 22:56:37 +0100, Manel Marin conta=
  ba:
  
  Pues que estoy configurando el squid (prometo chuleta ;-)
   y me encuentro que se me come una barbaridad de RAM (tengo 32MBytes) con =
  sus
   18 hijos!!!
  
   Pero si son 18 hijos y ocupan  cada uno 20 Mb (en mi equipo) es
   evidente  que  estan compartiendo  la  memoria.  Supongo que  algun
   programador nos podra hablar un rato de ello.
 
 
Digo yo que no se podría hacer que squid lo hiciera todo desde un usuario y 
limitar la cantidad de cpu i memoria que puede usar ese usuario mediante los 
archivos limits o pam ???


__
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com


squid y reducir sus 18 hijos!!!

2000-02-07 Por tema Manel Marin
Hola a todos,

Pues que estoy configurando el squid (prometo chuleta ;-)
 y me encuentro que se me come una barbaridad de RAM (tengo 32MBytes) con sus
 18 hijos!!!

Me he leido el archivo de configuración entero (¡¡¡toooreeero!!!) y no aparece

¿Como demonios le reduzco los hijos?


Saludos,
-- 
-
Manel Marin   e-mail: [EMAIL PROTECTED]
Linux Powered (Debian 2.1 slink)  kernel 2.2.13

Mira mis chuletas de Linux en  http://perso.wanadoo.es/manel3
-
Mi petición de drivers para Linux es la nº 33126
 (Pasate por http://www.libranet.com/petition.html ;-)


Re: squid y reducir sus 18 hijos!!!

2000-02-07 Por tema Hue-Bond
El sábado 05 de febrero de 2000 a la(s) 22:56:37 +0100, Manel Marin contaba:

Pues que estoy configurando el squid (prometo chuleta ;-)
 y me encuentro que se me come una barbaridad de RAM (tengo 32MBytes) con sus
 18 hijos!!!

 Pero si son 18 hijos y ocupan  cada uno 20 Mb (en mi equipo) es
 evidente  que  estan compartiendo  la  memoria.  Supongo que  algun
 programador nos podra hablar un rato de ello.


[EMAIL PROTECTED]

-- 
 Just do it.

David Serrano [EMAIL PROTECTED]Linux 2.2.14 - Reg. User #87069
lynx -dump http://www.ctv.es/USERS/fserrano/pgp_dsspubkey.asc | gpg --import -
Hi! I'm a .signature virus!  Copy me into your ~/.signature to help me spread!


pgpNvx5eaYsOm.pgp
Description: PGP signature


Re: squid y reducir sus 18 hijos!!!

2000-02-07 Por tema Tito Sam
El Sat, Feb 05, 2000 at 10:56:37PM +0100, Manel Marin dijo:
 Hola a todos,
 
 Pues que estoy configurando el squid (prometo chuleta ;-)
  y me encuentro que se me come una barbaridad de RAM (tengo 32MBytes) con sus
  18 hijos!!!
 
 Me he leido el archivo de configuración entero (¡¡¡toooreeero!!!) y no aparece
 
 ¿Como demonios le reduzco los hijos?

la verdad es que no se eso exactamente, aunque supongo  que  si  le  dices 
 que use un maximo de ram, el comprendera que no puede 'pocrear' tanto

por cierto, ¿como se hace que el squid haga de cache offline?, es  que  me 
 veo poniendo el wwwofre (o algo asi...), porque en cuanto  me  desconecto  de 
 internet me empieza a cantar que no hay dns, tal y tal

ta'luego

-- 
 /--\
| Miembro de LIMA (Linux Malaga) |
|  (güeno, más o menos)  |
| http://lima.telenet.es |
 \--/
 /  rebeldin es un i486 con   \
| Debian Linux 2.?,Kernel 2.2.13 |
 \--/