Apache Benchmark + GNUPlot: Mengukur dan membuat grafik kinerja server web Anda

Tidak masalah jika itu digunakan Nginx, Apache, Lighttpd atau sebaliknya, setiap administrator jaringan yang memiliki server web pada suatu saat akan ingin mengetahui seberapa cepat server web menanggapi sejumlah kueri tertentu.

Managed-Layanan-Server-Manajemen-e1368625038693

Tolok Ukur Apache + GNUPlot

Kali ini kita akan menggunakan alat bernama Tolok Ukur Apache, yang meskipun namanya 'apache', BUKAN hanya untuk mengukur kinerja Apache, tetapi juga dapat digunakan untuk Nginx dan lainnya. Sebenarnya, saya akan menggunakannya untuk mengukur kinerja Nginx.

Kami juga akan menggunakan GNUplot, yang akan membantu kita membuat grafik seperti ini dengan beberapa baris:

hasil

Menginstal Apache Benchmark dan GNUPlot

Apache Benchmark adalah alat yang dapat kita gunakan setelah menginstal paket Apache, GNUPlot akan tersedia setelah menginstal paket dengan nama yang sama. Sehingga kemudian ...

Di distro seperti Debian, Ubuntu, atau serupa:

sudo apt-get install apache2 gnuplot

Di distro seperti ArchLinux atau turunannya:

sudo pacman -S apache gnuplot

Kita hanya perlu menginstal paket Apache, tidak perlu memulainya atau mengkonfigurasi yang lain, menginstalnya saja sudah cukup.

Menggunakan Apache Benchmark

Apa yang akan kami lakukan adalah mengirimkan sejumlah permintaan tertentu (100) dalam beberapa kelompok (dari 20 hingga 20) ke situs tertentu. Kami akan menyimpan hasilnya dalam file .csv (result.csv) dan kemudian memprosesnya dengan GNUPloit, barisnya adalah:

ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/

Sangat penting untuk meletakkan final / di URL situs yang akan diukur.

Ini adalah output atau log yang ditampilkan saat saya menguji situs di jaringan saya:

Ini adalah ApacheBench, Versi 2.3 <$ Revisi: 1638069 $> Hak Cipta 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Berlisensi untuk The Apache Software Foundation, http://www.apache.org/ Benchmarking gutl.jovenclub.cu (bersabar) ..... selesai

Perangkat Lunak Server: nginx Nama Host Server: gutl.jovenclub.cu Port Server: 80

Jalur Dokumen: /
Panjang Dokumen: 206 byte Tingkat Konkurensi: 20 Waktu yang dibutuhkan untuk pengujian: 0.101 detik Permintaan lengkap: 100 Permintaan yang gagal: 27 (Hubungkan: 0, Terima: 0, Panjang: 27, Pengecualian: 0) Respons non-2xx: 73 Total yang ditransfer: 1310933 byte HTML ditransfer: 1288952 byte
Permintaan per detik: 993.24 [# / detik] (rata-rata)
Waktu per permintaan: 20.136 [ms] (rata-rata) Waktu per permintaan: 1.007 [ms] (rata-rata, di semua permintaan bersamaan) Kecepatan transfer: 12715.49 [Kbytes / detik] menerima Waktu Koneksi (ms) min rata-rata [+/- sd] median max Connect: 0 1 0.2 1 1 Processing: 1 17 24.8 4 86 Menunggu: 1 15 21.5 4 76 Total: 1 18 24.8 5 87 Persentase permintaan yang dilayani dalam waktu tertentu (ms) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87
100% 87 (permintaan terpanjang)

Saya telah menandai dengan warna merah apa yang saya anggap paling penting, yang kurang lebih:

  1. Data server yang kami uji, serta URL yang dipermasalahkan.
  2. Jumlah permintaan per detik.
  3. Berapa milidetik yang dibutuhkan server untuk melayani permintaan yang membutuhkan waktu paling lama, yaitu permintaan yang paling lama dijawab.

Dengan informasi ini mereka dapat mengetahui berapa lama waktu yang dibutuhkan server untuk memenuhi jumlah permintaan tersebut, mereka kemudian dapat menambahkan sistem cache yang lebih baik, menonaktifkan modul yang tidak mereka gunakan, dll., Menjalankan ulang pengujian dan lihat apakah kinerjanya meningkat atau tidak.

Saya sarankan menjalankan pengujian 2 atau 3 kali, sehingga Anda membuat sesuatu seperti margin, karena hasil dari dua pengujian berturut-turut jarang sama.

Opsi atau parameter Apache Benchmark berguna lainnya:

-k -H 'Terima-Enkode: gzip, deflate' : Dengan ini ab akan menerima cache dan kompresi yang telah dikonfigurasi server, sehingga waktunya akan lebih rendah.

-f url.txt : Jadi, alih-alih hanya menguji indeks situs, itu akan melakukan tes pada URL yang kami tentukan dalam file itu.

Pokoknya ... lihatlah pria ab untuk kamu lihat.

Tunjukkan hasilnya dalam grafik:

Untuk meletakkan keluaran ini dalam sebuah gambar, yaitu, dalam media yang lebih visual dan berkali-kali, itu adalah segala sesuatu yang berhasil dipahami oleh manajer ... untuk ini kita akan gunakan seperti yang saya katakan sebelumnya, GNUplot

Di folder yang sama tempat kami memiliki file results.csv (ingat, kami baru saja membuat dengan perintah di atas) kita akan membuat file bernama gnuplot.p:

nano plot.p

Di dalamnya kami akan meletakkan yang berikut ini:

set terminal ukuran png 600 set output "results.png"setel judul"100 permintaan, 20 permintaan bersamaan "setel rasio ukuran 0.6 setel kisi dan setel xlabel"permintaan"setel label"waktu respon (ms)"merencanakan"results.csv"menggunakan 9 sbezier halus dengan judul garis"gutl.jovenclub.cu"

Saya telah menandai dengan warna merah apa yang harus selalu Anda periksa. Yaitu dan dari atas ke bawah:

  1. Nama file gambar yang akan dibuat
  2. Jumlah permintaan total dan bersamaan.
  3. Nama file yang baru saja kita buat.
  4. Domain tempat kami bekerja.

Setelah kita memasukkannya, simpan dan keluar (Ctrl + O dan kemudian Ctrl + X), kami akan menjalankan yang berikut ini:

gnuplot plot.p

Dan voila, yang akan menghasilkan grafik dengan nama yang diinginkan, milik saya adalah:

hasil2

Tamat!

Apache Benchmark memiliki lebih banyak pilihan, banyak juga kombinasi yang dapat kita gunakan untuk membuat pengujian kinerja kita semakin lengkap.

Tapi hei, ini yang mendasar 😉

Menikmati!


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Francisco dijo

    Tolok ukur apache yang menarik, saya tidak tahu tentang gnuplot, apakah mungkin untuk mengubah gaya keluaran? Saya katakan untuk laporan formal.

    Salam dari Chile.

    1.    KZKG ^ Gaara dijo

      Ya, ada banyak konfigurasi di internet untuk gnuplot, cari oleh Google untuk melihat apakah Anda menemukan yang serius atau cukup profesional untuk Anda gunakan, karena itulah selera semua orang 🙂

  2.   Wolf119 dijo

    Ummm Saya akan mengujinya sekarang di server apache virtual yang saya jalankan untuk melihat bagaimana ini berjalan, sehubungan dengan GUTL, karena GUTL diaktifkan dengan sangat cepat dari 80 permintaan, bukan? Mari kita lihat bahwa 100 ms tidak. tidak ada, tetapi tinggi yang memberikan 10 permintaan lebih banyak dibandingkan dengan 70 hingga 80 dengan 80 hingga 90 menarik perhatian saya

    1.    KZKG ^ Gaara dijo

      Itu harus karena antrian atau jumlah utas maksimum yang akan dihadiri secara bersamaan. Namun, saya melakukan pengujian tanpa gzip, tanpa deflate, tanpa cache atau apapun 😉

  3.   Charlie-cokelat dijo

    Sangat menarik, terutama untuk penggunaan GNUPlot. Dari apa yang saya lihat, ini dapat digunakan untuk menghasilkan grafik dari hampir semua kumpulan data, bukan? ...

    1.    KZKG ^ Gaara dijo

      Ya tentu saja, Anda meneruskan data dalam file yang dipisahkan dengan koma atau semacamnya, Anda memberi tahu cara memprosesnya di file konfigurasi, dan hanya itu

  4.   Adolfo dijo

    Halo, saya selalu menghabiskannya untuk membaca blog ini tetapi saya tidak pernah mengomentari artikel apa pun, dan ini sepertinya peluang yang bagus.
    Yang ingin saya bagikan kepada Anda adalah bahwa jenis grafik ini dapat disalahartikan, karena Apache Bench mengurutkan hasil menggunakan ttime (waktu total) dan bukan waktu berurutan. Meskipun datanya masih benar, grafik tersebut mungkin tidak menunjukkan apa yang kita inginkan.
    Ini tautan tempat saya membacanya.
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    Salam.

  5.   Hugo dijo

    Apache Benchmark bukanlah alat terbaik untuk mengukur kinerja server HTTP di komputer dengan banyak inti, selain itu, hanya 100 permintaan dengan 20 koneksi bersamaan adalah tes yang sangat lemah, sesuatu yang lebih realistis adalah 1,000 atau 10,000 permintaan dengan 100 koneksi bersamaan ( diketahui bahwa Nginx adalah salah satu aplikasi yang mampu melayani lebih dari 10,000 permintaan per detik) dan untuk ini lebih baik menggunakan alat seperti weighttp, yang dirancang untuk komputer multi-core dan menggunakan epoll yang lebih cepat, tidak seperti Apache Bangku yang menggunakan satu utas dan mekanisme penanganan kejadian yang kurang efisien.

    Untuk mendapatkan poin saya, dengan asumsi server hanya memiliki 4 core:

    weighttp -n 10000 -c 100 -t 4 -k "http://our-website.com/"

  6.   iman dijo

    Hi semua,
    Saat menggambar grafik (dari CSV) dengan gnuplot, saya mendapatkan kesalahan berikut, dapatkah Anda memberi tahu saya cara mengatasinya?

    "Plot.p", baris 8: peringatan: Melewati file data tanpa poin yang valid

    plot «graph.csv» menggunakan 9 sbezier halus dengan judul garis «AB - localhost / web»
    ^
    "Plot.p", baris 8: rentang x tidak valid

    Dengan gnuplot, apakah saya juga dapat membuat halaman HTML?