Kami memiliki pengaturan lingkungan MSMQ yang cukup besar yang hari ini memutuskan untuk berhenti.
(Semuanya adalah VM di bawah Pembaruan vSphere 4.0 1)
Ada 8 Server Web yang menerima data dari klien di internet. Semua mesin ini telah menginstal MSMQ dan hanya mengirim pesan MSMQ ke server MSMQ utama. Pesan saat ini ditumpuk dalam antrian keluar. Mesin-mesin ini adalah Windows 2008 Web Edition dengan 2 Gigs of RAM dan 2 vCPUs.
Kami memiliki server MSMQ Clustered (Windows Cluster Server) yang mendapatkan pesan dari 8 server web. Tidak ada batasan jumlah data yang bisa berada dalam antrian. Hard drive adalah 50 Gigs, dan ada 46 Gigs ruang kosong. Mesin-mesin ini adalah Windows 2008 Enterprise Edition dengan 8 Gigs of RAM dan 4 vCPUs. Cluster digunakan untuk memiliki 2 vCPU tetapi beban CPU mencapai 100%, jadi saya meningkatkan kedua node Windows cluster menjadi 4 vCPU.
Ada 4 server aplikasi yang membaca pesan dari antrian dan memprosesnya.
Biasanya ini semua berfungsi dengan baik, tetapi tidak hari ini.
Pagi ini semuanya berjalan sangat lambat. 8 server web saat ini menampilkan hingga 300 ribu pesan yang duduk di antrian keluar. Server berkerumun saat ini menunjukkan lebih dari satu juta pesan dalam antrian (beberapa serendah 200rb).
Jika saya melihat perfmon di 8 server web itu menunjukkan bahwa saya rata-rata 2 pesan terkirim per detik. Jika saya melihat perfmon pada cluster itu menunjukkan ~ 7 pesan per detik masuk ke cluster.
Mesin yang melakukan pembacaan tidak mendapatkan banyak pesan masing-masing. Layanan tercepat mendapatkan 10-12 pesan per detik, yang paling lambat menunjukkan 0 atau 1.
Satu-satunya perubahan baru-baru ini adalah bahwa kami mengubah jumlah server web ujung depan dari 4 menjadi 8. Kami melakukan ini sekitar 2 minggu yang lalu tanpa masalah. Pada hari Selasa, kami menurunkan daya untuk melihat bagaimana 4 sisanya dapat menangani beban. Pada hari Rabu kami menghidupkan kembali empat mesin baru.
Disk pada cluster menunjukkan IO yang sangat rendah dan tidak ada antrian.
Untuk amannya saya telah memperbarui PowerPath ke versi terbaru tetapi itu tidak membantu.
8 server web berada pada satu vLAN, dan server Cluster'd dan server aplikasi berada pada vLAN kedua. Tidak ada firewall di antara vLAN.
Dan tidak ada yang berguna dalam aplikasi atau log sistem di salah satu mesin.
sumber
Jawaban:
Setiap kali seseorang mengatakan mereka memiliki lebih dari satu juta pesan, klakson alarm berbunyi! Pesan membutuhkan memori kernel (kumpulan halaman) untuk dikelola. Jika Anda memiliki begitu banyak pesan, Anda mungkin melelahkan apa yang tersedia di server berkerumun. Jumlah optimal untuk jumlah pesan dalam antrian adalah nol - pada dasarnya pastikan Anda biasanya dapat memproses pesan lebih cepat daripada yang bisa diterima.
Saya akan merekomendasikan mematikan server web dan sepenuhnya memproses backlog pesan sebelum membawanya kembali online.
Item Referensi 4 dari posting blog ini: http://blogs.msdn.com/johnbreakwell/archive/2006/09/18/insufficient-resources-run-away-run-away.aspx
Cheers John Breakwell (MSFT)
sumber
Saya bertanya kepada salah satu sysadmin kami dan dia berkata bahwa titik ajaib kami adalah 4 server web yang maksimum memukul kotak MSMQ pada mesin virtual, kemudian mereka pindah ke kotak perangkat keras untuk menyelesaikannya. Coba juga pengambilan paket untuk melihat apa yang terjadi. Apakah ada banyak dalam otentikasi yang akan AD juga? Dengan seberapa cerewetnya MSMQ, Anda perlu membatasi jalur jaringan dan kemungkinan jalur otentikasi.
HTH, Chuck.
sumber
Merujuk komentar Anda tentang kurangnya administrasi jarak jauh, ya, itu bukan cerita hebat dengan MSMQ dan penghitung perf. Bagi siapa pun yang mengikuti utas dan ingin mengetahui kombinasi OS apa yang berhasil, maka lihatlah di blog Motley Queue:
Penghitung Kinerja MSMQ 4.0 dan Kunci Registri NetNameForPerfCounters http://blogs.msdn.com/motleyqueue/archive/2007/12/14/msmq-4-0-performance-counters-and-the-netnameforperfcounters-registry-key.aspx
Cheers John Breakwell (MSFT)
sumber