Saya menyiapkan tumpukan nginx dan mengoptimalkan konfigurasi sebelum ditayangkan. Menjalankan untuk menguji mesin, saya kecewa melihat hal-hal topping pada 150 permintaan per detik dengan sejumlah besar permintaan mengambil> 1 detik untuk kembali. Anehnya, mesin itu sendiri bahkan tidak terengah-engah.
Saya akhirnya berpikir untuk melakukan ping kotak dan melihat waktu ping sekitar 100-125 ms. (Mesin, yang mengejutkan saya, ada di seluruh negeri). Jadi, sepertinya latensi jaringan mendominasi pengujian saya. Menjalankan tes yang sama dari mesin di jaringan yang sama dengan server (waktu ping <1ms) dan saya melihat> 5000 permintaan per detik, yang lebih sesuai dengan apa yang saya harapkan dari mesin.
Tapi ini membuat saya berpikir: Bagaimana cara saya menentukan dan melaporkan ukuran "realistis" dari permintaan per detik untuk server web? Anda selalu melihat klaim tentang kinerja, tetapi bukankah latensi jaringan harus dipertimbangkan? Tentu saya bisa melayani 5.000 permintaan per detik ke mesin di sebelah server, tetapi tidak ke mesin di seluruh negeri. Jika saya memiliki banyak koneksi yang lambat, mereka pada akhirnya akan berdampak pada kinerja server saya, bukan? Atau apakah saya menganggap semua ini salah?
Maafkan saya jika ini adalah teknik jaringan 101 hal. Saya seorang pengembang berdasarkan perdagangan.
Pembaruan: Diedit untuk kejelasan.
sumber
ab
memiliki opsi konkurensi. Anda mengaturnya untuk apa? Juga, jika Anda menguji dari koneksi ADSL domestik, tes kemungkinan akan didominasi oleh bandwidth Anda dan tidak akan menguji apa pun di server sama sekali.Jawaban:
Jika Anda peduli dengan kinerja server Anda ketika diakses dari suatu tempat di dunia, mintalah seorang teman di suatu tempat di dunia (harus memiliki bandwidth yang baik) untuk menginstal sproxy + siege pada kotak linux-nya. Cukup unduh, konfigurasikan, buat. Alat-alat ini kecil, mereka dikompilasi dalam hitungan detik.
Pertama, mulai
sproxy
dari kotak linux. Secara default, ini akan berjalan pada port 9001 di localhost (127.0.0.1). Jika Anda ingin mengaksesnya dari luar, cukup berikan alamat ip keluar sebagai parameter.Sekarang terhubung ke sproxy dengan mengatur browser Anda untuk menggunakan ip dan port ini sebagai proxy untuk HTTP. Semua yang Anda lakukan mulai sekarang direkam dengan sproxy dan dapat diputar ulang nanti. Sekarang menjelajahi situs Anda, lakukan hal-hal yang akan dilakukan pelanggan Anda dan coba lakukan hal-hal "mahal" yang menggunakan server Anda.
Setelah selesai, akhiri sproxy dengan menekan CTRL ^ C. Itu merekam tindakan Anda ke
$HOME/urls.txt
. Pindahkan file ke tempat pengepungan berada. Untuk memulai pengujian stres, jalankansiege -f urls.txt -d NUM -c NUM
.d
singkatan dari penundaan antara permintaan, saat melakukan tes kinerja, gunakan 1 (detik).c
singkatan dari jumlah pengguna bersamaan yang disimulasikan. Pilih sesuka hati, tetapi mulai rendah. Siege akan menunjukkan jumlah transaksi per detik, kesalahan, berapa lama rata-rata permintaan, dll. Ini adalah alat yang kuat dan mudah digunakan.Jika Anda membutuhkan info lebih lanjut tentang parameter (ada banyak), periksa pengepungan panduan suatu yang pengguna sproxy
Untuk mendapatkan hasil yang lebih realistis, biarkan banyak orang menguji server Anda dari berbagai negara sekaligus dan biarkan mereka mengirimkan statistiknya kepada Anda.
sumber
Permintaan / ukuran realistis harus diambil dari log akses. IMO, latensi permintaan tidak ada hubungannya dengan beban server, karena server memproses semua permintaan pada kecepatan yang sama terlepas dari asalnya.
sumber
Pertimbangkan untuk menggunakan layanan seperti Soasta Cloudtest . Dengan itu Anda bisa mendapatkan laporan yang cukup rinci tentang tes Anda dan Anda dapat menjalankan tes kinerja dari berbagai penyedia cloud / virtualisasi publik. Anda dapat mengkonfigurasi seberapa keras dan untuk berapa lama Anda ingin memalu server Anda. Mereka juga memiliki versi " lite " gratis sehingga Anda dapat melihat apa yang dapat dilakukan sebelum melakukan uang.
sumber