Dapatkah kurangnya "paritas bit" antara server web dan kinerja server DB berdampak?


10

Saya mengadakan pertemuan dengan vendor perangkat lunak hari ini tentang infrastruktur yang direkomendasikan untuk menyebarkan aplikasi tertentu. Aplikasi ini membutuhkan dua server: server aplikasi untuk halaman web server (.NET, Windows), dan database (SQL Server). Vendor mengklaim bahwa kedua server ini harus memiliki "bit parity". Apa yang mereka maksudkan dengan ini adalah bahwa jika server aplikasi 32 bit SQL Server harus 32 bit, atau jika aplikasi 64 bit, SQL Server 64 bit. Kalau tidak, kinerja akan terkena dampak negatif.

Ini tampak menggelikan bagi saya. Server independen dan hanya berkomunikasi melalui jaringan. Protokol jaringan tidak ada hubungannya dengan "bit-ness" dari prosesor di kedua server.

Apakah saya salah? Adakah alasan ketidakcocokan benar-benar dapat berdampak negatif terhadap kinerja?

CATATAN: Saya tahu bahwa aplikasi tertentu mungkin berjalan lebih cepat atau lebih lambat dalam 32 bit vs 64 bit. Tetapi vendor mengatakan bahwa ketidakcocokan antara server web dan server DB menyebabkan masalah. Ini pernyataan yang saya tanyakan.


Semua hal lain dianggap sama, menurutnya lari 32 & 32 lebih cepat dari 32 & 64?
JeffO

Itulah yang diklaim oleh vendor, ya. Kinerja 32,32 atau 64,64 lebih tinggi dari 32,64 atau 64,32.
RationalGeek

Dapatkan mereka untuk mengatur dua varian sistem. Kemudian, stres untuk menguji mereka. Beli versi termurah yang memenuhi persyaratan Anda.
Martin York

Jawaban:


10

Saya kira itu mungkin bahwa mereka mengetahui beberapa interaksi spesifik antara dua produk yang menyebabkan masalah ketika ada ketidakcocokan (tapi saya benar-benar meragukannya - saya akan menempatkan sekitar 10: 1 peluang bahwa vendor penuh akan hal itu).

Anda mungkin ingin mencari di serverfault untuk pertanyaan tentang efek ketidakcocokan seperti itu, tetapi saya ragu Anda akan menemukan banyak, karena saya ragu ada masalah nyata untuk ditemukan ...


1
+1, saya pikir Anda benar. Mungkin ada pertimbangan kinerja pada setiap kotak individual, tetapi melalui jaringan, apakah ada sesuatu yang 32 bit atau 64 bit tidak relevan.
Moo-Juice

1
Apa itu mungkin? Saya tidak dapat memikirkan satu skenario di mana itu adalah kemungkinan fisik. Saya juga condong ke arah opsi "vendor full of it". :-)
RationalGeek

@ jkolhepp: Saya bisa memikirkan beberapa cara yang mungkin , tapi saya ragu salah satu dari mereka berlaku. Hanya untuk satu kemungkinan yang jauh, pertimbangkan server mengirim data lebih cepat daripada penerima dapat memprosesnya, sehingga data akan jatuh dan harus dikirim ulang. Ini benar - benar tidak mungkin, tetapi hampir tidak mungkin.
Jerry Coffin

Itu hanya mungkin jika mereka menggunakan protokol jaringan tingkat rendah yang memungkinkan hal semacam itu. Menggunakan "normal" TCP / IP atau apa pun yang mencegah jenis masalah tersebut. Dan kecepatan pengiriman vs kecepatan penerimaan tidak ada hubungannya dengan server "bit-ness".
RationalGeek

3
Saya telah melihat masalah terjadi karena kesalahan vendor, seperti mengekspos bidang dalam pesan jaringan yang ukurannya bervariasi tergantung pada "bitness" dari aplikasi tanpa menyediakan cara untuk menemukan ukuran bidang apa yang harus Anda kirim / harapkan.
Jeffrey Hantin

6

Minta bukti. Dia membuat pernyataan yang dipertanyakan, dia (salah-) menjual barang-barang Anda, apakah ia harus mencadangkannya atau menariknya kembali. Selamatkan diri Anda kerja keras.


Itu ide yang bagus. Saya berencana melakukan itu. Inti dari pertanyaan ini adalah untuk memastikan bahwa saya tidak gila sebelum melakukannya. :-)
RationalGeek

4

Perbedaan antara pasangan server 32bit dan 64bit kemungkinan besar tidak akan membuat perbedaan. Apa yang akan membuat perbedaan adalah endianness dari berbagai proses, yang penjual mungkin bingung sebagai "bit parity".


2
Bahkan itu tergantung pada protokol (dan saya akui saya tidak tahu bagaimana cara kerja DB). Jika server / klien menyatakan endianness-nya dan yang lain beradaptasi dengannya, maka Anda benar; tetapi secara tradisional protokol jaringan telah big-endian, dan dalam keadaan dua kotak kecil-endian akan baik harus mengkonversi, menempatkan mereka di lebih dari kelemahan dari LE / BE pasangan.
ijw

3

Singkatnya saya akan mengatakan tidak ada sedikit paritas tidak masalah. SQL Server tidak memiliki protokol 64-bit dan 32-bit yang terpisah.

Namun, saya akan merekomendasikan bahwa Anda beralih ke server 64 bit terlepas. SQL Server datang dalam 64 bit saja dan saya percaya bahwa Windows Server sedang menuju ke arah itu juga.


Saya setuju 64 bit adalah masa depan. Tapi itu bukan pertanyaan saya. Saya mempertanyakan anggapan vendor bahwa bit parity adalah persyaratan yang valid yang mereka berikan kepada kami. Kami memiliki server farm yang ada yang ingin kami gunakan yang tidak setara.
RationalGeek

2

Nah, jika kata vendor itu benar-benar merujuk pada kinerja, mungkin ada kebenarannya. Tentu saja tidak ada ketidakcocokan antara sistem x86 dan amd64, karena protokol jaringan harus menyembunyikannya.

Namun representasi internal dari nilai-nilai harus ditransformasikan selama transfer. Jadi beberapa bentuk pack/unpackakan menjadi bagian darinya. Namun saya akan mengasumsikan bahwa protol jaringan tidak mendefinisikan dua variasi, dan dioptimalkan untuk jaringan 64 bit atau nilai 32 bit. Jadi mungkin ada konversi yang terlibat, dan bahkan mungkin bisa diukur. Tapi itu mati kemungkinan tidak signifikan.


1

Secara teknis koneksi ke server SQL biasanya merupakan saluran biner (Sekarang saya tidak tahu sistem ini secara khusus bisa berupa saluran berbasis teks) sehingga akan ada beberapa konversi di tujuan akhir ketika hasil kueri diambil.

Ini mengarah pada dua pertanyaan:

  1. Apakah konversi ini dilakukan hanya pada 32x64
    Bisa jadi saluran biner adalah sistem agnostik (sehingga dapat mendukung 32x64 dan 32x32 dan 64x64) dan konversi akan tetap terjadi pada sistem 32x32.

  2. Berapa biaya konversi.
    Saya tidak bisa membayangkan ini akan mempengaruhi Anda. Biaya konversi biner ke biner kecil dan tetap.

Ada satu pertanyaan lain yang perlu Anda tanyakan:

Apakah biaya memiliki bit paritas lebih tinggi? Jika tidak maka mengapa harus berurusan dengan konsultan. Jika ada perbedaan biaya yang signifikan maka apa penurunan nyata dalam kinerja dan yang paling penting penurunan kinerja menurunkan kinerja server Web di bawah ambang batas penerimaan Anda.

yaitu Jika server Anda perlu server 200 halaman per detik. Sistem 32x32 dapat mengirimkan 202 32x64 dapat mengirimkan 200 dan 64x64 dapat mengirimkan 210. Maka dalam situasi ini tidak masalah sistem apa yang Anda miliki (mereka semua memenuhi standar), tetapi apakah biaya tambahannya sepadan dengan tambahan 10 halaman per detik .

Pada akhirnya sekalipun ada biaya tambahan kecil (yang saya ragukan). Apakah biaya ini signifikan atau dapat diukur terhadap biaya lain yang dikeluarkan oleh WebServer. yaitu Melihat contoh ekstrem: jika biaya membangun sebuah halaman adalah 100ms dimana 15ms adalah WebServer. Jika versi non-bit parity 33% lebih mahal (20 ms) maka ambang ini hanya menaikkan biaya pembuatan halaman hingga 105 ms, peningkatan hanya 5%.


Itu menarik, Martin. Apakah ada halaman referensi untuk konversi saluran biner ini?
RationalGeek

@ jkohlhepp: Anda perlu mengetahui detail implementasi tentang 'SQL Server'. Rupanya ia menggunakan protokol milik Tabular Data Stream. Saya tidak tahu apa-apa tentang itu, tetapi menurut halaman ini MS telah menerbitkan protokol.
Martin York
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.