Saya memiliki lima aplikasi dalam Paket Layanan Aplikasi Azure, semua salinan berbeda dari aplikasi yang sama untuk klien yang berbeda. Ini adalah aplikasi ASP.NET MVC dengan database SQL.
Pagi ini saya bangun ke situs lambat dan non-responsif, kadang-kadang menghasilkan kesalahan 503. Setelah memeriksa metrik CPU / Memori untuk Paket Layanan Aplikasi, saya menemukan CPU dipatok pada 100%:
Dan grafik waktu CPU masing-masing situs menunjukkan semuanya mati secara bersamaan, meskipun beberapa lebih buruk daripada yang lain:
Saya mencoba menyelesaikan masalah dengan melakukan Restart Aplikasi Lanjutan, tetapi blade tidak mau memuat - saya berasumsi karena mencoba mendapatkan informasi dari server yang tidak bisa merespons.
Pada akhirnya saya mencoba menghentikan masing-masing situs satu per satu, yang membawa CPU kembali ke nol, kemudian memulai kembali, yang tampaknya telah menyelesaikan masalah, tetapi sekarang beberapa dari mereka mulai naik kembali.
Saya mengalami masalah yang sama beberapa minggu yang lalu dan menganggap saya tumbuh terlalu besar untuk Rencana Aplikasi saya, jadi ditingkatkan dari S1 ke S2 dan itu baik-baik saja sampai hari ini.
Saya benar-benar bingung bagaimana mencari tahu apa penyebab perilaku lapar CPU ini. Adakah yang bisa mengarahkan saya ke arah yang benar tentang bagaimana saya bisa mulai mendiagnosis ini?
sumber
Jawaban:
Kami telah mengalami masalah ini beberapa kali dan setiap kali ternyata melarikan diri GC (pengumpulan sampah). Sulit untuk membuktikan dan mendiagnosis, tetapi yang akhirnya saya lakukan adalah menggunakan situs kudo (scm), mengklik alat => dukungan (yang membawa Anda ke situs dukungan untuk aplikasi.
Dari sini Anda memilih direktori Anda (jika Anda memiliki beberapa) dan situs, klik pada Analyze => Metrics kemudian tombol Diagnose ( CATATAN ini sudah berubah sehingga langkah-langkah ini dapat berubah setiap saat), lalu kembali pada Analyze => Dianotics, Anda Akhirnya akan mendapatkan laporan Memory Dump => "Status analisis". Ini harus berupa file mht (yang dapat Anda buka di browser yang penuh kebencian, IE atau Edge), lalu cari kunci "gc".
Anda akan menemukan beberapa frame stack panggilan yang menarik dengan referensi ke hal-hal seperti "GCFrame" atau lebih menarik lagi panggilan ke "System.Threading.WaitHandle.WaitMultiple" jika Anda mendapatkan terlalu banyak dari ini, sistem Anda mungkin mengalami masalah dengan pengumpulan sampah .
Bagaimana mengatasinya ... itu topik yang dibahas di banyak utas lainnya karena seperti bertanya "bagaimana saya hidup di dunia dengan IE 6 yang masih digunakan?" ...
sumber
Taruhan terbaik Anda akan menginstal Relic Baru atau Wawasan Aplikasi untuk aplikasi khusus ini. Itu dapat dengan mudah diinstal melalui Layanan Aplikasi -> Alat -> Pemantauan Kinerja. Ini akan memberi Anda pandangan rinci tentang apa yang terjadi di sisi server dan klien.
Artikel: Memantau kinerja aplikasi web Azure
sumber