IIS App Pool Penggunaan CPU tinggi meskipun tidak ada permintaan

10

Saya baru-baru ini memigrasi satu set server Windows Server 2008 R2 / IIS 7.5 ke server baru yang menjalankan Windows Server 2012 / IIS 8.

Saya mengalami beberapa perilaku aneh dari IIS. Kami memiliki 2 server yang identik, setiap server menjalankan 2 situs web, masing-masing di kumpulan aplikasi mereka sendiri. Kode untuk setiap situs web identik. (Secara harfiah ... dll yang sama dan semuanya, konfigurasi hanya sedikit berbeda).

Kumpulan aplikasi diatur untuk mendaur ulang pada jadwal setiap 24 jam, tetapi selama periode 24 jam itu, penggunaan CPU dari proses pekerja w3wp melonjak sebesar 12,5% (server memiliki 8 prosesor, jadi saya tidak berpikir itu adalah sebuah kebetulan).

Setelah penggunaan CPU melonjak, itu TIDAK AKAN kembali turun sampai aplikasi daur ulang. Sejauh yang saya tahu, aplikasi tidak melakukan apa-apa dan memproses TIDAK ada permintaan saat ini. Saya dapat memblokir semua lalu lintas ke server dan penggunaan CPU hanya akan tinggal di sana. Saya bahkan dapat MEMULAI situs web, dan penggunaan CPU tetap sama. Satu-satunya cara untuk mereset penggunaan CPU adalah dengan mendaur ulang atau memulai ulang kumpulan aplikasi tempat ia beroperasi.

Saya agak yakin bahwa masalah ini tidak ada hubungannya dengan kode saya, tetapi semacam konfigurasi IIS yang buruk atau perubahan IIS 8 yang bekerja buruk dengan konfigurasi perangkat keras atau sesuatu?

Tidak yakin apakah ini penting atau tidak, tetapi ini adalah server Rackspace Performance Cloud.

Berikut adalah tangkapan layar untuk menunjukkan kepada Anda beban CPU dari waktu ke waktu di server-server ini (panah hijau menunjukkan saat-saat kumpulan aplikasi didaur ulang. Anda dapat melihat bahwa setiap dataran tinggi merupakan kelipatan integral 12,5%:

masukkan deskripsi gambar di sini

Adakah yang mengamati perilaku ini? Saya telah menemukan pertanyaan ini sejak 2009 dengan seseorang yang tampaknya memiliki masalah yang sama dengan IIS 6:

IIS w3wp menggunakan cpu tinggi tanpa lalu lintas

Bantuan apa pun sangat kami hargai

Leland Richardson
sumber

Jawaban:

1

Punya masalah yang sama persis dengan Sharepoint 2013 dan IIS 8 pada 2012 ... Kami tidak pernah bermasalah, tetapi sebaliknya diturunkan ke SP2013 pada 2008 R2 dan semuanya baik-baik saja.

George
sumber
2
manusia. setelah semua pekerjaan yang baru saja saya lakukan untuk bermigrasi, ini bukan jawaban yang saya harapkan ...: /
Leland Richardson
1

Anda dapat mencoba menggunakan alat Diagnostik Debug untuk melacak apa yang menyebabkan masalah. Biasanya untuk pemecahan masalah kerusakan dan kebocoran memori, tetapi dapat membantu menemukan komponen mana yang menyebabkan masalah.

Greg Bray
sumber
Bagaimana cara menggunakan alat Diagnostik Debug secara programatik kapan high CPU or RAM more 90%?
Kiquenet
@Kiquenet Anda dapat mencoba mengambil dump memori dari proses dan kemudian menganalisisnya di beberapa mesin lain. Saya menghadapi masalah yang sama dan mampu menangkap dump <1 mnt di server pada ~ 100% penggunaan CPU
Piyush Saravagi
ya, lalu tangkap dump di <1 mnt pada server dengan ~ 100% penggunaan CPU secara terprogram ?
Kiquenet
1

Ini benar-benar terlihat seperti beberapa kode yang terjebak dalam infinite loop.

Permintaan masuk, IIS mulai melayani itu, sesuatu (mungkin bug) memicu perilaku ini, utas pekerja memasuki loop tak terbatas dan mematok CPU hingga 100%, dan kemudian tetap seperti ini sampai kumpulan aplikasi didaur ulang.

Bahkan jika tidak ada permintaan baru yang masuk, CPU tetap digunakan karena utas macet tidak pernah benar-benar berakhir.

Terkadang permintaan baru memicu perilaku ini lagi , dan kemudian Anda mendapatkan dua CPU macet (atau tiga, atau empat ...).

Daur ulang kumpulan aplikasi tentu saja mengakhiri semua utas pekerja, sehingga masalahnya terpecahkan ... sampai terjadi lagi.

Massimo
sumber
0

Anda dapat memasang profiler CPU ke proses w3wp dan lihat apa yang terjadi di sana. Anda harus dapat melihat apa yang menghabiskan siklus CPU.

MichelZ
sumber
bagaimana melampirkan profiler CPU ke proses w3wp secara terprogram ketika CPU atau RAM tinggi lebih dari 90% ?
Kiquenet
0

Tampak seperti loop tak terbatas bagi saya. Saya telah melihat ini beberapa kali, meskipun IIS mengatakan tidak ada permintaan luar biasa. Saya tidak yakin bagaimana itu bisa terjadi, tetapi ini persis seperti yang Anda lihat. Bagian yang sulit adalah bahwa IIS tidak mencatat permintaan sampai mereka selesai, jadi mencari tahu permintaan mana yang memicu perilaku ini sulit.

James
sumber