Cara memperkirakan kehadiran (jumlah pengguna) di situs web IIS

Seberapa cepat memperkirakan jumlah koneksi pengguna saat ini ke situs di server web IIS, berjalan di windows server? Informasi tersebut akan memungkinkan untuk menilai dan memprediksi beban di server dengan lebih akurat, memilih waktu optimal untuk pemeliharaan dan pembaruan situs, dan memperkirakan beban di server dengan peningkatan jumlah pengguna.

Cara termudah untuk menentukan jumlah pengguna sesi aktif di situs web IIS adalah melalui penghitung kinerja di Windows Performance Monitor..

Buka konsol Performa Monitor, menjalankan perintah perfmon dan pergi ke konsol monitor kinerja (Alat Pemantau -> Monitor Kinerja).

Selanjutnya, Anda perlu menambahkan penghitung yang kita butuhkan ke jendela monitor (secara default, penghitung menampilkan total beban CPU pada jendela - Anda dapat menghapusnya). Untuk menambahkan penghitung baru, klik tombol hijau di bilah alat (itu disorot di tangkapan layar) atau tekan kombinasi tombol Ctrl+N.

Dalam daftar kategori penghitung yang tersedia, kami menemukan dan memperluas grup Layanan Web. Dalam kategori ini kami tertarik pada tiga counter:

  • Saat ini Anonim Pengguna - Jumlah pengguna IIS anonim
  • Saat ini Non-Anonim Pengguna - jumlah pengguna IIS resmi (bukan anonim);
  • Saat ini Koneksi - jumlah total koneksi aktif di server IIS.

Kami akan memilih penghitung yang sesuai dan dalam bidang Contoh objek yang dipilih, pilih satu atau lebih situs IIS yang ingin Anda tampilkan informasi tentang koneksi. Informasi tentang pengguna dari semua situs di server terdapat dalam instance _Total. Tetap menekan tombol Tambah >>, sehingga penghitung yang diinginkan bergerak ke daftar penghitung yang ditambahkan di jendela kanan.

Dengan cara yang sama, tambahkan semua penghitung yang diperlukan dan klik OK.

Sekarang di konsol Monitor Kinerja, informasi waktu-nyata akan ditampilkan pada jumlah koneksi aktif (sesi) pengguna di server / situs web IIS (secara default, nilai penghitung ditampilkan dalam grafik garis). Dengan memilih salah satu penghitung di panel bawah, Anda dapat melihat nilai saat ini (terakhir), rata-rata (rata-rata), minimum (minimum) dan maksimum (maksimum) untuk periode waktu tertentu.

Anda dapat menambahkan penghitung kinerja Anda sendiri ke konsol saat ini dan menyimpannya dalam tampilan terpisah, yang nantinya dapat Anda gunakan untuk dengan cepat mengakses informasi tentang beban di server web.

Data penghitung kinerja untuk situs IIS juga dapat diakses dari PowerShell. Untuk melakukan ini, cukup gunakan cmdlet untuk mendapatkan data dari penghitung kinerja Dapatkan counter.

Daftar semua penghitung kinerja yang tersedia untuk Layanan Web dapat ditampilkan sebagai berikut:

(Dapatkan-Counter -ListSet 'Layanan Web'). Counter

Untuk mendapatkan informasi tentang jumlah koneksi aktif saat ini di server IIS (counter \ Web Service (*) \ Current Connections) gunakan perintah ini:

Get-Counter -Counter “\ Layanan Web (*) \ Koneksi Saat Ini”

Seperti yang Anda lihat, perintah ini mengembalikan jumlah total koneksi ke server IIS dan statistik untuk setiap situs.

Kiat.

  • Nilai beberapa penghitung dapat ditampilkan dengan menentukan mereka dipisahkan oleh koma;
  • Dengan kunci -Terus menerus informasi tentang nilai penghitung akan di-output ke konsol secara konstan sampai interupsi dilakukan oleh perintah CTRL + C.

Seperti yang kami katakan, Anda bisa mendapatkan jumlah sesi aktif untuk situs IIS tertentu. Misalnya, untuk mendapatkan jumlah koneksi saat ini di sebuah situs dengan nama Site1, jalankan perintah (Anda dapat menentukan nama server di mana konter diperiksa, ketika memeriksa jumlah koneksi di situs secara lokal, itu tidak diperbolehkan untuk menentukan localhost):

Dapatkan-Counter "layanan web (Site1) \ koneksi saat ini" -ComputerName web-app01

Untuk menghindari menentukan nama server setiap kali, Anda dapat menggunakan variabel lingkungan COMPUTERNAME

Get-Counter "layanan web (Site1) \ koneksi saat ini" -ComputerName $ env: COMPUTERNAME

Untuk mendapatkan nilai numerik dari penghitung "koneksi saat ini" dari seluruh server web IIS (beban total pada IIS), Anda dapat menggunakan kode berikut:

((Dapatkan-Counter -Counter 'layanan web (_total) \ koneksi saat ini' -komputer $ env: COMPUTERNAME) | Select-Object -Expand countersamples) .Cookedvalue

Mari kita coba gunakan skrip sederhana untuk membuat beberapa sesi tambahan dengan situs web kami dan periksa nilai penghitungnya. Anda dapat membuat jumlah panggilan ke IIS menggunakan cmdlet Invoke-WebRequest, atau Anda dapat membuka beberapa jendela di browser:

$ counter = 20
untuk ($ i = 1; $ i -le $ counter; $ i ++)
$ SiteAdress = "http: // localhost: 9666 /"
Mulai-Proses $ SiteAdress

Setelah itu, periksa nilai penghitung koneksi saat ini dan pastikan itu meningkat.

Jika beberapa situs IIS berjalan di server, dan Anda perlu mendapatkan jumlah koneksi ke masing-masing dalam bentuk tabel, Anda dapat menggunakan skrip ini (untuk mendapatkan data dari IIS ke PowerShell, Anda perlu memuat modul Administrasi Web):

impor-modul administrasi web
function get-CurrentConnection ($ Site)
Get-Counter "layanan web ($ Site) \ koneksi saat ini, layanan web ($ Site) \ Bytes Diterima / detik, layanan web ($ Site) \ Bytes Terkirim / detik" -ComputerName $ env: COMPUTERNAME

$ IISsites = dir IIS: \ Sites | Pilih nama
$ CurrentConnection = @ ()
foreach ($ situs dalam $ IISsites)

Tulis-Host $ situs
$ ConnCount = Objek Baru psobject | get-CurrentConnection -Site $ site.name
$ CurrentConnection + = $ ConnCount

$ CurrentConnection | out-gridview

Anda juga dapat menampilkan nilai numerik penghitung koneksi untuk semua situs seperti ini (nilai pertama adalah jumlah total koneksi ke IIS):

Dapatkan-wmiObject -class Win32_PerfRawData_W3SVC_WebService | pilih-objek-luaskan sambungan saat ini

Anda juga dapat menampilkan informasi tentang jumlah data yang diterima / dikirim untuk setiap situs atau seluruh server web menggunakan layanan web penghitung (nama pengguna) \ Bytes yang Diterima / dtk dan layanan web (nama pengguna) \ Bytes Terkirim / dtk ».

Jadi, kami memeriksa teknik yang memungkinkan Anda untuk mendapatkan informasi tentang beban di situs yang berjalan di server web IIS.