Ответ 1
Из документации (http://download.oracle.com/docs/cd/E13222_01/wls/docs100/perform/WLSTuning.html#wp1152246):
WebLogic Server использует программные модули называемые мультиплексоры для чтения входящих запросы на сервере и входящие ответы на клиента. Эти мультиплексоры имеют два основных типа: Java мультиплексор или собственный мультиплексор.
В мультии Java есть следующее характеристики:
- Использует чистую Java для чтения данных из сокетов.
- Он также является единственным мультиплеером, доступным для клиентов RMI.
- Блокирует чтение до тех пор, пока не будут прочитаны данные из сокета. Такое поведение плохо масштабируется, когда имеется большое количество сокетов и/или когда данные поступают нечасто в розетках. Обычно это не проблема для клиентов, но она может создать огромное узкое место для сервера.
Нативные мультиплексоры используют платформу родные двоичные файлы для чтения данных из Розетки. Большинство платформ предоставить некоторый механизм для опроса сокет для данных. Например, Unix системы используют систему опроса и Архитектура Windows использует завершение порты. Родные обеспечивают превосходные масштабируемости, поскольку они реализуют неблокирующая модель потока. Когда используется собственный мультиплексор, сервер создает фиксированное количество потоков посвященный чтению входящих Запросы. BEA рекомендует использовать настройка по умолчанию для
Enable Native IO
, который позволяет серверу автоматически выбирает соответствующий мультиплексор для сервера для использования.Если параметр
Enable Native IO
не выбран, экземпляр сервера исключительно использует Java-муксер. Эта возможно, приемлемо, если есть небольшой количество клиентов и запросы, которые поступают на сервер, довольно высокая. В этих условиях, Java-мультиплексор выполняет так же, как и собственный мультиплексор и исключить Java Native Интерфейс (JNI). В отличие от родные мультиплексоры, количество потоков используемый для чтения запросов не является фиксированным и настраивается для Java-мультиплексоров настройкаPercent Socket Readers
параметр в Консоль администрирования. См. Изменение Число доступных гнезд Читатели. В идеале вы должны настроить этот параметр, чтобы число нити примерно равны числу удаленные одновременно подключенные клиенты до 50% от общего пула потоков размер. Каждый поток ожидает фиксированного количество времени для того, чтобы данные стали доступный в гнезде. Если нет данных прибывает, поток переходит к следующему сокет.
Тогда по этим причинам, очевидно, лучше использовать собственные мультиплексоры.
Здесь, похоже, вы используете собственный муксер по умолчанию (weblogic.socket.EPollSocketMuxer
), а не мультиплекс Java (weblogic.socket.SocketMuxer)
.