Penurunan kinerja ASP.NET antara server 32bit / 64bit

9

Kami saat ini sedang dalam proses meningkatkan server produksi 32bit kami ke server 64bit yang lebih kuat sementara meningkatkan ke ASP.NET 4. Namun, setelah melakukan beberapa pengujian beban ringan kami tampaknya mengalami penurunan kinerja!

Saya telah membuat tes beban sederhana dengan beban konstan 20 pengguna yang melakukan beberapa kasus penggunaan sederhana dan membandingkan hasilnya:

Tanggapan halaman

Seperti yang Anda lihat, konfigurasi berkinerja tertinggi adalah server 32 bit yang ada dengan ASP.NET 2.0.

Anda dapat melihat bahwa dengan menjalankan IIS dalam mode 32 bit pada mesin 64 bit, itu cukup sebanding dengan server 32 bit yang ada, tetapi ketika menjalankan IIS dalam mode 64 bit pada server 64bit - kinerjanya jauh lebih buruk. Saya tidak yakin mengapa ini terjadi, mengingat server baru lebih baik.

Untuk beberapa alasan, setiap kali saya menjalankan tes dengan IIS dalam 64bit, ada lonjakan besar di awal, maka itu meratakan tetapi masih dengan waktu respons yang lebih tinggi dari 32bit. Spike hilang ketika saya menjalankan IIS dalam mode 32 bit.

64bit spike

Perhatikan bahwa kumpulan aplikasi tidak dimulai ulang di antara pengujian, namun lonjakan ada secara konsisten dan responsnya lebih tinggi daripada konfigurasi lainnya.

Jadi - pertanyaan saya adalah: apakah ada yang tahu mengapa ini terjadi? Apakah ada pengaturan konfigurasi yang perlu saya atur? Apakah ada yang punya petunjuk tentang bagaimana saya bisa mempersempit apa yang menyebabkan perbedaan?

Server produksi saat ini: Win Server 2003 - 32bit - IIS6

Server baru: Win Server 2003 R2 - 64bit - IIS6

DavidMasters84
sumber

Jawaban:

4

Sesuai dokumentasi, MS merekomendasikan untuk menjalankan kumpulan aplikasi 32 bit pada server 64 bit karena aplikasi web tidak boleh menggunakan lebih banyak memori (secara internal).

Aplikasi 32 bit selalu lebih berkinerja - pointer yang lebih kecil berarti lebih sedikit memori yang diperlukan untuk serangkaian instruksi tertentu yang berarti rasio hit cache yang lebih baik.

Proses 64 bit hanya masuk akal terbatas - ketika suatu proses benar-benar membutuhkan lebih banyak memori. jika Anda menjaga ujung depan web Anda melakukan hal itu (ujung depan) tidak ada alasan ia membutuhkan banyak memori;)

Di atas, masuk akal untuk benar-benar meningkatkan ke versi yang lebih banyak performan. IIS6 menyedot kinerja besar - IIS 7.5 jauh lebih baik, TERUTAMA jika Anda menjalankan ASP.NET / kode yang dikelola.

TomTom
sumber
Menarik, terima kasih. Saya kira Anda tidak memiliki tautan ke dokumen MS dengan rekomendasi supaya saya bisa membaca lebih lanjut? Sayangnya saya tidak dapat menggunakan II7 + karena saya terikat oleh Win2k3 :(
DavidMasters84
IIS.net - pedoman hosting;) Untuk iis 7,)
TomTom
"Karena aplikasi web seharusnya tidak menggunakan lebih banyak memori" terdengar seperti sesuatu yang dikatakan Bill Gates di tahun 80-an :) Apakah Anda memiliki tautan untuk panduan ini?
Fredrik Johansson
2

Kami mencoba ini pada server Windows 2K3 kami dan mendapatkan hal yang sama, saya tidak ada di sini pada saat itu tetapi ada hubungannya dengan cara mereka menerapkan MS 64Bit. Net di 2K3 (tidak yakin apa tetapi orang yang mengatakan kepada saya adalah seorang MVP jadi Saya akan mengambil kata-katanya di atasnya.)

Dan hanya untuk memberi tahu Anda bahwa jika Anda pindah ke Win2K8 Anda mungkin melihat hal yang sama seperti yang saya lakukan dengan server kami di sini dan mendapatkan masalah kinerja yang sama. Dari apa yang saya telah diberitahu dan sedikit membaca untuk mengambil keuntungan dari 64Bit. Net penggunaan pipa terintegrasi dianjurkan ( http://msdn.microsoft.com/en-us/magazine/cc135973.aspx )

Maaf ini tidak menjawab pertanyaan Anda, tetapi saya pikir saya akan memberi tahu Anda bahwa Anda bukan satu-satunya yang melihat masalah ini.

enterzero
sumber