home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F278420_worker.xml.es < prev    next >
Extensible Markup Language  |  2004-05-18  |  10KB  |  203 lines

  1. <?xml version="1.0"?>
  2. <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
  3. <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
  4. <!-- Revision: 1.8.2.10  -->
  5.  
  6. <!--
  7.  Copyright 2004 The Apache Software Foundation
  8.  
  9.  Licensed under the Apache License, Version 2.0 (the "License");
  10.  you may not use this file except in compliance with the License.
  11.  You may obtain a copy of the License at
  12.  
  13.      http://www.apache.org/licenses/LICENSE-2.0
  14.  
  15.  Unless required by applicable law or agreed to in writing, software
  16.  distributed under the License is distributed on an "AS IS" BASIS,
  17.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18.  See the License for the specific language governing permissions and
  19.  limitations under the License.
  20. -->
  21.  
  22. <modulesynopsis metafile="worker.xml.meta">
  23. <name>worker</name>
  24. <description>Módulo de MultiProcesamiento que implementa un
  25. servidor web híbrido multihebra-multiproceso</description>
  26. <status>MPM</status>
  27. <sourcefile>worker.c</sourcefile>
  28. <identifier>mpm_worker_module</identifier>
  29.  
  30. <summary>
  31.     <p>Este Módulo de MultiProcesamiento (MPM) implementa un
  32.     servidor híbrido multiproceso-multihebra.  Usando hebras para
  33.     atender peticiones, el servidor puede servir un mayor número
  34.     de peticiones con menos recursos de sistema que un servidor basado
  35.     únicamente en procesos. No obtante, se mantiene casi por
  36.     completo la estabilidad de un servidor basado en procesos
  37.     manteniendo la capacidad multiproceso, pudiendo cada proceso tener
  38.     muchas hebras.</p>
  39.  
  40.     <p>Las directivas más importantes que se usan para controlar
  41.     este MPM son <directive
  42.     module="mpm_common">ThreadsPerChild</directive>, que controla el
  43.     número de hebras que tiene cada proceso hijo y <directive
  44.     module="mpm_common">MaxClients</directive>, que controla el
  45.     número máximo de hebras que pueden crearse.</p>
  46. </summary>
  47. <seealso><a href="../bind.html">Especificar las direcciones y los
  48. puertos que usa Apache</a></seealso>
  49.  
  50. <section id="how-it-works"><title>Cómo funciona</title> <p>Un
  51.     solo proceso de control (el padre) es el responsable de crear los
  52.     procesos hijo. Cada proceso hijo crea un número fijo de
  53.     hebras del servidor de la forma que se especifica en la directiva
  54.     <directive module="mpm_common">ThreadsPerChild</directive>,
  55.     así como una hebra de escucha que escuchará si se
  56.     producen peticiones y las pasará a una hebra del servidor
  57.     para que la procese.</p>
  58.  
  59.     <p>Apache siempre intenta mantener en reserva cierto número
  60.     de hebras <dfn>de sobra</dfn> o en espera, que están
  61.     preparadas para servir peticiones en el momento en que
  62.     lleguen. Así, los clientes no tienen que esperar a que se
  63.     creen nuevas hebras o procesos para que sean atendidas sus
  64.     peticiones. El número de procesos que se crean al principio
  65.     está determinado por la directiva <directive
  66.     module="mpm_common">StartServers</directive>. Después durante
  67.     el funcionamiento del servidor, Apache calcula el número
  68.     total de hebras en espera entre todos los procesos, y crea o
  69.     elimina procesos para mantener ese número dentro de los
  70.     límites especificados en las directivas <directive
  71.     module="mpm_common">MinSpareThreads</directive> y <directive
  72.     module="mpm_common">MaxSpareThreads</directive>. Como este proceso
  73.     está bastante autorregulado, no es muy habitual que sea
  74.     necesario modificar los valores que estas directivas traen por
  75.     defecto. El número máximo de clientes que pueden ser
  76.     servidos simultáneamente (por ejemplo, el número
  77.     máximo de hebras entre todos los procesos) está
  78.     determinado por la directiva <directive
  79.     module="mpm_common">MaxClients</directive>.  El número
  80.     máximo de procesos hijo activos está determinado por el
  81.     valor especificado en la directiva <directive
  82.     module="mpm_common">MaxClients</directive> dividido por el valor
  83.     especificado en la directiva <directive module="mpm_common">
  84.     ThreadsPerChild</directive>.</p>
  85.  
  86.     <p>Hay dos directivas que establecen límites estrictos al
  87.     número de procesos hijo activos y al número de hebras
  88.     del servidor en un proceso hijo, y puede cambiarse solo parando
  89.     completamente el servidor y volviendo a iniciarlo. La directiva
  90.     <directive module="mpm_common">ServerLimit </directive> marca el
  91.     límite estricto de procesos hijo activos posibles, y debe ser
  92.     mayor o igual al valor de la directiva <directive
  93.     module="mpm_common">MaxClients</directive> dividido por el valor
  94.     de la directiva <directive module="mpm_common">
  95.     ThreadsPerChild</directive>.  El valor de la directiva <directive
  96.     module="mpm_common">ThreadLimit</directive> es el límite
  97.     estricto del número de hebras del servidor, y debe ser mayor
  98.     o igual al valor de la directiva <directive
  99.     module="mpm_common">ThreadsPerChild</directive>.  Si los valores
  100.     de esas directivas no son los que vienen por defecto, deben
  101.     aparecer antes que el resto de directivas del módulo
  102.     <module>worker</module>.</p>
  103.  
  104.     <p>Además del conjunto de procesos hijo activos, puede haber
  105.     otros procesos hijo que están terminando pero en los que al
  106.     menos una hebra del servidor está todavía tratando una
  107.     conexión con un cliente.  Puede haber hasta <directive
  108.     module="mpm_common">MaxClients</directive> procesos terminando,
  109.     aunque el número real de estos procesos que puede esperarse
  110.     es mucho menor. Este comportamiento puede evitarse desactivando la
  111.     eliminación individual de procesos hijo, lo que se hace de la
  112.     siguiente manera:</p>
  113.  
  114.     <ul>
  115.       <li>fijar el valor de la directiva <directive module="mpm_common">
  116.       MaxRequestsPerChild</directive> a cero</li>
  117.  
  118.       <li>fijar el valor de la directiva <directive
  119.       module="mpm_common"> MaxSpareThreads</directive> al mismo valor
  120.       que la directiva <directive
  121.       module="mpm_common">MaxClients</directive></li>
  122.     </ul>
  123.  
  124.     <p>Una configuración típica del sistema de control de
  125.     procesos y hebras del módulo de MPM <module>worker</module>
  126.     prodría ser como sigue:</p>
  127.  
  128.     <example>
  129.       ServerLimit         16<br />
  130.       StartServers         2<br />
  131.       MaxClients         150<br />
  132.       MinSpareThreads     25<br />
  133.       MaxSpareThreads     75<br />
  134.       ThreadsPerChild     25
  135.     </example>
  136.  
  137.     <p>Mientras que el proceso padre se inicia con privilegios de
  138.     usuario <code>root</code> en Unix para usar el puerto de escucha
  139.     80, los procesos hijo y las hebras se inician con menores
  140.     privilegios de usuario. Las directivas <directive
  141.     module="mpm_common">User</directive> y <directive
  142.     module="mpm_common">Group</directive> se usan para determinar los
  143.     privilegios con los que se iniciarán los procesos hijo. Los
  144.     procesos hijo deben ser capaces de leer los contenidos que van a
  145.     servir, pero solo los permisos extrictamente necesarios para
  146.     cumplir su tarea. Además. a menos que se use <a
  147.     href="../suexec.html">suexec</a>, los privilegios fijados en estas
  148.     directivas son los que que van a heredar los scripts CGI.</p>
  149.  
  150.     <p>La directiva <directive
  151.     module="mpm_common">MaxRequestsPerChild</directive> controla con
  152.     qué frecuencia el servidor recicla los procesos eliminando
  153.     los antiguos y creando nuevos.</p>
  154. </section>
  155.  
  156. <directivesynopsis location="mpm_common"><name>AcceptMutex</name>
  157. </directivesynopsis>
  158. <directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
  159. </directivesynopsis>
  160. <directivesynopsis location="mpm_common"><name>EnableExceptionHook</name>
  161. </directivesynopsis>
  162. <directivesynopsis location="mpm_common"><name>Group</name>
  163. </directivesynopsis>
  164. <directivesynopsis location="mpm_common"><name>PidFile</name>
  165. </directivesynopsis>
  166. <directivesynopsis location="mpm_common"><name>Listen</name>
  167. </directivesynopsis>
  168. <directivesynopsis location="mpm_common"><name>ListenBacklog</name>
  169. </directivesynopsis>
  170. <directivesynopsis location="mpm_common"><name>LockFile</name>
  171. </directivesynopsis>
  172. <directivesynopsis location="mpm_common"><name>MaxClients</name>
  173. </directivesynopsis>
  174. <directivesynopsis location="mpm_common"><name>MaxMemFree</name>
  175. </directivesynopsis>
  176. <directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
  177. </directivesynopsis>
  178. <directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
  179. </directivesynopsis>
  180. <directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
  181. </directivesynopsis>
  182. <directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
  183. </directivesynopsis>
  184. <directivesynopsis location="mpm_common"><name>SendBufferSize</name>
  185. </directivesynopsis>
  186. <directivesynopsis location="mpm_common"><name>ServerLimit</name>
  187. </directivesynopsis>
  188. <directivesynopsis location="mpm_common"><name>StartServers</name>
  189. </directivesynopsis>
  190. <directivesynopsis location="mpm_common"><name>ThreadLimit</name>
  191. </directivesynopsis>
  192. <directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
  193. </directivesynopsis>
  194. <directivesynopsis location="mpm_common"><name>User</name>
  195. </directivesynopsis>
  196.  
  197. </modulesynopsis>
  198.  
  199.  
  200.  
  201.  
  202.  
  203.