HTTPF <-> OMAF 구간에서
성능을 돌리던 중 3000 TPS 이상 못던지는 현상이 나타났다.
원인을 찾아보니 OMAF 에서 사용한 libxml2 가 성능저하의 원인으로 밝혀졌다.
싱글쓰레드 상에서 libxml2 는 사용하면 안된다. 성능을 올릴 수 있는 방법이 없슴.
HTTPF SIM <-> HTTPF 구간에서
성능을 돌리던 중 2000TPS 가 넘으면 트래픽이 춤을 추는 현상이 발생했다.
이것은 성능시뮬레이터가 데이터를 못던지는것이 확인되었는데
이유를 확인해보니 성능시뮬레이터에서 TIME_WAIT 이 발생하여 가용한 포트를 사용할 수가 없어서
TIME_WAIT 이 없어질때까지 클라이언트가 못보내는 현상이었다.
SO_REUSE 를 사용하면 TIME_WAIT 은 계속 남지만 포트를 재사용하므로 춤추는 현상은 없어지고
SO_LINGER 를 사용하면 소켓을 끊을 때 커넥션을 reset 시켜버리므로 TIME_WAIT 자체가 없어진다.
성능을 돌리던 중 3000 TPS 이상 못던지는 현상이 나타났다.
원인을 찾아보니 OMAF 에서 사용한 libxml2 가 성능저하의 원인으로 밝혀졌다.
싱글쓰레드 상에서 libxml2 는 사용하면 안된다. 성능을 올릴 수 있는 방법이 없슴.
HTTPF SIM <-> HTTPF 구간에서
성능을 돌리던 중 2000TPS 가 넘으면 트래픽이 춤을 추는 현상이 발생했다.
이것은 성능시뮬레이터가 데이터를 못던지는것이 확인되었는데
이유를 확인해보니 성능시뮬레이터에서 TIME_WAIT 이 발생하여 가용한 포트를 사용할 수가 없어서
TIME_WAIT 이 없어질때까지 클라이언트가 못보내는 현상이었다.
SO_REUSE 를 사용하면 TIME_WAIT 은 계속 남지만 포트를 재사용하므로 춤추는 현상은 없어지고
SO_LINGER 를 사용하면 소켓을 끊을 때 커넥션을 reset 시켜버리므로 TIME_WAIT 자체가 없어진다.