웹 서버와 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.