HAProxy Frontend Session Utilization 증가 현상
HAProxy Frontend의 Session Utilization이 지속적으로 증가되는 현상.

원인?
HAProxy에서 Frontend의 Session utilization이 계속 올라가는 경우, 이는 클라이언트의 요청 세션을 처리하는 동안 리소스를 효율적으로 관리하지 못하고 있다는 신호 일 수 있습니다.
기대하는 현상
요청 세션이 끝나면 자체적으로 정리가 되어 Session Utilization이 요청수와 비례하게 증감되는 현상을 기대합니다.
조치방안
각 설정을 점검하고 조정하여 최적화가 필요합니다.
* 세션 제한
Frontend가 세분화 되어 있다면, 최대 연결 수를 제한하여 다른 Frontend에 영향을 주지 않도록 설정
이는 임시조치 일뿐, 내가 기대하는 해결방안은 아닙니다.
Frontend my_frontend maxconn 10000 # 최대 연결 수 제한 |
세션이 예상보다 길게 지속되면, session utilization이 계속 올라가니, timeout 설정을 통해 세션 타임아웃을 조정할 수 있습니다.
Frontend my_frontend timeout client 30s # 클라이언트와의 연결 시간 제한 timeout http-request 10s # HTTP 요청의 시간 제한 timeout connect 10s # 백엔드 서버와의 연결 시간 제한 timeout server 30s #서버 응답 시간 제한 |
클라이언트와 서버간의 연결이 계속 유지되고 있다면, 세션 utilization이 증가할 수 있습니다.
아래의 옵션을 사용하여 클라이언트와 서버간의 연결을 종료 시킬 수 있습니다.
Frontend my_frontend option http-server-close # 서버와의 연결을 close하여 자원관리 option forceclose # 연결 강제 종료 |
주의사항 : http-server-close를 설정하면, 클라이언트와 서버간의 연결을 매번 새로 열어야 하므로, 많은 요청이 빠르게 들어오는 환경에서는 성능 저하가 발생할 수 있습니다.
* 서버 상태 확인
Backend 서버가 비정상적으로 동작하는 경우, 세션 처리에 문제가 있을 수 있습니다.
Backend 서버의 동작 상태 확인이 필요합니다.