WebLogic에서 사용되는 socket muxer에는 크게 3가지가 있다.
1. Java muxer
2. Native muxer
3. Non-blocking muxer (12c에서는 default로 채택됨)
1. Java Muxer
==> Java-based socket muxer. Java의 traditional I/O API를 사용하는 muxer를 의미한다. socket에서 thread가 I/O 작동을 할 때, 작업이 끝날 때까지 blocking I/O로 작동하게 된다.
2. Native muxer
==> OS에 종속적인 native 라이브러리를 사용하게 된다. 특히 UNIX/Linux 계열을 system call인 poll, Windows에서는 completion ports를 사용한다.
WebLogic에서 작동하는 대표적인 Native muxer 중 하나는 weblogic.socket.PosixSocketMuxer 이다.
weblogic에서 해당 socket muxer를 사용하게 설정하기 위해서는 다음과 같이 설정하면 된다.
또는 JAVA Option을 줄 수도 있다
-Dweblogic.MuxerClass=weblogic.socket.PosixSocketMuxer
※ PosixSocketMuxer
=> native muxer이지만 weblogic의 Java code에 접근이 가능한 형태이다. socket muxing 용량를 효율적으로 관리할 수 있기 때문에 weblogic server가 동시다발적인 다수의 network connection을 low latency와 high throughput와 함께 지원할 수 있게 된다.
3. Non blocking muxer
==> weblogic 12c 이상에서 default로 사용하고 있는 NIOSocketMuxer가 여기에 속한다. 이 non-blocking muxer를 사용하고 있는 경우, single thread가 I/O 작업에 대해 다수의 socket을 관리하게 된다. 동시에 일어나는 I/O에 대한 처리를 할 수 있다는 점에서 Java muxer의 상위호환이라고도 볼 수 있지만, 위 muxer를 사용하려면 복잡한 프로그래밍 기법이 사용되어져야 하거나, 적용 및 유지하기 어려워질 수 있다는 점을 고려하여 환경에 맞춰 Java muxer와 Non blocking muxer에서 골라야 한다.
============================================================================================
### Trouble Shooting 예시
weblogic 12c에서 NIOSocketMuxer는 새롭게 추가된 socket I/O 구현체이나, 12.2.1.3에서 해당 socket muxer를 사용 시 서버가 중지되는 버그가 보고되었다. (해당 버그는 12.2.1.4 이상에서 수정함)
+ 보고된 이슈
- 성능 이슈 NIOSocketMuxer를 사용할 경우, 일부 경우에는 이전의 Java 스레드 방식보다 느릴 수 있다. 이는 시스템의 네트워크 환경과 구성에 따라 다를 수 있으며, 성능 최적화를 위해 추가적인 구성이 필요할 수 있다. - 오류 메시지 출력 이슈 NIOSocketMuxer를 사용할 때 오류 메시지가 출력되지 않는 경우가 발생할 수 있다. 이는 로깅 구성에 따라 다를 수 있으며, WebLogic 로깅 설정을 확인하여 문제를 해결할 수 있다. |
단, 일반적으로 NIOSocketMuxer를 사용하면 이전의 Java 스레드 방식보다 더욱 효율적인 소켓 처리를 지원하므로 성능 향상을 기대할 수 있습니다. 다만, 버그나 성능 이슈를 고려하여 적절한 구성 및 테스트가 필요.
'Oracle > Weblogic' 카테고리의 다른 글
WLS 10.3.6.0 nodemanager 설정 (0) | 2024.02.16 |
---|---|
Max Request Parameter (0) | 2023.04.05 |
RAC datasource (TAF, SCAN IP) (0) | 2023.02.27 |
JMS in weblogic (0) | 2023.01.04 |
MDS 와 AGL에 대하여 (0) | 2023.01.04 |