Ok, build baru kami memiliki lonjakan cpu 100% di setiap server secara acak. Untuk jangka waktu lama, itu membuat situs benar-benar tidak responsif - ini akan menjadi saat puncak ketika orang-orang di berbagai negara masuk ke situs dll.
Kami telah melihat perfmom, memori profiler, profiler CLR, sql profiler, profiler semut gerbang merah, mencoba pengujian beban dalam UAT - tetapi bahkan tidak dapat mereproduksi masalah. Ini bisa berarti hanya ribuan pengguna yang memukul situs langsung yang menyebabkannya terjadi.
Salah satu pola yang kami perhatikan adalah bahwa kode baru - build rusak - sebenarnya menggunakan thread yang lebih sedikit.
Kami juga menggunakan pegas untuk IOC - apakah ini memiliki reputasi bed?
Untuk memperburuk keadaan, kami tidak dapat menggunakan untuk hidup karena dampak bisnis - jadi tidak dapat mempersempit masalah menjadi subset dari fitur baru yang kami tambahkan.
Kami benar-benar hancur - adakah yang punya bekas luka pertempuran yang bisa menyelamatkan kami beberapa nyawa?
Jawaban:
Saya sarankan melakukan dump memori dan menganalisisnya di WinDdg dengan Sos. Saya memperbaiki beberapa masalah pada produksi kami, saya mungkin tidak akan dapat mendiagnosis tanpa WinDbg.
Tess Fernandez memiliki blog yang bagus di mana Anda dapat belajar cara menganalisis dump memori.
sumber
Ini biasanya disebabkan oleh pembersihan objek besar yang berumur panjang di GC ( stackoverflow mengalami masalah ini, lihat tautan ). Apakah Anda menyimpan banyak koleksi objek dalam cache atau sesi?
Penyerangan oleh GC
Saya juga merekomendasikan Anda membangun dan mengkonfigurasi server baru dalam produksi untuk menguji. Jika Anda memiliki kegilaan acak dan tidak tahu mengapa dan tidak bisa mereproduksinya, saya akan mengarahkan jari ke perangkat keras atau konfigurasi, bukan kode.
sumber
Apakah ini server virtual dengan sumber daya bersama atau server fisik? Jika yang pertama mungkin Anda bisa melihat mendedikasikan sumber daya ke server ini. Semoga berhasil...
sumber
Coba gunakan
cache server
sebagai frontend likeApache Traffic Server (ATS)
.Meskipun ini tidak akan menyelesaikan masalah, mungkin membantu untuk mengidentifikasi karena Anda pada saat yang sama akan memindahkan beban yang berpotensi berbahaya dari backend (melihat apakah frontend juga memiliki masalah) dan membuat hal-hal yang kurang dipanaskan di backend sehingga akan menjadi lebih mudah untuk melihat apa yang salah.
sumber
Mencoba menebak kesalahan tanpa data tidak ada gunanya. Ya, seseorang yang berada di stackoverflow atau di tim teknik Anda mungkin beruntung, tetapi itu hanya rekayasa yang buruk, dan Anda tidak dapat merencanakan berapa lama waktu yang Anda perlukan untuk mencoba setiap tebakan, dan jika Anda bahkan menemukan masalahnya.
CPU 100% agak mencurigakan dalam arti bahwa itu tidak mungkin I / O (menyediakan db adalah kotak lain, database yang lambat seharusnya tidak menyebabkan 100% CPU pada server web). Anda perlu melihat lebih dekat ke rumah.
sumber