Cara membandingkan server web dengan bangku apache

Cara membandingkan server web dengan bangku apache

Apache Bench adalah alat yang digunakan untuk mengukur kinerja server web. Meskipun memiliki "apache" atas namanya, itu sebenarnya dapat digunakan untuk menguji segala jenis server web. Dalam tutorial ini, kami akan membahas langkah -langkah untuk menggunakan Apache Bench dan bagaimana menafsirkan laporannya tentang kinerja server web.

Apache Bench bekerja dengan mengirimkan berbagai jumlah permintaan HTTP ke server web dan merekam waktu respons. Ini dapat memberi tahu Anda berapa banyak kemacetan yang dapat ditangani server sebelum menjadi kewalahan dan kinerja berkurang.

Dalam tutorial ini Anda akan belajar:

  • Cara menginstal Apache Bench
  • Cara menggunakan bangku apache
  • Bagaimana menafsirkan hasil bangku apache
Cara membandingkan server web dengan bangku apache

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Distribusi GNU/Linux apa pun
Perangkat lunak AB
Lainnya Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo memerintah.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Cara menginstal Apache Bench

Apache Bench adalah bagian dari paket Apache2-UTILS, yang dapat diinstal dengan manajer paket sistem Anda.
Untuk Ubuntu dan distribusi berbasis Debian lainnya, gunakan perintah apt-get untuk menginstalnya:

$ sudo apt-get install apache2-utils 

Untuk CentOS/RHEL Execute:

# DNF Instal httpd-tools 


Cara menggunakan bangku apache

Gunakan bangku apache dengan perintah AB. Sintaks paling dasar adalah:

$ AB hostname/ 
CATATAN
AB Membutuhkan Slash Trailing pada Alamat Nama Host/IP.

Perintah dasar ini tidak terlalu berguna tanpa opsi tambahan, jadi mari kita sertakan beberapa. Apache Bench memiliki banyak opsi yang tersedia, tetapi beberapa yang paling berguna adalah:

  • -N (Nomor): Digunakan untuk menentukan jumlah permintaan yang harus dikirim AB ke Apache
  • -t (timeout): Digunakan untuk menentukan (dalam detik) berapa lama AB harus terus mengirim permintaan
  • -C (concurrent): Digunakan untuk menentukan jumlah permintaan simultan untuk AB untuk membuat

Anda dapat bermain -main dengan opsi -opsi ini untuk mensimulasikan lalu lintas yang lebih realistis untuk server web Anda, dan mengamati bagaimana kinerjanya dalam berbagai jumlah stres.

$ ab -t 10 -n 10000 -c 100 nama host/ 

Perintah ini akan membandingkan server web kami selama 10 detik, mengirimkan maksimum 10.000 total permintaan, dan mengirim 100 permintaan tersebut secara bersamaan.

Pertimbangan

Ada beberapa hal yang perlu dipertimbangkan saat menggunakan bangku apache. Ketika server menerima ribuan permintaan HTTP dari satu sumber dalam hitungan detik, banyak firewall akan menafsirkan bahwa sebagai penolakan serangan layanan dan mencoba untuk memblokir koneksi yang berulang untuk sementara waktu.

Kami hanya akan merekomendasikan menggunakan bangku apache di jaringan lokal, dan menguji terhadap host yang Anda kendalikan. Tetap saja, ini bukan simulasi lalu lintas yang sebenarnya.

Saat menghubungkan ke server web di suatu tempat di dunia, pengguna akan memiliki berbagai tingkat latensi dan hop (Rute yang mereka jalankan ke server web), yang memainkan peran utama dalam kecepatan yang dirasakan dari situs web Anda.
Selain itu, mesin uji Anda (sistem tempat Anda menjalankan perintah AB) bisa menjadi hambatan. Jika Anda menduga bahwa sistem Anda tidak memiliki sumber daya yang diperlukan untuk memulai sejumlah besar koneksi ini, Anda dapat memverifikasi dengan menggunakan perintah atas untuk memantau CPU dan penggunaan memori saat AB melakukan tesnya.

Jika Anda mendapatkan Waktu koneksi berakhir Kesalahan, koneksi Anda mungkin diblokir oleh firewall atau server Apache kewalahan dan tidak dapat menangani permintaan lebih lanjut.

Hasil Tes Bangku Apache

Ketika Apache Bench selesai menjalankan tesnya, itu akan menghasilkan hasil ke terminal, dan harus terlihat seperti ini:

Selesai 882 Permintaan Perangkat Lunak Server: Apache/2.4.29 Server HostName: --- Server Port: 80 Path Dokumen: / Dokumen Panjang: 4878 Bytes Level Konkurensi: 100 Waktu Diambil untuk Tes: 10.008 Detik Permintaan Lengkap: 882 Permintaan Gagal: 0 Total ditransfer: 4480560 byte html ditransfer: 4302396 byte permintaan per detik: 88.13 [#/detik] (rata -rata) waktu per permintaan: 1134.700 [MS] (rata -rata) Waktu per permintaan: 11.347 [MS] (rata -rata, di semua permintaan bersamaan) Tingkat Transfer: 437.20 [kbytes/detik] menerima waktu koneksi (ms) min rata-rata [+/- sd] median max connect: 77 327 1008.3 89 7240 Pemrosesan: 87 115 43.4 101 807 Menunggu: 86 112 39.1 100 604 Total: 168 442 1009.1 192 7373 Persentase dari permintaan yang dilayani dalam waktu tertentu (MS) 50% 192 66% 202 75% 224 80% 268 90% 428 95% 1207 98% 3208 99% 7345 100% 7373 (permintaan terlama) 


Menafsirkan Hasil Bangku Apache

Output di atas berisi semua informasi yang diperlukan; Anda hanya perlu tahu apa arti berbagai metrik ini untuk memahami hasilnya. Kami akan membahas semuanya di bagian ini.

Hasil Tes Bangku Apache

Beberapa baris pertama hanya memberikan informasi umum tentang server web. Informasi yang bermanfaat benar -benar dimulai dengan Waktu yang Diambil untuk Tes garis.

Waktu yang Diambil untuk Tes melaporkan berapa lama perintah AB untuk menyelesaikan tesnya. Karena kami menentukan -n 10 dalam perintah AB kami, baris ini jelas akan melaporkan bahwa tes memakan waktu 10 detik. Jika kami belum menentukan batas waktu, baris ini akan memberi tahu Anda berapa lama waktu yang dibutuhkan untuk menyelesaikan mengirimkan jumlah permintaan yang ditentukan. Setelah menerapkan optimasi ke server web Anda, Anda akan melihat penurunan waktu yang dibutuhkan untuk pengujian untuk diselesaikan (saat tidak menentukan batas waktu).

Permintaan lengkap melaporkan berapa banyak permintaan yang dikirim dan dikembalikan dengan sukses.

Permintaan yang gagal melaporkan berapa banyak permintaan yang tidak dapat diselesaikan. Anda jelas ingin melihat jumlah yang sangat kecil, idealnya nol. Jika baris ini melaporkan beberapa permintaan yang gagal, itu bisa menunjukkan bahwa server web kewalahan dan tidak dapat menanggapi semua permintaan tepat waktu.

Total ditransfer Dan HTML ditransfer Baris Laporkan berapa banyak data, dalam byte, dikirim ke server web.

Permintaan per detik adalah rata -rata berapa banyak permintaan yang dapat ditangani server web dalam sedetik. Ini berguna dalam menentukan bagaimana kinerja server web Anda ketika banyak pengguna mencatatnya secara bersamaan.

Waktu per permintaan adalah berapa banyak waktu, rata -rata, yang dibutuhkan untuk memproses permintaan. Nilai -nilai diberikan dalam milidetik, jadi dalam contoh kami output waktu adalah 1.1 detik. Kedua waktu per permintaan Nilai hanya dikalikan dengan nilai konkurensi.

Tingkat transfer adalah seberapa cepat ia dapat mentransfer data, yang seharusnya tidak menimbulkan hambatan apa pun di jaringan lokal. Jika pengujian melalui internet, routing dan batasan bandwidth dapat mempengaruhi nilai ini jauh sebelum Apache sendiri.

Itu Waktu koneksi (MS) Bagian mencantumkan waktu respons untuk berbagai tahapan permintaan HTTP.

Waktu Koneksi (MS) Min Rata-rata [+/- SD] Median Max Connect: 77 327 1008.3 89 7240 Pemrosesan: 87 115 43.4 101 807 Menunggu: 86 112 39.1 100 604 Total: 168 442 1009.1 192 7373 

Menghubung menunjukkan berapa banyak waktu yang dibutuhkan AB untuk membuat koneksi dengan server web.

Pengolahan adalah jumlah waktu yang dihabiskan Apache untuk memproses permintaan. Karena AB tidak dapat benar -benar mengukur ini, itu hanya mencatat jumlah waktu koneksi terbuka setelah diinisiasi.

Menunggu adalah berapa lama AB harus menunggu antara mengirim permintaan dan menerima tanggapan dari server web.

Total menunjukkan total waktu yang berlalu dari memulai koneksi ke server, menerima respons, dan akhirnya menutup koneksi.

Metrik terakhir Apache Bench menawarkan pandangan yang lebih tepat pada waktu respons rata -rata server web dengan mengurutkan waktu koneksi menjadi persentil.

Persentase permintaan yang dilayani dalam waktu tertentu (MS) 50% 192 66% 202 75% 224 80% 268 90% 428 95% 1207 98% 3208 99% 7345 100% 7373 (permintaan terpanjang) 


Dalam contoh kami output di atas, 50% dari permintaan HTTP ditangani dan ditutup hanya dalam 192 ms atau kurang. Laporan ini juga menunjukkan bahwa tanggapan yang memakan waktu 7 detik (hanya ada dua dari mereka) adalah outlier, membuat waktu koneksi Laporkan kurang mengkhawatirkan. 90% dari permintaan HTTP kami ditangani dalam waktu kurang dari setengah detik.

Kesimpulan

Di artikel ini kami melihat cara menginstal Apache Bench dan menggunakannya untuk menguji kinerja server web. Kami juga belajar bagaimana menafsirkan output dari Apache Bench, memungkinkan kami untuk menentukan di mana letak kemacetan. Setelah mengoptimalkan server web Anda lebih lanjut, jalankan bangku apache lagi dan berharap untuk melihat hasil kinerja yang lebih baik, jika memang ada perbaikan yang dilakukan.

Tutorial Linux Terkait:

  • Tes Benchmark Drive USB di Linux
  • Cara membandingkan kinerja disk di linux
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Bagaimana bekerja dengan WooCommerce Rest API dengan Python
  • Menguasai loop skrip bash
  • Membandingkan Linux Apache Prefork vs Pekerja MPM
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Linux Apache Log Analyzer
  • Seberapa sering Anda harus me -reboot server linux Anda?