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 서버의 동작 상태 확인이 필요합니다.
'IT Knowledge > HAProxy' 카테고리의 다른 글
HAProxy HTTP Request Header Logging (0) | 2025.01.10 |
---|---|
HAProxy nbproc 설정 적용 (33) | 2023.08.23 |
HAProxy with SSL Termination / SSL Pass-Through (2) | 2023.08.10 |
Testing Your HAProxy Config (2) | 2023.08.10 |
Customize HAProxy Log format(Mode TCP / HTTP) (0) | 2023.08.10 |
댓글