akka 메시지 큐 오버플로우
- Inference Window Actor에서 Message Queue가 꽉 차서 수신 못했을 가능성 높습니다.
Message Buffer Size
- `send-buffer-size`와 `receive-buffer-size`가 너무 작은 경우에는 메시지 송수신에 문제가 발생할 수 있습니다. 이 옵션들은 TCP 송수신 버퍼의 크기를 제어하며, 충분히 큰 크기로 설정되어야 합니다. 그렇지 않으면 다음과 같은 문제가 발생할 수 있습니다
1.송신 부분에서의 문제
Send buffer size
가 작으면, 송신측에서 메시지를 버퍼에 쓰는 속도가 느려질 수 있습니다. 이는 메시지를 네트워크로 전송하는 속도를 제한하고, 따라서 메시지 전송이 지연될 수 있습니다. 또한 송신 버퍼가 가득 차면 추가적인 데이터를 버퍼에 쓸 수 없게 되며, 이는 송신 지연을 유발할 수 있습니다.2. 수신 부분에서의 문제
Receive buffer size
가 작으면, 수신측에서 메시지를 버퍼에서 읽어오는 속도가 느려질 수 있습니다. 이는 수신부에서 메시지를 처리하는 속도를 제한하고, 따라서 메시지 처리가 지연될 수 있습니다. 또한 버퍼가 가득 차면 추가적인 데이터를 받을 수 없으며, 이는 수신 부분에서의 데이터 유실을 유발할 수 있습니다.
- 따라서 send buffer size와 receive buffer size를 충분히 크게 설정하지 않으면, 송수신의 효율성과 신뢰성이 저하될 수 있습니다. 특히 큰 메시지를 다루는 경우에는 이러한 버퍼의 크기가 특히 중요합니다.
Message Frame Size
1. message-frame-size
- 이 옵션은 하나의 메시지가 TCP 프레임 내에 들어갈 수 있는 최대 크기를 설정합니다.
- 즉, 하나의 메시지가 TCP 프레임에 담겨 전송될 때, 해당 프레임의 크기는 이 옵션에 따라 결정됩니다.
- 이 옵션은 개별 메시지의 크기를 제한하는 데 사용됩니다.
2. maximum-frame-size
- 이 옵션은 단일 TCP 프레임의 최대 크기를 설정합니다.
- TCP 프레임의 크기가 이 옵션에 지정된 값보다 크면, 해당 프레임은 여러 개의 TCP 프레임으로 분할됩니다.
- 이 옵션은 TCP 프로토콜 자체에서 프레임의 크기를 제한하는 데 사용됩니다.
- 주요한 차이점은 message-frame-size는 개별 메시지의 크기를 제어하고, maximum-frame-size는 단일 TCP 프레임의 크기를 제어한다는 것입니다.
- 따라서 메시지가 TCP 프레임보다 큰 경우에는 maximum-frame-size가 적용되어 여러 개의 TCP 프레임으로 나누어 전송됩니다.
'프로그래밍 > Akka.Net' 카테고리의 다른 글
[Akka.NET] Akka.NET 가이드 (0) | 2023.08.18 |
---|---|
[Akka.NET] Stash (0) | 2023.05.30 |
[Akka.NET] Receive()와 ReceiveAny() (0) | 2023.05.30 |
[Akka.NET] Akka.NET Blog Archieve (0) | 2023.05.30 |
[Akka.Net] MailBox (0) | 2022.06.09 |