Có thể thiếu sự tương đương bit bit bit giữa máy chủ web và hiệu suất của máy chủ DB không?


10

Tôi đã có một cuộc họp với một nhà cung cấp phần mềm ngày hôm nay về cơ sở hạ tầng được đề xuất của họ để triển khai một ứng dụng cụ thể. Ứng dụng cần hai máy chủ: máy chủ ứng dụng cho các trang web của máy chủ (.NET, Windows) và cơ sở dữ liệu (SQL Server). Nhà cung cấp tuyên bố rằng hai máy chủ này phải có "bit chẵn lẻ". Điều họ muốn nói là điều này là nếu máy chủ ứng dụng là 32 bit thì SQL Server sẽ là 32 bit hoặc nếu ứng dụng là 64 bit thì SQL Server là 64 bit. Nếu không hiệu suất sẽ bị ảnh hưởng tiêu cực.

Điều này có vẻ ngớ ngẩn với tôi. Các máy chủ là độc lập và chỉ giao tiếp qua mạng. Các giao thức mạng không liên quan gì đến "bit-ness" của bộ xử lý trên cả hai máy chủ.

Tôi có sai không? Có một lý do mà một sự không phù hợp thực sự có thể tác động tiêu cực đến hiệu suất?

LƯU Ý: Tôi biết rằng một số ứng dụng nhất định có thể chạy nhanh hơn hoặc chậm hơn trong 32 bit so với 64 bit. Nhưng nhà cung cấp đã nói rằng sự không phù hợp giữa máy chủ web và máy chủ DB gây ra sự cố. Đây là tuyên bố tôi đang đặt câu hỏi.


Tất cả những thứ khác đều bằng nhau, anh ta nghĩ rằng 32 & 32 chạy nhanh hơn 32 & 64?
JeffO

Đó là những gì các nhà cung cấp đã tuyên bố, vâng. Hiệu suất của 32,32 hoặc 64,64 cao hơn 32,64 hoặc 64,32.
RationalGeek

Yêu cầu họ thiết lập hai biến thể của hệ thống. Sau đó căng thẳng kiểm tra chúng. Mua phiên bản rẻ nhất đáp ứng yêu cầu của bạn.
Martin York

Câu trả lời:


10

Tôi cho rằng có thể họ biết về một số tương tác cụ thể giữa hai sản phẩm đó gây ra sự cố khi có sự không phù hợp (nhưng tôi thực sự nghi ngờ về điều đó - tôi đã đặt tỷ lệ cược 10: 1 rằng nhà cung cấp có đầy đủ về nó).

Bạn có thể muốn xem trên serverfault để biết các câu hỏi về tác động của sự không phù hợp như thế, nhưng tôi nghi ngờ bạn sẽ tìm thấy nhiều, vì tôi nghi ngờ có bất kỳ vấn đề thực sự nào cần tìm ...


1
+1, tôi nghĩ bạn đã chết đúng. Cũng có thể có các cân nhắc về hiệu suất trên mỗi hộp riêng lẻ, nhưng qua mạng, việc một cái gì đó là 32 bit hay 64 bit là không liên quan.
Moo-Juice

1
Có thể không? Tôi không thể nghĩ ra một kịch bản trong đó nó là một khả năng vật lý. Tôi cũng đang nghiêng về tùy chọn "nhà cung cấp đầy đủ". :-)
RationalGeek

@jkolhepp: Tôi có thể nghĩ ra một vài cách có thể , nhưng tôi nghi ngờ bất kỳ cách nào trong số chúng được áp dụng. Chỉ cần một khả năng xa, hãy xem xét một máy chủ gửi dữ liệu nhanh hơn máy thu có thể xử lý nó, vì vậy dữ liệu sẽ bị hủy và phải truyền lại. Nó thực sự không thể, nhưng chỉ có thể hiểu được.
Jerry Coffin

Điều đó chỉ có thể xảy ra nếu họ đang sử dụng các giao thức mạng cấp thấp cho phép điều đó. Sử dụng TCP / IP "bình thường" hoặc bất cứ điều gì ngăn chặn các loại vấn đề đó. Và tốc độ gửi so với tốc độ nhận không liên quan gì đến máy chủ "bit-ness".
RationalGeek

3
Tôi đã thấy các sự cố xảy ra do sự cố của nhà cung cấp, chẳng hạn như để lộ một trường trong thông báo mạng có kích thước khác nhau tùy thuộc vào "độ bit" của ứng dụng mà không cung cấp cách khám phá kích thước trường bạn nên gửi / mong đợi.
Jeffrey Hantin

6

Yêu cầu bằng chứng. Anh ta đưa ra một tuyên bố đáng ngờ, anh ta (bán nhầm) bán đồ cho bạn, hoặc anh ta nên sao lưu hoặc rút lại. Hãy tự cứu lấy mình.


Ý tưởng hay đấy. Tôi đang lên kế hoạch để làm điều đó. Điểm chính của câu hỏi này là đảm bảo tôi không bị điên trước khi làm như vậy. :-)
RationalGeek

4

Sự khác biệt giữa các cặp máy chủ 32 bit và 64 bit rất có thể sẽ không tạo ra bất kỳ sự khác biệt nào. Điều sẽ làm nên sự khác biệt là tính cuối cùng của các quy trình khác nhau, mà nhân viên bán hàng có thể đã nhầm lẫn là "tương đương bit".


2
Ngay cả điều đó phụ thuộc vào giao thức (và tôi thừa nhận tôi không biết làm thế nào các DB hoạt động). Nếu máy chủ / máy khách tuyên bố tuổi thọ của nó và máy chủ khác thích nghi với nó, thì bạn hoàn toàn đúng; nhưng theo truyền thống các giao thức mạng đã lớn về cuối nhỏ, và trong những hoàn cảnh hai hộp ít về cuối nhỏ sẽ cả hai phải chuyển đổi, đặt chúng tại nhiều hơn một thiệt thòi hơn một LE / BE cặp.
ijw

3

Nói tóm lại, tôi sẽ nói không có sự tương đương bit nào không quan trọng. SQL Server không có giao thức 64 bit và 32 bit riêng biệt.

Tuy nhiên, tôi khuyên bạn nên chuyển đổi máy chủ thành 64 bit bất kể. SQL Server chỉ có 64 bit và tôi tin rằng Windows Server cũng đang đi theo hướng đó.


Tôi đồng ý 64 bit là tương lai. Nhưng đó không phải là vấn đề của tôi. Tôi đang nghi ngờ các nhà cung cấp cho rằng tính chẵn lẻ bit là một yêu cầu hợp lệ mà họ đang đặt ra cho chúng tôi. Chúng tôi có các trang trại máy chủ hiện tại mà chúng tôi muốn sử dụng mà không tương đương.
RationalGeek

2

Chà, nếu nói nhà cung cấp nghiêm túc đề cập đến hiệu suất, có thể có một số sự thật với nó. Chắc chắn không có sự không tương thích giữa các hệ thống x86 và amd64, vì giao thức mạng sẽ che giấu điều đó.

Tuy nhiên, đại diện bên trong của các giá trị phải được chuyển đổi trong quá trình chuyển. Vì vậy, một số hình thức pack/unpacksẽ là một phần của nó. Tuy nhiên, tôi cho rằng protcol mạng không xác định hai biến thể và được tối ưu hóa cho mạng 64 bit hoặc giá trị 32 bit. Vì vậy, có thể có chuyển đổi liên quan, và thậm chí có thể đo lường được. Nhưng nó có thể không đáng kể.


1

Về mặt kỹ thuật, kết nối đến máy chủ SQL thường là kênh nhị phân (Bây giờ tôi không biết hệ thống này cụ thể nó có thể là kênh dựa trên văn bản) nên sẽ có một số chuyển đổi ở cuối đích khi truy xuất kết quả của truy vấn.

Điều này dẫn đến hai câu hỏi:

  1. Việc chuyển đổi này chỉ được thực hiện trên 32x64
    Có thể là kênh nhị phân là bất khả tri của hệ thống (để nó có thể hỗ trợ 32x64 và 32x32 và 64x64) và việc chuyển đổi sẽ xảy ra dù sao trên hệ thống 32x32.

  2. Chi phí chuyển đổi là gì.
    Tôi không thể tưởng tượng điều này sẽ ảnh hưởng đến bạn. Chi phí chuyển đổi nhị phân sang nhị phân là nhỏ và cố định.

Có một câu hỏi khác bạn cần hỏi:

Là chi phí của có chẵn lẻ bit cao hơn? Nếu không thì tại sao phải lộn xộn với các chuyên gia tư vấn. Nếu có sự khác biệt đáng kể về chi phí thì hiệu suất giảm thực sự là gì và quan trọng nhất là việc giảm hiệu suất sẽ làm giảm hiệu suất của máy chủ Web dưới ngưỡng chấp nhận của bạn.

tức là nếu máy chủ của bạn cần máy chủ 200 trang một giây. Một hệ thống 32x32 có thể cung cấp 202 một 32x64 có thể cung cấp 200 và 64x64 có thể cung cấp 210. Sau đó, trong tình huống này, bạn có hệ thống nào không quan trọng (tất cả đều đáp ứng thanh), nhưng chi phí thêm đáng giá hơn 10 trang một giây .

Cuối cùng, ngay cả khi có một chi phí nhỏ (mà tôi nghi ngờ). Chi phí này có đáng kể hoặc có thể đo lường được so với các chi phí khác được tích lũy bởi Máy chủ Web không. tức là Nhìn vào một ví dụ cực đoan: nếu chi phí xây dựng một trang là 100ms trong đó 15ms là Máy chủ Web. Nếu phiên bản không tương đương bit đắt hơn 33% (20ms) thì ngưỡng này chỉ làm tăng chi phí xây dựng trang lên 105ms, chỉ tăng 5%.


Đó là Martin thú vị. Có trang tham khảo nào cho việc chuyển đổi kênh nhị phân này không?
RationalGeek

@jkohlhepp: Bạn sẽ cần tìm hiểu chi tiết triển khai về 'Máy chủ SQL'. Rõ ràng nó sử dụng giao thức độc quyền Tabular Data Stream tôi không biết gì về nó nhưng theo trang này MS đã xuất bản giao thức.
Martin York
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.