Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Tom FitzMacken
Peringatan
Dokumentasi ini bukan untuk versi terbaru SignalR. Lihatlah ASP.NET Core SignalR.
Artikel ini menjelaskan cara menggunakan alat Crank untuk menguji aplikasi dengan beberapa klien yang disimulasikan.
Setelah aplikasi Anda berjalan di lingkungan hostingnya (baik peran web Azure, IIS, atau yang dihost sendiri menggunakan Owin), Anda dapat menguji respons aplikasi terhadap tingkat kepadatan koneksi yang tinggi menggunakan alat Crank. Lingkungan hosting dapat menjadi server Internet Information Services (IIS), host Owin, atau peran web Azure. (Catatan: Penghitung kinerja tidak tersedia di Azure App Service Web Apps, sehingga Anda tidak akan bisa mendapatkan data performa dari pengujian kepadatan koneksi.)
Kepadatan Koneksi mengacu pada jumlah koneksi TCP simultan yang dapat dibuat di server. Setiap koneksi TCP menimbulkan overhead sendiri, dan membuka sejumlah besar koneksi diam pada akhirnya akan menciptakan penyempitan memori.
Basis kode SignalR menyertakan alat pengujian beban yang disebut Crank. Versi terbaru Crank dapat ditemukan di cabang Dev di GitHub. Anda dapat mengunduh arsip Zip cabang Dev dari basis kode SignalR di sini.
Crank dapat digunakan untuk sepenuhnya memenuhi memori server untuk menghitung jumlah total koneksi menganggur yang mungkin pada perangkat keras server. Atau, Anda juga dapat menggunakan Crank untuk memuat pengujian server di bawah sejumlah tekanan memori, dengan meningkatkan koneksi hingga jumlah tertentu atau ambang memori tertentu tercapai.
Saat pengujian, penting untuk menggunakan klien jarak jauh untuk menghindari persaingan untuk sumber daya (yaitu, koneksi dan memori TCP). Pantau klien untuk memastikan bahwa mereka tidak mencapai hambatan apa pun yang dapat mencegah server mencapai kapasitas penuhnya (memori atau CPU). Anda mungkin perlu meningkatkan jumlah klien untuk memuat server sepenuhnya.
Menjalankan Uji Kepadatan Koneksi
Bagian ini menjelaskan langkah-langkah yang diperlukan untuk menjalankan pengujian kepadatan koneksi pada aplikasi SignalR.
- Unduh dan bangun cabang Dev dari basis kode SignalR. Dalam perintah, navigasi ke <project directory>\src\Microsoft.AspNet.SignalR.Crank\bin\debug.
- Sebarkan aplikasi Anda ke lingkungan hosting yang dimaksudkan. Catat titik akhir yang digunakan aplikasi Anda; misalnya, dalam aplikasi yang dibuat dalam tutorial Memulai, titik akhirnya adalah
http://<yourhost>:8080/signalr
. - Instal penghitung kinerja SignalR di server. Jika aplikasi Anda berjalan di Azure, lihat Menggunakan Penghitung Kinerja SignalR dalam Peran Web Azure.
Setelah Anda mengunduh dan membangun basis kode, dan menginstal penghitung kinerja pada host Anda, alat baris perintah Crank dapat ditemukan di src\Microsoft.AspNet.SignalR.Crank\bin\Debug
folder .
Opsi yang tersedia untuk alat Crank meliputi:
- /?: Menampilkan layar bantuan. Opsi yang tersedia juga ditampilkan jika parameter Url dihilangkan.
- /Url: URL untuk koneksi SignalR. Parameter ini diperlukan. Untuk aplikasi SignalR menggunakan pemetaan default, jalur akan berakhir di "/signalr".
-
/Transport: Nama transportasi yang digunakan. Defaultnya adalah
auto
, yang akan memilih protokol terbaik yang tersedia. Opsi termasukWebSockets
,ServerSentEvents
, danLongPolling
(ForeverFrame
bukan opsi untuk Crank, karena klien .NET daripada Internet Explorer digunakan). Untuk informasi selengkapnya tentang cara SignalR memilih transportasi, lihat Transportasi dan Fallback. - /BatchSize: Jumlah klien yang ditambahkan di setiap batch. Defaultnya adalah 50.
- /ConnectInterval: Interval dalam milidetik antara menambahkan koneksi. Defaultnya adalah 500.
- /Connections: Jumlah koneksi yang digunakan untuk load-test aplikasi. Defaultnya adalah 100.000.
- /ConnectTimeout: Waktu habis dalam hitungan detik sebelum membatalkan pengujian. Defaultnya adalah 300.
- MinServerMBytes: Megabyte server minimum untuk dijangkau. Defaultnya adalah 500.
- SendBytes: Ukuran payload yang dikirim ke server dalam byte. Defaultnya adalah 0.
- SendInterval: Penundaan milidetik antara pesan ke server. Defaultnya adalah 500.
- SendTimeout: Batas waktu dalam milidetik untuk pesan ke server. Defaultnya adalah 300.
- ControllerUrl: Url tempat satu klien akan menghosting hub pengontrol. Defaultnya adalah null (tanpa hub pengontrol). Hub pengontrol dimulai ketika sesi Crank dimulai; tidak ada kontak lebih lanjut antara hub pengontrol dan Crank dibuat.
- NumClients: Jumlah klien yang disimulasikan untuk terhubung ke aplikasi. Defaultnya adalah satu.
-
Logfile: Nama file untuk logfile untuk uji coba. Default adalah
crank.csv
. - SampleInterval: Waktu dalam milidetik antara sampel penghitung kinerja. Defaultnya adalah 1000.
- SignalRInstance: Nama instans untuk penghitung kinerja di server. Defaultnya adalah menggunakan status koneksi klien.
Contoh
Perintah berikut akan menguji situs yang disebut pfsignalr
di Azure yang menghosting aplikasi di port 8080 dengan hub bernama "ControllerHub", menggunakan 100 koneksi.
crank /Connections:100 /Url:http://pfsignalr.cloudapp.net:8080/signalr