AB adalah singkatan dari ApacheBench.
Perintah ab membuat beberapa utas akses bersamaan untuk mensimulasikan beberapa pengunjung yang mengakses alamat URL secara bersamaan. Target pengujiannya berbasis URL, sehingga dapat digunakan untuk menguji tekanan beban apache dan tekanan server web lainnya seperti nginx, lighthttp, tomcat, IIS, dll.
Perintah ab memiliki persyaratan rendah untuk komputer yang mengeluarkan beban, dan tidak memakan banyak CPU atau memori. Namun, itu akan menyebabkan beban besar pada server target, dan prinsipnya mirip dengan serangan CC. Anda juga perlu memperhatikan pengujian dan penggunaannya sendiri, jika tidak, Anda akan memiliki terlalu banyak beban sekaligus. Ini dapat menyebabkan server target kehabisan sumber daya, dan dalam kasus yang parah, bahkan menyebabkan crash.
1. Pengantar Apache Bench
ApacheBench adalah alat pengujian stres web yang disertakan dengan server Apache, disingkat ab. ab juga merupakan alat baris perintah dengan persyaratan asli yang rendah untuk memulai muatan, dan banyak utas akses bersamaan dapat dibuat sesuai dengan perintah AB, mensimulasikan beberapa pengunjung yang mengakses alamat URL tertentu secara bersamaan, sehingga dapat digunakan untuk menguji tekanan beban server target. Secara umum, alat AB kecil dan sederhana, cepat dipelajari dan dapat memberikan indikator kinerja dasar yang Anda butuhkan, tetapi tidak ada hasil grafis dan tidak dapat dipantau.
2. Instalasi Apache Bench
Pertama, Anda perlu menginstal server Apache, unduh alamatnya:Login hyperlink terlihat.,
Komputer saya adalah sistem win10 64-bit, jadi saya mengunduh "httpd-2.4.33-win64-VC15.zip", tautan:Login hyperlink terlihat.
Disarankan untuk mengunduh versi terbaru, karena versi ab yang lebih lama tidak mendukung parameter -r.
3. Penggunaan Apache Bench
Pahami parameternya
Deskripsi parameter: Format: ab [opsi] [http://]nama host[:p ort]/jalur
-n permintaan Jumlah permintaan yang akan dilakukan //Jumlah total permintaan yang dimulai dalam pengujian ini -c konkurensi Jumlah beberapa permintaan untuk dibuat // Jumlah permintaan (atau konkurensi) yang dihasilkan sekaligus -t batas waktu Detik hingga maks. Tunggu Tanggapan //Jumlah detik maksimum pengujian dilakukan secara default. -r Jangan keluar dari kesalahan penerimaan soket. Lemparkan pengecualian untuk melanjutkan tugas pengujian -p postfile File yang berisi data ke POST // File yang berisi data yang perlu POST, dalam format file seperti "p1=1&p2=2". Metode penggunaannya adalah -p 111.txt
-T header tipe konten untuk POSTing Header tipe konten yang digunakan untuk data POST, seperti -T "application/x-www-form-urlencoded". (co-p) -v verbosity Berapa banyak info pemecahan masalah yang akan dicetak Atur tingkat detail untuk menampilkan informasi – nilai 4 atau lebih besar akan menampilkan informasi header, nilai 3 atau lebih besar akan menampilkan kode respons (404, 200, dll.), dan nilai 2 atau lebih besar akan menampilkan peringatan dan informasi lainnya. -V menampilkan nomor versi dan keluar. -C Tambahkan cookie, misalnya. -C "c1 = 1234, c2 = 2, c3 = 3" (dapat diulang) -C cookie-name=value Tambahkan cookie ke baris request:. Bentuk tipikal adalah pasangan parameter name=value. Parameter ini dapat diulang, dibagi dengan koma. Tips: Anda dapat menggunakan prinsip implementasi sesi untuk meneruskan parameter JSESSIONID guna mencapai fungsi mempertahankan sesi, seperti -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Cetak hasil dalam tabel HTML // Hasil keluaran dalam format tabel HTML. Secara default, ini adalah tabel dengan lebar dua kolom dengan latar belakang putih. -i Gunakan HEAD alih-alih GET -x atribut String untuk disisipkan sebagai atribut tabel -y atribut String untuk disisipkan sebagai atribut tr -z atribut String untuk disisipkan sebagai atribut td atau th -H Tambahkan baris header Arbitrary, misalnya. 'Accept-Encoding: gzip' Disisipkan setelah semua baris header normal. (dapat diulang) -Atribut Tambahkan Autentikasi WWW Dasar, atribut adalah nama pengguna dan kata sandi yang dipisahkan titik dua. -P Tambahkan Otentikasi Proksi Dasar, atributnya adalah nama pengguna dan kata sandi yang dipisahkan titik dua. -X proxy:port Proxyserver dan nomor port yang akan digunakan -V Cetak nomor versi dan keluar -k Gunakan fitur HTTP KeepAlive -d Jangan tampilkan tabel persentil yang disajikan. -S Jangan menunjukkan estimator dan peringatan kepercayaan. -g nama file Keluarkan data yang dikumpulkan ke file format gnuplot. -e nama file Keluaran file CSV dengan persentase yang disajikan -h Menampilkan informasi penggunaan (pesan ini) Ada banyak parameter, umumnya kita bisa menggunakan parameter -c dan -n. Sebagai contoh:
Unzip "httpd-2.4.33-win64-VC15.zip", buka \Apache24\bin, dan mulai dengan baris perintah cmd, seperti yang ditunjukkan pada gambar di bawah ini:
SSL tidak dikompilasi; tidak ada dukungan https: SSL tidak dikompilasi; Tidak ada dukungan https, yang berarti situs web tidak mendukung https.
Hasil pengujian:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL tidak dikompilasi; Tidak ada dukungan https
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Ini adalah ApacheBench, Versi 2.3 <$Revision: 1826891 $> Hak Cipta 1996 Adam Twiss, Zeus Technology Ltd,Login hyperlink terlihat. Berlisensi ke The Apache Software Foundation,Login hyperlink terlihat.
Pembandinganwww.itsvse.com(bersabarlah) Menyelesaikan 100 permintaan Menyelesaikan 200 permintaan Menyelesaikan 300 permintaan Menyelesaikan 400 permintaan Menyelesaikan 500 permintaan Menyelesaikan 600 permintaan Menyelesaikan 700 permintaan Menyelesaikan 800 permintaan Menyelesaikan 900 permintaan Menyelesaikan 1000 permintaan Selesai 1000 permintaan
Perangkat Lunak Server: Nama Host Server: www.itsvse.com Port Server: 80
Jalur Dokumen: / Panjang Dokumen: 178 byte
Tingkat Konkurensi: 10 Waktu yang dibutuhkan untuk pengujian: 44.916 detik Permintaan lengkap: 1000 Permintaan gagal: 0 Tanggapan non-2xx: 1000 Total transfer: 349000 byte HTML ditransfer: 178000 byte Permintaan per detik: 22,26 [#/detik] (rata-rata) Waktu per permintaan: 449,164 [ms] (rata-rata) Waktu per permintaan: 44,916 [ms] (rata-rata, di semua permintaan bersamaan) Kecepatan transfer: 7,59 [Kbyte/detik] diterima
Waktu Koneksi (ms) rata-rata min[+/-sd] maks median
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Persentase permintaan yang dilayani dalam waktu tertentu (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (permintaan terpanjang) Analisis parameter:
Jalur Dokumen: Halaman pengujian Panjang Dokumen: Ukuran halaman Tingkat Konkurensi: Jumlah konkurensi yang diuji secara bersamaan Waktu yang dibutuhkan untuk pengujian: Durasi seluruh pengujian Permintaan lengkap: Jumlah permintaan yang diselesaikan Permintaan yang gagal: Jumlah permintaan yang gagal Kesalahan tulis: 0 Total yang ditransfer: Jumlah jaringan yang ditransfer selama proses HTML ditransfer: Jumlah konten HTML yang ditransfer selama proses Permintaan per detik: Salah satu metrik terpenting, setara dengan transaksi per detik dalam LR, dan rata-rata dalam tanda kurung menunjukkan bahwa ini adalah rata-rata Waktu per permintaan: Dua metrik terpenting, setara dengan rata-rata waktu respons transaksi dalam LR, rata-rata dalam tanda kurung menunjukkan bahwa ini adalah rata-rata Waktu per permintaan: Rata-rata waktu proses aktual untuk setiap permintaan koneksi Kecepatan transfer: Lalu lintas rata-rata per detik di jaringan, yang dapat membantu menyingkirkan masalah lalu lintas jaringan yang berlebihan yang menyebabkan waktu respons yang lama
|