고성능 서버 부하 균형을 위한 실행 가능한 방안

1806 단어 부하 균형
면접관은 부하 균형에 대한 질문을 자주 하는데, 그들이 정말 만났는지 아니면 자신이 의음했는지 모르겠다.나는 단지 네가 다른 사람의 생각을 부정할 때, 정말로 다른 사람의 생각이 너보다 좋은지 진지하게 고려한 적이 있는지 말하고 싶다.
대략적인 의미는 여러 개의 사용자 요청 서비스, 서버는 하나의 집단으로 고객과 서버 사이에 부하 균형을 더해서 모든 사용자가 정상적으로 서비스를 요청할 수 있고 부하 균형 기구는 사용자의 요청을 적당한 서버로 나눌 수 있다는 것이다.이렇게 하면 서버가 최상의 작업 상태에 도달할 수 있다.
그러나 이런 문제에 대해 대다수 사람들이 제시한 해결 방안은 모두 socket과 Epool을 바탕으로 하는 것이다. 그러나 이런 방안에서 한 대의 기계도 200-300Mbps의 유량 부하를 처리한다.다음은 또 다른 해결 방안을 제시한다.네트워크 패킷 기반 캡처 솔루션
플랫폼: Linux + 서광 제로 복제 NIC
서광 제로 카피는 천메가 네트워크 카드와 만메가 네트워크 카드를 내놓았는데, 말하자면 포획 속도가 1000Mbps와 10000Mbps이다.
 _______         _________                ________

|       |       |         |              |        |

|Clients| ----->|Balancer |------------->|Servers |

|_______|       |_________|              |________|

데이터 패키지를 수정하여 부하 균형을 맞출 수 있다.예를 들어 클라이언트가 Balancer를 요청하면 Balancer는 여러 서버의 상황에 따라 적합한 서버를 선택하여 처리한다. 그 다음에 이 패키지의 목적 IP를 선택한 서버의 IP로 바꾸고 목적 MAC를 서버의 MAC로 바꾸며 원본 MAC를 Balancer 자체의 MAC로 바꾼다.그러면 다시 인터넷 카드를 통해 수정된 가방을 보낼 수 있습니다.이 패키지는 해당 서버에 의해 처리됩니다.서버가 되돌아온 데이터 패키지입니다. 우리는 그 원본 IP를 Balancer의 IP로 바꾸고, 원본 MAC를 Balancer의 MAC로 바꾸고, 목적 MAC를 클라이언트의 MAC로 바꾸고, 그 다음에 네트워크 카드를 통해 발송합니다.이렇게 하면 Balancer의 기본 기능을 실현할 수 있다.주의해야 할 것은 클라이언트 서버의 대응 관계를 유지해야 한다는 것이다.이 대응 관계는 유지하기 쉬울 뿐만 아니라 매우 효율적으로 할 수 있다.그리고 데이터 패키지를 수정하는 MAC와 IP는 전혀 비용이 들지 않습니다.
지금 이 방안이 앞의 방안에 비해 장점을 좀 봅시다.
Balancer 양방향 송수신 패키지 때문에 처리된 최고 유량은 20% 할인해야 합니다.10000Mbps의 네트워크 카드를 사용하면 5000Mbps를 양방향으로 처리할 수 있다.(10000Mbps 데이터를 포획할 수 있는 네트워크 카드는 내가 헛소리를 한 것이 아니다. 우리는 당시에 이 네트워크 카드로 7Gb/s의 데이터를 처리한 적이 있다. 왜냐하면 우리는 정말 더 큰 데이터를 얻지 못하기 때문이다.)그러니까 이런 Balancer가 socket 방식의 20개의 Balancer를 당해낸 거야.다시 계산해 보자. 만약에 원래 100개의 Balancer가 있었다면 지금은 5개의 Balancer만 있으면 절약한 95대의 서버는 적지 않은 비용이지만 95대의 서버의 전기료와 유지보수비도 절약했다.

좋은 웹페이지 즐겨찾기