Saya mengalami masalah kinerja di situs yang kami buat, dan saya tidak yakin bagaimana cara mendiagnosisnya.
Deskripsi singkatnya adalah: Kami memiliki situs yang sangat kecil ( http://hearablog.com ) dengan lalu lintas yang sangat sedikit, di server khusus yang jelek, CPU selalu sangat tinggi, kadang-kadang tetap 100% selama beberapa menit, dan w3wp.exe mengambil sebagian besar dari itu. Skenario tipikal adalah w3wp.exe mengambil 60%, dan SQL Server membutuhkan sekitar 30%. DB kami juga cukup kecil.
Deskripsi panjang dan detail lebih lanjut:
Situs ini dihosting di server yang sangat jelek oleh Cari.Net. Sejak awal kami memiliki perasaan bahwa server tidak berperilaku benar, seperti beberapa hal akan memakan waktu terlalu lama, jadi ini bisa menjadi masalah konfigurasi sejak awal. Ini mungkin juga bahwa kita mendapatkan server virtual sementara kita seharusnya memiliki satu berdedikasi, walaupun kita tidak punya bukti bahwa akan menunjukkan ini, kecuali untuk fakta bahwa server cenderung cukup lambat.
Server adalah Windows 2008 Standard 64-bit, dengan SQL 2008 Express
Perangkat kerasnya adalah Celeron 2,80 GHz, 1Gb RAM
Situs web ini dikembangkan dalam ASP.Net MVC, menggunakan Entity Framework untuk akses data.
Sekarang, ini adalah perangkat keras yang sangat jelek, tetapi saya memiliki server lain dengan orang-orang ini, dengan HW yang setara (atau lebih buruk), dan kinerjanya jauh lebih baik daripada yang ini. Yang mengatakan, server lain memiliki W2003 dan SQL2005, dan saya menggunakan ASP.Net "WebForms" 2.0, tanpa MVC, tanpa LINQ, tanpa EF; jadi saya tidak yakin apakah pergi ke 2008 / hal-hal lain berarti hukuman kinerja yang besar diharapkan.
Saya melayani file MP3 (5-20 Mb) secara teratur, yang merupakan beban yang sedikit tidak biasa, mungkin itu menyebabkan beberapa jenis masalah?
Apakah itu menyebabkan w3wp menggunakan banyak CPU?Penggunaan disk tampaknya sangat rendah. Memori biasanya sekitar 90%, tetapi penggunaan disk tampaknya menunjukkan itu tidak banyak paging.
Saya mendapatkan banyak sekali e-mail setiap hari tentang batas waktu SQL, untuk kueri yang menghabiskan waktu lebih dari 30 detik, meskipun semua kueri kami cukup mudah (atau seharusnya, tetapi EF mungkin mengacaukannya).
Ini adalah apa yang tampak seperti monitor sumber daya dalam salah satu "sprint" CPU 100% ini, jika ada sesuatu yang berguna di sana.
Dan cuplikan beberapa penghitung kinerja:
Sekarang, yang paling membingungkan saya adalah penggunaan CPU pada w3wp sangat tinggi. Seharusnya tidak melakukan banyak hal ... Jadi pertanyaan saya adalah ...
- Apakah ada cara untuk mengetahui "apa" yang dilakukannya? Mungkin bahkan profil itu?
- Adakah penghitung kinerja yang harus saya lihat?
- Apakah ini yang diharapkan mengingat konfigurasi perangkat keras / perangkat lunak ini?
- Apakah ini bisa disebabkan oleh beberapa jenis kegagalan konfigurasi, di mana Anda akan mulai mencari?
Terima kasih banyak.
Daniel Magliola