웹 서버와 DB 서버 간의 "비트 패리티"가 부족하여 성능에 영향을 줄 수 있습니까?


10

특정 소프트웨어 배포를위한 권장 인프라에 대해 오늘 소프트웨어 공급 업체와 회의를 가졌습니다. 이 응용 프로그램에는 서버 웹 페이지 (.NET, Windows) 용 응용 프로그램 서버와 데이터베이스 (SQL Server)의 두 서버가 필요합니다. 공급 업체는이 두 서버에 "비트 패리티"가 있어야한다고 주장했습니다. 이것의 의미는 앱 서버가 32 비트 인 경우 SQL Server는 32 비트이거나 앱이 64 비트 인 경우 SQL Server는 64 비트라는 것입니다. 그렇지 않으면 성능에 부정적인 영향을 미칩니다.

이것은 나에게 우스운 것 같습니다. 서버는 독립적이며 네트워크를 통해서만 통신합니다. 네트워크 프로토콜은 어느 서버에서나 프로세서의 "비트"와 관련이 없습니다.

내가 틀렸어? 불일치가 실제로 성능에 부정적인 영향을 줄 수있는 이유가 있습니까?

참고 : 특정 앱은 32 비트 대 64 비트에서 더 빠르거나 느리게 실행될 수 있음을 알고 있습니다. 그러나 공급 업체는 웹 서버와 DB 서버 의 불일치로 인해 문제가 발생 한다고 말했습니다 . 이것이 내가 질문하는 진술입니다.


다른 모든 것들이 평등하다고 그는 32 & 32가 32 & 64보다 빠르게 실행한다고 생각합니까?
JeffO

그것이 벤더가 주장한 것입니다. 32,32 또는 64,64의 성능이 32,64 또는 64,32보다 높습니다.
RationalGeek

시스템의 두 가지 변형을 설정하도록합니다. 그런 다음 스트레스 테스트하십시오. 요구 사항에 맞는 가장 저렴한 버전을 구입하십시오.
Martin York

답변:


10

나는 그들이 불일치 할 때 문제를 일으키는 두 제품 사이의 특정 상호 작용을 알고있을 가능성 이 있다고 생각합니다 (그러나 실제로는 의심합니다-공급 업체가 가득 차 있다고 10 : 1 정도 확률).

불일치의 영향에 대한 질문에 대해서는 serverfault를 살펴보고 싶겠지 만 찾을 수있는 실제 문제가 있는지 의심하기 때문에 많이 찾을 것입니다 ...


1
+1, 당신이 옳아 죽었다고 생각합니다. 각각의 개별 박스에 대해 성능 고려 사항이있을 수 있지만 네트워크를 통해 어떤 것이 32 비트인지 64 비트인지는 상관 없습니다.
Moo-Juice

1
가능합니까? 물리적 가능성이있는 시나리오는 생각할 수 없습니다. 또한 "공급 업체가 가득한"옵션에 기대어 있습니다. :-)
RationalGeek

@jkolhepp : 나는 그것이 될 것입니다 몇 가지 방법을 생각할 수 있지만, 나는 그들 중 하나가 적용 의심한다. 하나의 먼 가능성으로, 수신자가 처리 할 수있는 것보다 빠르게 데이터를 전송하는 서버를 고려하여 데이터가 삭제되고 재전송되어야합니다. 그건 정말 가능성이 있지만, 겨우 생각할 수.
Jerry Coffin

저런 종류의 네트워크 프로토콜을 사용하는 경우에만 가능합니다. "정상적인"TCP / IP 또는 그 밖의 다른 유형을 사용하면 이러한 유형의 문제를 방지 할 수 있습니다. 그리고 전송 속도와 수신 속도는 서버 "비트 수준"과 관련이 없습니다.
RationalGeek

3
어떤 필드 크기를 보내거나 예상해야하는지 알 수있는 방법을 제공하지 않고 응용 프로그램의 "비트 성"에 따라 크기가 다른 네트워크 메시지에 필드를 노출하는 등 공급 업체의 실수로 인해 문제가 발생하는 것을 보았습니다.
Jeffrey Hantin

6

증거를 요구하십시오. 그는 의심스러운 진술을했다. 그는 당신에게 물건을 팔거나 잘못 팔았다. 그는 그것을 뒷받침하거나 철회해야한다. 레거시를 구하십시오.


좋은 생각이야. 나는 그렇게 할 계획입니다. 이 질문의 요점은 내가 그렇게하기 전에 내가 미쳤는지 확인하는 것이 었습니다. :-)
RationalGeek

4

32 비트와 64 비트 서버 쌍의 차이는 거의 차이가 없습니다. 차이점은 영업 담당자가 "비트 패리티"로 혼동했을 수있는 다양한 프로세스 의 엔디안 (endianness) 입니다.


2
심지어 프로토콜에 달려 있습니다 (그리고 DB가 어떻게 작동하는지 전혀 알지 못합니다). 서버 / 클라이언트가 엔디안을 선언하고 다른 엔디안을 적용한다면, 당신은 절대적으로 맞습니다. 그러나 전통적으로 네트워크 프로토콜은 빅 엔디안 (big-endian) 이었으며, 이러한 상황에서 두 개의 리틀 엔디안 박스가 모두 변환되어 LE / BE 쌍보다 불리한 점이 많았습니다.
ijw

3

요컨대 나는 비트 패리티가 중요하지 않다고 말할 것입니다. SQL Server에는 별도의 64 비트 및 32 비트 프로토콜이 없습니다.

그러나 서버를 64 비트로 전환하는 것이 좋습니다. SQL Server는 64 비트로 만 제공되며 Windows Server도 그 방향으로 가고 있다고 생각합니다.


64 비트가 미래라는 데 동의합니다. 그러나 그것은 내 질문의 요점이 아닙니다. 나는 비트 패리티가 그들이 우리에게 요구하는 유효한 요구 사항이라고 벤더의 가정에 의문을 제기하고 있습니다. 패리티가 아닌 기존 서버 팜을 사용하려고합니다.
RationalGeek

2

벤더가 성능을 엄격하게 언급하고 있다면 사실이있을 수 있습니다. 네트워크 프로토콜이이를 숨겨야하기 때문에 x86과 amd64 시스템 간에는 비 호환성이 없습니다.

그러나 값의 내부 표현은 전송 중에 변환되어야합니다. 그래서 어떤 형태 pack/unpack가 그것의 일부가 될 것입니다. 그러나 네트워크 프로토콜은 두 가지 변형을 정의하지 않으며 64 비트 네트워크 또는 32 비트 값에 최적화되어 있다고 가정합니다. 따라서 회심이 수반 될 수 있으며, 심지어 측정 할 수도 있습니다. 그러나 그것은 죽지 않았을 것입니다.


1

기술적으로 SQL 서버에 대한 연결은 일반적으로 이진 채널입니다 (이 시스템은 특히 텍스트 기반 채널 일 수 있음을 알 수 없음). 따라서 쿼리 결과가 검색 될 때 대상 끝에서 약간의 변환이 발생합니다.

이것은 두 가지 질문으로 이어집니다.

  1. 이 변환은 32x64에서만 수행됩니까
    바이너리 채널은 시스템에 구애받지 않고 (32x64 및 32x32 및 64x64를 지원할 수 있음) 변환은 32x32 시스템에서 발생합니다.

  2. 전환 비용은 얼마입니까?
    이것이 당신에게 영향을 줄 것이라고 상상할 수 없습니다. 이진에서 이진으로의 변환 비용은 작고 고정되어 있습니다.

다른 질문이 하나 더 있습니다 :

비트 패리티 비용이 더 높습니까? 그렇지 않다면 왜 컨설턴트들을 혼란스럽게 하는가. 상당한 비용 차이가 있다면 어떤 성능이 실제 감소이며, 가장 중요한 성능의 감소가 임계 승인 아래의 웹 서버의 성능을 저하한다.

즉, 서버가 초당 200 페이지를 서버해야하는 경우. 32x32 시스템은 202를, 32x64는 200을, 64x64는 210을 전달할 수 있습니다.이 상황에서는 어떤 시스템을 사용하든 (모두 바를 충족시키는) 중요하지 않지만 1 초에 10 페이지를 추가 할 가치가있는 추가 비용입니다. .

결국 작은 추가 비용이 있더라도 (의문의 여지가 있습니다). 이 비용이 WebServer에서 발생하는 다른 비용에 비해 중요하거나 측정 가능합니까? 즉, 극단적 인 예를 살펴보면 페이지 작성 비용이 100ms 인 경우 15ms는 WebServer입니다. 비 비트 패리티 버전이 33 % 더 비싸면 (20ms)이 병은 페이지 작성 비용을 105ms로 증가시켜 5 % 만 증가시킵니다.


흥미로운 마틴입니다. 이 바이너리 채널 변환에 대한 참조 페이지가 있습니까?
RationalGeek

@jkohlhepp : 'SQL Server'에 대한 구현 세부 정보를 찾아야합니다. 분명히 그것은 독점 프로토콜 인 Tabular Data Stream을 사용합니다. 나는 그것에 대해 아무것도 모르지만이 페이지에 따르면 MS는 프로토콜을 발표했습니다.
Martin York
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.