Atau apakah perfmon harus dibatasi pada server Dev / QA dengan tes beban yang mensimulasikan aktivitas produksi?
Saya ingin menjalankan perfmon selama dua hari ( seperti yang disarankan oleh master Sql Server, Brent Ozar ) untuk mendapatkan gambaran keseluruhan kinerja database aplikasi web saya.
sql-server
performance
performance-tuning
perfmon
Bill Paetzke
sumber
sumber
Jawaban:
SQL Server, dan sebagian besar produk lainnya, menghasilkan penghitung sepanjang waktu, tidak peduli apakah ada pendengar atau tidak (mengabaikan opsi -x startup). Counter tracing sepenuhnya transparan pada aplikasi yang dipantau. Ada wilayah memori bersama di mana aplikasi yang dipantau menulis dan dari mana sesi pemantauan membaca nilai mentah pada interval yang ditentukan. Jadi satu-satunya biaya yang terkait dengan pemantauan adalah biaya proses pemantauan dan biaya untuk menulis nilai-nilai sampel ke disk. Memilih interval pengumpulan yang layak (saya biasanya memilih 15 detik) dan sejumlah moderat penghitung (50-100), dan menulis ke dalam format file biner biasanya tidak meninggalkan dampak pada sistem yang dipantau.
Tapi saya akan merekomendasikan untuk tidak menggunakan Perfmon (seperti pada perfmon.exe). Alih-alih membiasakan diri dengan logman.exe, lihat Deskripsi Alat Logman.exe, Relog.exe, dan Typeperf.exe . Dengan cara ini Anda tidak mengikat sesi pengumpulan ke sesi Anda. Logman, sebagai alat baris perintah, dapat digunakan dalam skrip dan pekerjaan terjadwal untuk memulai dan menghentikan sesi pengumpulan.
sumber
Tidak ada yang salah dengan menjalankan perfmon di kotak produksi. Kunci relatif rendah, dan dapat mengumpulkan banyak info bagus untuk Anda. Dan bagaimana Anda secara akurat mensimulasikan beban produksi jika Anda tidak menjalankan beberapa analisis pada server produksi? Dari Brent Ozar di tautan Anda sendiri:
Saya sudah menjalankan perfmon di sejumlah kotak Exchange produksi tanpa efek samping.
sumber
Sejak saya mendengarkan Clint Huffman , yang menulis PAL utilitas untuk menganalisis Perfmon Logs, di podcast sekali. Saya telah mengatur apa yang saya sebut Perekam Penerbangan di semua server aplikasi produksi kami. Praktik ini sangat berguna untuk mendiagnosis masalah dan memantau tren.
Di bawah ini adalah skrip yang saya gunakan untuk mengatur Perfmon Collector yang memulai secara otomatis, dengan pembersihan log. Jika diinginkan, itu bisa diumpankan file penghitung kinerja daftar untuk mengumpulkan (satu per baris) atau file XML Ambang Batas PAL. Saya suka menggunakan file Threshold PAL.
sumber
Kami cukup sering melakukannya. Ini juga penting untuk menetapkan garis dasar di lingkungan nyata, sehingga Anda dapat membandingkan nanti jika ada masalah atau Anda perlu melakukan studi kapasitas.
Saya sarankan tidak pergi di bawah interval 10 detik. Jika Anda mengumpulkan banyak objek / penghitung dan intervalnya terlalu sering, ini dapat memengaruhi pengoperasian.
Microsoft memiliki PerfMon Wizard yang akan mengatur tugas untuk Anda.
http://www.microsoft.com/downloads/details.aspx?FamilyID=31FCCD98-C3A1-4644-9622-FAA046D69214&displaylang=en
sumber
Di dunia yang ideal di mana server produksi persis mencerminkan apa yang server dev, lakukan dan juga merupakan duplikat yang tepat dari server dev, perfmon seharusnya tidak diperlukan pada server produksi karena hasilnya akan sama dengan yang ada di server dev. Tentu saja situasi mistis itu tidak pernah terjadi, jadi kita perlu menjalankan perfmon di server produksi dan sama sekali tidak ada yang salah dengan itu. Di antara hal-hal lain, kita mungkin perlu menggunakan perfmon dan alat lain untuk mempelajari mengapa server produksi tidak berperilaku sama dengan server dev.
sumber
Mengapa perfmon Maksud saya, versi terbaru dari SQL server memiliki metode mereka sendiri untuk melakukan itu termasuk membangun gudang data (pusat) dari penghitung kinerja yang kemudian dapat ditanyakan dan dilaporkan. Tidak ada gunanya menjalankan perfmon di sana.
Saya, seperti biasa, heran dengan semua posting di sini dari orang-orang yang jelas tidak pernah membaca dokumentasi;)
http://www.simple-talk.com/sql/learn-sql-server/sql-server-2008-performance-data-collector/ adalah awal yang baik. IMHO yang seharusnya bekerja pada hampir setiap sql server yang digunakan untuk keperluan produksi.
sumber
Tidak ada yang salah dengan menjalankan Perfmon seperti yang disarankan banyak orang, tetapi saya akan menjalankan Profiler sebagai gantinya atau sebagai tambahan, dengan peringatan yang sama, jangan menangkap terlalu banyak terlalu sering, cukup tangkap query yang berjalan lama, yaitu durasi> x detik, atau cpu> xx , atau membaca> xxxx; dampaknya sangat kecil, dan Anda akan segera melihat pertanyaan yang paling diuntungkan dari penyetelan.
sumber