Ajuste de los servicios del canal de transporte
Los servicios del canal de transporte gestionan las conexiones de cliente y el proceso de E/S para peticiones HTTP y JMS. Estos servicios de E/S se basan en las características de E/S de no bloqueo (NIO) que están disponibles en Java™. Estos servicios proporcionan una infraestructura, con grandes posibilidades de escalado, para el proceso de peticiones de WebSphere Application Server. La arquitectura basada en Java NIO tiene limitaciones en cuanto al rendimiento, escalabilidad y facilidad de uso del usuario final. Por lo tanto, se implementa la integración de E/S asíncrona verdadera. Esta implementación proporciona ventajas significativas en la facilidad de uso, reduce la complejidad del proceso de E/S y reduce esa cantidad de ajuste del rendimiento que tiene que realizar.
Acerca de esta tarea
- Escalabilidad, que permite al producto manejar muchas solicitudes simultáneas
- Proceso de peticiones asíncronas, que proporciona un tipo de correlación de muchos a uno de las peticiones de cliente con las hebras del contenedor web.
- Posibilidad de compartir y segregar recursos, que permite compartir agrupaciones de hebras entre el contenedor web y un servicio de mensajería
- Usabilidad mejorada
- Incorporación de funciones de ajuste y configuración autónomas
Si cambian los valores predeterminados de uno o más de los canales de transporte asociados a una cadena de transporte se puede mejorar el rendimiento de dicha cadena.

Procedimiento
- Ajuste de los valores del canal de transporte TCP En la consola
de administración, pulse Servidores >
Tipos de servidor > WebSphere Application Servers > nombre_servidor >
Puertos. A continuación, pulse Ver transportes asociados para el puerto correspondiente.
- Seleccione la cadena de transporte cuyas propiedades va a modificar.
- Pulse el canal de transporte TCP definido para dicha cadena.
- Disminuya el valor especificado para la propiedad Máximo de conexiones abiertas. Este parámetro controla el número máximo de conexiones disponibles que un servidor utilizará. Si deja este parámetro en el valor predeterminado, 20000, que es el número máximo de conexiones, puede provocar que los sitios web se paralicen en situaciones de anomalía, porque el producto continúa aceptando conexiones, y de este modo aumenta el registro de reserva de conexiones y el trabajo asociado. El valor predeterminado debe cambiarse por un número considerablemente más bajo, como 500, y después deben realizarse ajustes y pruebas adicionales para determinar el valor óptimo que debe especificar para el despliegue de una aplicación o un sitio web específico.
- Si se están cerrando conexiones sin se que se devuelvan datos al cliente, cambie el valor especificado para el parámetro de tiempo de espera excedido de inactividad. Este parámetro controla el número máximo de conexiones disponibles para uso de un servidor.
Tras recibir una conexión nueva, el canal de transporte TCP espera a que lleguen los
datos suficientes para asignar la conexión a los canales específicos del protocolo
por encima del canal de transporte TCP. Si durante el período de tiempo especificado para el parámetro de tiempo de espera excedido de inactividad no se reciben los datos suficientes, el canal de transporte TCP cierra la conexión.
El valor predeterminado para este parámetro es de 60 segundos. Este valor es adecuado para la mayor parte de las aplicaciones. Aumente el valor especificado para este parámetro si la carga de trabajo requiere muchas conexiones y no se puede dar servicio a todas ellas en 60 segundos.
Asigne una agrupación de hebras a un puerto HTTP específico. Cada canal de transporte TCP se asigna a una agrupación de hebras determinada. Las agrupaciones de hebras se pueden compartir entre uno o varios canales de transporte TCP al igual que con otros componentes. El valor predeterminado para un canal de transporte TCP consiste en asignar todo el tráfico basado en HTTP a la agrupación de hebras WebContainer y asignar el tráfico restante a la agrupación de hebras Default. Utilice el menú de lista Agrupación de hebras para asignar una agrupación de hebras determinada a cada canal de transporte TCP. El valor predeterminado de este parámetro consiste en asignar todo el tráfico basado en HTTP a la agrupación de hebras WebContainer y asignar el tráfico restante a la agrupación de hebras Default. En la información acerca de la colección de agrupaciones de hebras se describe cómo crear agrupaciones de hebras adicionales.
Ajuste el tamaño de las agrupaciones de hebras. De forma predeterminada, una agrupación de hebras puede tener un mínimo de 10 hebras y un máximo de 50 hebras. Para ajustar estos valores, pulse Agrupaciones de hebras >nombre_agrupación_hebras y ajuste los valores especificados para los parámetros de Tamaño mínimo y Tamaño máximo para esa agrupación de hebras.
Las aplicaciones típicas generalmente no necesitan más de 10 hebras por procesador. Una excepción es si hay alguna condición ajena al servidor, por ejemplo, si hay una petición de programa de fondo muy lenta que hace que la hebra del servidor deba esperar a que se complete la petición del programa de fondo. En tal caso, el uso de procesador suele ser bajo y aumentar la carga de trabajo no aumenta el rendimiento del procesador. Los vuelcos de memoria de hebras muestran prácticamente todas las hebras de una llamada al recurso de programa de fondo. Si se da esta condición y el programa de fondo está ajustado correctamente, intente aumentar el número mínimo de hebras de la agrupación hasta que observe mejoras de rendimiento y los vuelcos de memoria de hebras muestren hebras en otras áreas del tiempo de ejecución además de la llamada del programa de fondo.
El valor del parámetro Crecimiento según lo necesario se modifica a menos que el programa de fondo tenga tendencia a colgarse durante períodos de tiempo prolongados. Es posible que esta condición indique que todas las hebras del tiempo de ejecución se han bloqueado esperando el programa de fondo en lugar de pasar a procesar otro trabajo en el que no está implicado el programa de fondo que se ha colgado.
- Ajuste de los valores de canal de transporte HTTP En la consola
de administración, pulse Servidores >
Tipos de servidor > WebSphere Application Servers > nombre_servidor >
Puertos. A continuación, pulse Ver transportes asociados para el puerto correspondiente.
- Seleccione la cadena de transporte cuyas propiedades va a modificar.
- Pulse el canal de transporte HTTP definido para dicha cadena.
- Ajuste de mantener activa (keep-alive) HTTP.
El valor de Utilizar conexiones persistentes (activas) controla si las conexiones permanecen abiertas entre una solicitud y otra. Si se dejan abiertas las conexiones se puede ahorrar los costes de configurar y eliminar los sockets si la carga de trabajo tiene clientes que envían muchas peticiones. El valor predeterminado es true, que normalmente es el valor óptimo.
Si los clientes sólo envían solicitudes individuales a lo largo de períodos prolongados de tiempo, probablemente es mejor inhabilitar esta opción y cerrar las conexiones inmediatamente en lugar de hacer que el canal de transporte HTTP establezca el tiempo de espera para cerrar la conexión más tarde.
- Cambie el valor especificado para el parámetro de número máximo de peticiones persistentes de modo que se aumente el número de peticiones que pueden fluir a través de una conexión antes de cerrarla.
Cuando se ha habilitado la opción Utilizar conexiones persistentes, el parámetro Máximo de peticiones persistentes controla el número de peticiones que pueden fluir a través de una conexión antes de que se cierre. El valor predeterminado es 100. Este valor debe establecerse en un valor tal que la mayor parte de los clientes, si no todos, tengan siempre una conexión abierta cuando realizan varias solicitudes durante la misma sesión. Si este parámetro se establece en un valor correcto se evita la configuración y supresión innecesaria de sockets.
Para los escenarios de prueba en los cuales el cliente nunca está cerrado, un valor de -1 inhabilita el proceso que limita el número de solicitudes a través de una conexión única. El valor de tiempo de espera persistente hace que se cierren, de todos modos, los sockets desocupados e impide que se agoten los sockets abiertos en el servidor.
- Cambie el valor especificado para el parámetro Tiempo de espera persistente para aumentar el período de tiempo que se mantiene abierta una conexión antes de cerrarla debido a su inactividad. El parámetro Tiempo de espera persistente controla el período de tiempo que se mantiene abierta una conexión antes de cerrarla debido a que dicha no conexión no presenta ninguna actividad. El valor predeterminado es de 30 segundos. Este parámetro se establece en un valor que conserve abiertas el número de conexiones suficientes, de modo que la mayor parte de los clientes puedan tener disponible una conexión cuando deban realizar una petición.
- Si los clientes tienen problemas a la hora de completar una petición debido a que tardan más de 60 segundos en enviar los datos, cambie el valor especificado para el parámetro Tiempo de espera de lectura. Algunos clientes efectúan una pausa de más de 60 segundos mientras envían los datos como parte de una petición. Para garantizar que pueden completar sus peticiones, cambie el valor especificado para este parámetro a un período de tiempo en segundos que sea suficiente para que los clientes completen la transferencia de datos. Cuando cambie este valor, compruebe que continúa protegiendo el servidor de clientes que envían datos incompletos y, por lo tanto, consuman recursos (sockets) durante un período de tiempo excesivo.
- Si algunos de los clientes requieren más de 60 segundos en recibir los datos que se están grabando para ellos, cambie el valor especificado para el parámetro Tiempo de espera de grabación. Algunos clientes son lentos y requieren más de 60 segundos para recibir los datos que se les envía. Para garantizar que pueden obtener todos los datos, cambie el valor especificado para este parámetro en un período de tiempo en segundos que sea suficiente para poder recibir todos los datos. Cuando cambie este valor, compruebe que continúa protegiendo el servidor de clientes con malas intenciones.
- Ajuste los valores del canal de transporte del contenedor web. En la consola
de administración, pulse Servidores >
Tipos de servidor > WebSphere Application Servers > nombre_servidor >
Puertos. A continuación, pulse Ver transportes asociados para el puerto correspondiente.
- Seleccione la cadena de transporte cuyas propiedades deben modificarse.
- Pulse el canal de transporte del contenedor web definido para dicha cadena.
- Si para manejar las respuestas al cliente se necesitan varias grabaciones, cambie el valor especificado para el parámetro Tamaño del almacenamiento intermedio de grabación en un valor que sea más adecuado para los clientes. El parámetro Tamaño del almacenamiento intermedio de grabación
controla la cantidad máxima de datos por hebra que el contenedor web
guarda en el almacenamiento intermedio antes de enviar la petición para su
proceso. El valor predeterminado es de 32768 bytes, que es
suficiente para la mayor parte de las aplicaciones. Si el tamaño de una respuesta es mayor que el tamaño del almacenamiento intermedio de grabación, la respuesta se trunca y se vuelve a grabar en varias grabaciones TCP.
Si debe cambiar el valor especificado para este parámetro, asegúrese de que el nuevo valor permita que la mayor parte de las peticiones se graben en un solo proceso de grabación. Para determinar un valor adecuado para este parámetro, observe el tamaño de las páginas que se devuelven y añada algunos bytes adicionales para tener en cuenta las cabeceras HTTP.
- Ajuste los valores para el almacenamiento intermedio limitado.
Aunque los parámetros de almacenamiento intermedio limitado predeterminado son óptimos para la mayoría de los entornos, es posible que para mejorar el rendimiento desee cambiar los valores predeterminados en determinadas situaciones y para algunos sistemas operativos. La modificación de los parámetros de almacenamiento intermedio limitado puede reducir el rendimiento. Por lo tanto, asegúrese de ajustar las otras áreas relacionadas, como el contenedor web y las agrupaciones de hebras de ORB antes de decidir cambiar los parámetros de almacenamiento intermedio limitado.
Para cambiar los parámetros del almacenamiento intermedio limitado:
- En la consola administrativa, pulse Servidores > Tipos de servidor > Servidores de aplicaciones de WebSphere > nombre_servidor.
- En la sección Infraestructura del servidor, pulse Java y gestión de procesos > Definición de proceso > Máquina virtual Java.
- Pulse Propiedades personalizadas.
- Entre una de las siguientes propiedades personalizadas en el campo Nombre y un
valor adecuado en el campo Valor y pulse
Aplicar para guardar la propiedad
personalizada y su valor.
- com.ibm.ws.util.BoundedBuffer.spins_take=valor
Especifica el número de veces que una hebra de contenedor web puede intentar recuperar una petición del almacenamiento intermedio antes de suspenderla y ponerla en la cola. Este parámetro permite compensar el coste de realizar intentos de recuperación posiblemente no satisfactorios, con el coste de suspender una hebra y volver a activarla como respuesta a una operación put.
Información Valor Valor predeterminado: El número de procesadores disponibles para el sistema operativo menos 1. Recomendado: Utilice cualquier valor entero no negativo. En la práctica, si se utiliza un entero de 2 a 8 se consiguen los mejores resultados de rendimiento. Uso: com.ibm.ws.util.BoundedBuffer.spins_take=6. Se realizan seis intentos antes de suspender la hebra. - com.ibm.ws.util.BoundedBuffer.yield_take=true o false
Especifica que una hebra desvíe el procesador hacia otras hebras una vez que se ha alcanzado un número establecido de intentos de obtener una petición del almacenamiento intermedio. En general, es preferible un número de intentos bajo.
Información Valor Valor predeterminado: false Recomendado: El efecto del desvío es específico de la implementación para plataformas individuales. Uso: com.ibm.ws.util.BoundedBuffer.spins_take=valor booleano - com.ibm.ws.util.BoundedBuffer.spins_put=valor
Especifica el número de intentos que realiza una hebra InboundReader para colocar una petición en el almacenamiento intermedio antes de suspenderla y ponerla en la cola. Utilice este valor para compensar entre el coste que suponen los intentos repetidos, posiblemente no satisfactorios, de poner una petición en el almacenamiento intermedio y el conste de suspender una hebra y volver a activarla como respuesta a una operación de obtención.
Información Valor Valor predeterminado: El valor de com.ibm.ws.util.BoundedBuffer.spins_take dividido por 4. Recomendado: Utilice cualquier valor entero no negativo. En la práctica, un entero entre 2 y 8 presenta los mejores resultados de rendimiento. Uso: com.ibm.ws.util.BoundedBuffer.spins_put=6. Se realizan seis intentos antes de suspender la hebra. - com.ibm.ws.util.BoundedBuffer.yield_put=true o false
Especifica que una hebra desvíe el procesador hacia otras hebras una vez que se ha alcanzado un número establecido de intentos de colocar una petición en el almacenamiento intermedio. En general, es preferible un número de intentos bajo.
Información Valor Valor predeterminado: false Recomendado: El efecto del desvío es específico de la implementación para plataformas individuales. Uso: com.ibm.ws.util.BoundedBuffer.yield_put=valor booleano - com.ibm.ws.util.BoundedBuffer.wait=número de milisegundos
Especifica el periodo máximo de tiempo, en milisegundos, que una petición puede retrasarse innecesariamente si el almacenamiento intermedio está completamente lleno o si está vacío.
Información Valor Valor predeterminado: 10000 milisegundos Recomendado: El valor de 10000 milisegundos normalmente funciona bien. En contadas ocasiones, cuando el almacenamiento intermedio pasa a estar lleno o vacío, un valor más pequeño garantiza un manejo correcto de las peticiones, aunque al utilizar un valor más pequeño en general se produce un impacto en el rendimiento. Uso: com.ibm.ws.util.BoundedBuffer.wait=8000. Una petición se puede retardar innecesariamente hasta 8000 milisegundos.
- com.ibm.ws.util.BoundedBuffer.spins_take=valor
- Pulse Aplicar y, a continuación, pulse Guardar para guardar estos cambios.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprf_tunechain
File name: tprf_tunechain.html