Bagaimana Melakukan Tingkatan Kinerja Server Web?

Apakah Anda tahu waktu respons rata-rata situs web Anda? Apakah Anda tahu berapa banyak pengguna bersamaan yang bisa ditangani oleh situs Anda?


Pengujian beban sangat penting untuk aplikasi web untuk mengetahui situs web kapasitas. Jika Anda memilih server web, maka salah satu hal pertama yang ingin Anda lakukan adalah melakukan pengujian beban dan melihat mana yang berfungsi dengan baik untuk Anda.

Benchmarking dapat membantu Anda memutuskan;

  • Server web mana yang paling berhasil
  • Jumlah server yang Anda butuhkan untuk melayani x jumlah permintaan
  • Konfigurasi mana yang memberi Anda hasil terbaik

Ada beberapa alat online untuk melakukan tes stres; namun, jika Anda mencari solusi internal atau hanya ingin membandingkan kinerja server web, maka Anda dapat menggunakannya ApacheBench dan sebagai alternatif beberapa alat yang tercantum di bawah ini.

Saya sudah menggunakan Apache & Server web Nginx di-host di DigitalOcean untuk mengujinya.

ApacheBench

ApacheBench (ab) adalah program baris perintah sumber terbuka yang bekerja dengan server web apa pun. Dalam posting ini, saya akan menjelaskan cara menginstal program kecil ini dan melakukan uji beban untuk membandingkan hasil.

Apache

Mari kita pasang ApacheBench dengan menggunakan perintah yum.

yum instal httpd-tools

Jika Anda sudah memiliki alat httpd, maka Anda dapat mengabaikannya.

Sekarang, mari kita lihat bagaimana kinerjanya untuk 5000 permintaan dengan konkurensi 500.

[[dilindungi email] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Ini adalah ApacheBench, Versi 2.3 <$ Revisi: $ 655654>
Hak Cipta 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Dilisensikan ke The Apache Software Foundation, http://www.apache.org/
Pemblokiran localhost (bersabar)
Menyelesaikan 500 permintaan
Menyelesaikan 1000 permintaan
Menyelesaikan 1500 permintaan
Menyelesaikan 2000 permintaan
Menyelesaikan 2.500 permintaan
Menyelesaikan 3000 permintaan
Menyelesaikan 3500 permintaan
Selesai 4000 permintaan
Menyelesaikan 4.500 permintaan
Menyelesaikan 5000 permintaan
5.000 permintaan selesai
Perangkat Lunak Server: Apache / 2.2.15
Nama Host Server: localhost
Port Server: 80
Jalur Dokumen: /
Panjang Dokumen: 4961 byte
Level Konkurensi: 500
Waktu yang dibutuhkan untuk pengujian: 13,389 detik
Permintaan lengkap: 5000
Permintaan gagal: 0
Kesalahan tulis: 0
Tanggapan non-2xx: 5058
Total yang ditransfer: 26094222 byte
HTML ditransfer: 25092738 byte
Permintaan per detik: 373,45 [# / dtk] (berarti)
Waktu per permintaan: 1338.866 [ms] (rata-rata)
Waktu per permintaan: 2,678 [ms] (rata-rata, di semua permintaan bersamaan)
Kecepatan transfer: 1903,30 [Kbytes / detik] diterima
Waktu Koneksi (ms)
minimum rata-rata [+/- sd] median maks
Hubungkan: 0 42 20,8 41 1000
Memproses: 0 428 2116.5 65 13310
Menunggu: 0 416 2117.7 55 13303
Total: 51 470 2121.0 102 13378
Persentase permintaan yang dilayani dalam waktu tertentu (ms)
50% 102
66% 117
75% 130
80% 132
90% 149
95% 255
98% 13377
99% 13378
100% 13378 (permintaan terpanjang)
[[dilindungi email] ~] #

Jadi seperti yang Anda lihat, Apache telah menangani 373 permintaan per detik, dan butuh total 13,389 detik untuk melayani permintaan total.

Sekarang Anda tahu konfigurasi default dapat melayani banyak permintaan ini sehingga ketika Anda melakukan perubahan konfigurasi, Anda dapat melakukan tes lagi untuk membandingkan hasil dan memilih terbaik satu.

Nginx

Mari kita lakukan pengujian apa yang kami lakukan untuk Apache sehingga Anda dapat membandingkan mana yang berkinerja lebih baik.

[[dilindungi email] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Ini adalah ApacheBench, Versi 2.3 <$ Revisi: $ 655654>
Hak Cipta 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Dilisensikan ke The Apache Software Foundation, http://www.apache.org/
Pemblokiran localhost (bersabar)
Menyelesaikan 500 permintaan
Menyelesaikan 1000 permintaan
Menyelesaikan 1500 permintaan
Menyelesaikan 2000 permintaan
Menyelesaikan 2.500 permintaan
Menyelesaikan 3000 permintaan
Menyelesaikan 3500 permintaan
Selesai 4000 permintaan
Menyelesaikan 4.500 permintaan
Menyelesaikan 5000 permintaan
5.000 permintaan selesai
Perangkat Lunak Server: nginx / 1.10.1
Nama Host Server: localhost
Port Server: 80
Jalur Dokumen: /
Panjang Dokumen: 3698 bytes
Level Konkurensi: 500
Waktu yang dibutuhkan untuk pengujian: 0,758 detik
Permintaan lengkap: 5000
Permintaan gagal: 0
Kesalahan tulis: 0
Total yang ditransfer: 19660000 byte
HTML yang ditransfer: 18490000 byte
Permintaan per detik: 6593,48 [# / detik] (rata-rata)
Waktu per permintaan: 75,832 [ms] (rata-rata)
Waktu per permintaan: 0,152 [ms] (rata-rata, di seluruh permintaan bersamaan)
Kecepatan transfer: 25317,93 [Kbytes / detik] diterima
Waktu Koneksi (ms)
minimum rata-rata [+/- sd] median maks
Hubungkan: 0 6 11.0 2 53
Memproses: 5 19 8.2 17 53
Menunggu: 0 18 8.2 16 47
Total: 10 25 17,4 18 79
Persentase permintaan yang dilayani dalam waktu tertentu (ms)
50% 18
66% 21
75% 21
80% 22
90% 69
95% 73
98% 75
99% 76
00% 79 (permintaan terlama)
[[dilindungi email] ~] #

WOW! Apakah kamu melihat itu? Nginx ditangani 6593 permintaan per detik! Seorang pemenang.

Jadi Anda lihat hanya membandingkan dengan dua server web Anda akan mendapatkan ide mana yang harus dipilih untuk aplikasi web Anda.

Tes di atas adalah pada CentOS 6.8, 64 bit. Anda dapat mencoba beberapa kombinasi OS & Versi Server Web untuk hasil yang optimal.

PENGEPUNGAN

PENGEPUNGAN adalah utilitas uji beban HTTP yang didukung pada UNIX. Anda dapat meletakkan beberapa URL dalam file teks untuk memuat pengujian. Anda dapat menginstal pengepungan menggunakan yum.

# yum install siege

Mari kita jalankan tes dengan 500 permintaan bersamaan selama 5 detik.

[[dilindungi email] ~] # siege -q -t 5S -c 500 http: // localhost /
Mengangkat pengepungan server … selesai.
Transaksi: 4323 hit
Ketersediaan: 100,00%
Waktu yang berlalu: 4,60 detik
Data yang ditransfer: 15.25 MB
Waktu respons: 0,04 dtk
Tingkat transaksi: 939,78 trans / detik
Throughput: 3,31 MB / detik
Konkurensi: 37,97
Transaksi yang berhasil: 4323
Transaksi gagal: 0
Transaksi terpanjang: 1,04
Transaksi terpendek: 0,00
[[dilindungi email] ~] #

Untuk memecah parameter.

-q – untuk menjalankannya dengan tenang (tidak menampilkan detail permintaan)

-t – jalankan selama 5 detik

-c – 500 permintaan bersamaan

Jadi seperti yang Anda lihat, ketersediaannya adalah 100% dan waktu respons adalah 0,04 detik. Anda dapat mengubah parameter uji muat berdasarkan tujuan Anda.

Gobench

Gobench ditulis dalam bahasa Go dan utilitas pengujian beban sederhana untuk membandingkan kinerja server web. Ini mendukung lebih dari 20.000 pengguna bersamaan yang tidak dimiliki ApacheBench.

Apache JMeter

JMeter adalah salah satu alat open source paling populer untuk mengukur kinerja aplikasi web. JMeter adalah aplikasi berbasis java dan bukan hanya server web, tetapi Anda dapat menggunakannya melawan PHP, Java. ASP.net, SOAP, REST, dll.

JMeter mendapat GUI ramah yang layak, dan versi terbaru 3.0 memerlukan Java 7 atau lebih tinggi untuk meluncurkan aplikasi. Anda harus mencoba JMeter jika tujuan Anda adalah untuk mengoptimalkan kinerja aplikasi web.

wrk

wrk adalah alat pengukuran kinerja modern lainnya untuk memuat server web Anda dan memberi Anda latensi, permintaan per detik, transfer per detik, dll. detail.

Dengan wrk, Anda dapat menentukan untuk menjalankan tes beban dengan sejumlah utas.

Mari kita ambil contoh menjalankan tes selama 5 menit dengan 500 pengguna secara bersamaan dengan 8 utas.

wrk –t8 –c500 -d300s http: // localhost

HTTPLoad

Httpload dapat membaca beberapa URL dari file, atau Anda dapat menentukannya dalam argumen perintah. Versi terbaru mendukung SSL / TLS yang berarti Anda dapat meminta URL halaman web yang diaktifkan HTTPS (SSL).

Saat menguji URL yang diaktifkan SSL, Anda memiliki opsi untuk menentukan sandi, dan perintah pengujian sederhana akan terlihat seperti ini.

httpload -cipher AES256-SHA -parallel 200 -seconds 120 URL_LIST.txt

Untuk memahaminya lebih baik, di atas akan menjalankan tes terhadap 200 pengguna bersamaan selama 2 menit.

Curl-loader

curl-loader ditulis dalam C untuk mensimulasikan pemuatan aplikasi, dan mendukung SSL / TLS. Bersamaan dengan uji halaman web, Anda juga dapat menggunakan alat sumber terbuka ini untuk melakukan pemuatan pada server FTP.

Anda dapat membuat rencana pengujian dengan campuran HTTP, HTTPS, FTP, dan FTPS dalam konfigurasi batch tunggal.

httperf

Itu httperf adalah alat berperforma tinggi yang berfokus pada tolok ukur tingkat mikro dan makro. Ini mendukung protokol HTTP / 1.1 dan SSL.

Jika Anda mengharapkan jumlah pengguna bersamaan dan ingin menguji apakah sejumlah permintaan dapat dilayani oleh server web Anda, maka Anda dapat menggunakan perintah berikut.

httperf –server localhost –port 80 –num-conns 1000 –rate 100

Perintah di atas akan menguji dengan 100 permintaan per detik untuk 1000 permintaan HTTP.

Tsung

Tsung adalah alat pengujian stres terdistribusi multi-protokol untuk menekankan HTTP, SOAP, PostgreSQL, LDAP, XAMP, server MySQL. Ini mendukung HTTP / 1.0, HTTP / 1.1, dan cookie ditangani secara otomatis.

Membuat laporan layak dengan Tsung.

Kesimpulan

Saya berharap di atas alat pembandingan memberi Anda gambaran tentang kinerja server web Anda dan membantu memutuskan mana yang paling cocok untuk proyek Anda.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map