haproxy 서버 포트가 다 쓴 문제를 어떻게 해결합니까
1. 가능한 한 많은 포트를 사용
Linux 시스템은 기본적으로 65536개의 포트를 제공하는데 Haproxy가 연결될 때마다 하나의 포트를 소모한다.Haproxy가 연결을 끊으면 포트가 즉시 해제되지 않고 TIME_WAIT 상태(2MSL, 보통 2분)로 새 포트에 사용할 수 있습니다.
하면, 만약, 만약...fin_wait를 15초로 설정하면haproxy가 탑재할 수 있는 최대 병렬 연결 수는:64K/(15*2)=2.1K
그러나 실제로는 이 오프라인에 도달할 수 없다. 원인은 다음과 같다.net.ipv4.ip_local_port_range = 15000 65000
사용 가능한 포트가 64K 개가 아닙니다.Linux는 일부 포트를 보존합니다. 실제 할당에 참여할 수 있는 포트 수는 50K에 불과합니다. 가능한 한 많은 할당 포트를 위해 다음과 같이 조정합니다.net.ipv4.ip_local_port_range = 1024 65000
2. 포트 재사용
포트 재사용 조정 매개변수 두 개:net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
그 중에서 첫 번째 파라미터는 매우 안전하고, 두 번째 파라미터는 어떤 상황에서 데이터 패키지를 버릴 수 있다.예를 들어 클라이언트는 NAT를 통해haproxy를 연결하고haproxy단에서 넷을 열었습니다.ipv4.tcp_tw_recycle, 동시에saw_tstamp도 닫히지 않았습니다. 첫 번째 연결이 설정되고 닫히면 이 포트는 TIME_WAIT 상태, 2MSL 시간 내에 또 하나의client (같은 IP, xfrm을 열면 같은 포트) 에서 SYN 패키지를 보냅니다. 이때 linux 호스트는 이 패키지가 이상하다고 판단하여 이 패키지를 잃어버리고 RST 패키지를 보냅니다.
3. 단축 TIME_WAIT 시간
Linux 시스템의 기본 MSL은 60초입니다. 즉, 정상적인 경우 120초 후에 TIME_WAIT 상태의 포트가 해제되어야 MSL 시간을 줄이고 포트 해제 주기를 단축할 수 있습니다.cat /proc/sys/net/ipv4/tcp_fin_timeout
60
echo 15 > /proc/sys/net/ipv4/tcp_fin_timeout
이 값도 너무 작게 설정하지 마세요. 그렇지 않으면 다른 문제가 발생할 수 있으니 비교적 절충된 값이 필요합니다.
4. 다중 IP 사용
포트의 수는 사실 IP에 비해 많으며, 만약 여러 개의 IP가 있다면 더 많은 포트를 사용할 수 있다.Haproxy는 다음과 같이 구성할 수 있는 내장 포트 관리 방법을 제공합니다.server mysql01 10.0.0.1:3306 check source 10.0.0.100:1025-65000
server mysql02 10.0.0.1:3306 check source 10.0.0.101:1025-65000
5. 긴 연결 사용
서비스는 긴 연결을 사용하는 것이 가장 좋다. 첫째, 빈번한 포트 신청으로 인해 포트가 소모되는 것을 피하는 것이다.둘째, 연결을 만드는 데 걸리는 시간을 피한다.
공유는 여기서 마치겠습니다. 감사합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HAProxy로 HA화된 Elasticsearch 클러스터 구축
이 기사는 의 18 일째입니다.
실험실에있는 ESXi에 Elasticsearch 클러스터를 구축했습니다.
선생님으로부터 중복을 고려한 구축을 제안되었으므로, SPOF의 배제를 목표로 했습니다.
설정 파일은 다음과 같...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
64K/(15*2)=2.1K
net.ipv4.ip_local_port_range = 15000 65000
net.ipv4.ip_local_port_range = 1024 65000
포트 재사용 조정 매개변수 두 개:
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
그 중에서 첫 번째 파라미터는 매우 안전하고, 두 번째 파라미터는 어떤 상황에서 데이터 패키지를 버릴 수 있다.예를 들어 클라이언트는 NAT를 통해haproxy를 연결하고haproxy단에서 넷을 열었습니다.ipv4.tcp_tw_recycle, 동시에saw_tstamp도 닫히지 않았습니다. 첫 번째 연결이 설정되고 닫히면 이 포트는 TIME_WAIT 상태, 2MSL 시간 내에 또 하나의client (같은 IP, xfrm을 열면 같은 포트) 에서 SYN 패키지를 보냅니다. 이때 linux 호스트는 이 패키지가 이상하다고 판단하여 이 패키지를 잃어버리고 RST 패키지를 보냅니다.
3. 단축 TIME_WAIT 시간
Linux 시스템의 기본 MSL은 60초입니다. 즉, 정상적인 경우 120초 후에 TIME_WAIT 상태의 포트가 해제되어야 MSL 시간을 줄이고 포트 해제 주기를 단축할 수 있습니다.cat /proc/sys/net/ipv4/tcp_fin_timeout
60
echo 15 > /proc/sys/net/ipv4/tcp_fin_timeout
이 값도 너무 작게 설정하지 마세요. 그렇지 않으면 다른 문제가 발생할 수 있으니 비교적 절충된 값이 필요합니다.
4. 다중 IP 사용
포트의 수는 사실 IP에 비해 많으며, 만약 여러 개의 IP가 있다면 더 많은 포트를 사용할 수 있다.Haproxy는 다음과 같이 구성할 수 있는 내장 포트 관리 방법을 제공합니다.server mysql01 10.0.0.1:3306 check source 10.0.0.100:1025-65000
server mysql02 10.0.0.1:3306 check source 10.0.0.101:1025-65000
5. 긴 연결 사용
서비스는 긴 연결을 사용하는 것이 가장 좋다. 첫째, 빈번한 포트 신청으로 인해 포트가 소모되는 것을 피하는 것이다.둘째, 연결을 만드는 데 걸리는 시간을 피한다.
공유는 여기서 마치겠습니다. 감사합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HAProxy로 HA화된 Elasticsearch 클러스터 구축
이 기사는 의 18 일째입니다.
실험실에있는 ESXi에 Elasticsearch 클러스터를 구축했습니다.
선생님으로부터 중복을 고려한 구축을 제안되었으므로, SPOF의 배제를 목표로 했습니다.
설정 파일은 다음과 같...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
cat /proc/sys/net/ipv4/tcp_fin_timeout
60
echo 15 > /proc/sys/net/ipv4/tcp_fin_timeout
포트의 수는 사실 IP에 비해 많으며, 만약 여러 개의 IP가 있다면 더 많은 포트를 사용할 수 있다.Haproxy는 다음과 같이 구성할 수 있는 내장 포트 관리 방법을 제공합니다.
server mysql01 10.0.0.1:3306 check source 10.0.0.100:1025-65000
server mysql02 10.0.0.1:3306 check source 10.0.0.101:1025-65000
5. 긴 연결 사용
서비스는 긴 연결을 사용하는 것이 가장 좋다. 첫째, 빈번한 포트 신청으로 인해 포트가 소모되는 것을 피하는 것이다.둘째, 연결을 만드는 데 걸리는 시간을 피한다.
공유는 여기서 마치겠습니다. 감사합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HAProxy로 HA화된 Elasticsearch 클러스터 구축
이 기사는 의 18 일째입니다.
실험실에있는 ESXi에 Elasticsearch 클러스터를 구축했습니다.
선생님으로부터 중복을 고려한 구축을 제안되었으므로, SPOF의 배제를 목표로 했습니다.
설정 파일은 다음과 같...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HAProxy로 HA화된 Elasticsearch 클러스터 구축이 기사는 의 18 일째입니다. 실험실에있는 ESXi에 Elasticsearch 클러스터를 구축했습니다. 선생님으로부터 중복을 고려한 구축을 제안되었으므로, SPOF의 배제를 목표로 했습니다. 설정 파일은 다음과 같...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.