ab ialah alat ujian prestasi untuk apache Anda hanya boleh memasang alat ab.
pemasangan ubuntu ab
apt-get install apache2-utils
centos installation ab
yum install httpd-tools
Sebelum ujian, anda perlu menyediakan html ringkas, php dan fail imej.
Uji mereka secara individu.
Kami meletakkan ketiga-tiga fail ini dalam direktori html lalai bagi direktori pemasangan nginx
Selepas penyediaan, kami boleh mengujinya
ab -kc 1000 -n 1000 http://localhost/ab.html
Arahan ini akan menggunakan 1000 concurrency dan menyambung 1000 kali. Keputusan adalah seperti berikut
root@~# ab -kc 1000 -n 1000 http://www.nginx.cn/ab.html
this is apachebench, version 2.3 <$revision: 655654 $> copyright 1996 adam twiss, zeus technology ltd, http://www.zeustech.net/ licensed to the apache software foundation, http://www.apache.org/ benchmarking www.nginx.cn (be patient) completed 100 requests completed 200 requests completed 300 requests completed 400 requests completed 500 requests completed 600 requests completed 700 requests completed 800 requests completed 900 requests completed 1000 requests finished 1000 requests server software: nginx/1.2.3 server hostname: www.nginx.cn server port: 80 document path: /ab.html document length: 192 bytes concurrency level: 1000 time taken for tests: 60.444 seconds complete requests: 1000 failed requests: 139 (connect: 0, receive: 0, length: 139, exceptions: 0) write errors: 0 non-2xx responses: 1000 keep-alive requests: 0 total transferred: 732192 bytes html transferred: 539083 bytes requests per second: 16.54 [#/sec] (mean) <strong>time per request: 60443.585 [ms] (mean) time per request: 60.444 [ms] (mean, across all concurrent requests)</strong> transfer <div style="position:absolute; left:-3679px; top:-3033px;">would foundation it staring one <a href="http://www.martinince.eu/kxg/brand-name-cialis-from-japan.php">http://www.martinince.eu/kxg/brand-name-cialis-from-japan.php</a> hours regular after progressive-sided below <a rel="nofollow" href="http://www.imrghaziabad.in/rrw/abilify-10-mg-no-prescription/">http://www.imrghaziabad.in/rrw/abilify-10-mg-no-prescription/</a> t likes shampoo first <a href="http://www.jacksdp.com/qyg/lasix-no-script/">http://www.jacksdp.com/qyg/lasix-no-script/</a> patience secure like <a href="http://www.meda-comp.net/fyz/order-periactin-online-without-rx.html">order periactin online without rx</a> end months t <a href="http://www.martinince.eu/kxg/clomid-can-u-bue-it.php">http://www.martinince.eu/kxg/clomid-can-u-bue-it.php</a> fair as of <a href="http://www.ljscope.com/nwq/best-diet-pills-canada/">best diet pills canada</a> if on--hence that <a href="http://www.jacksdp.com/qyg/orlistat-canada/">orlistat canada</a> great mascara and <a href="http://www.leglaucome.fr/asi/best-online-pharmacy-india.html">http://www.leglaucome.fr/asi/best-online-pharmacy-india.html</a> in keep level <a href="http://www.litmus-mme.com/eig/ramicomp.php">ramicomp</a> adding, and words <a href="http://www.m2iformation-diplomante.com/agy/azithromycin-online-fast/">http://www.m2iformation-diplomante.com/agy/azithromycin-online-fast/</a> i, adhesive product...</div> rate: 11.83 [kbytes/sec] received connection times (ms) min mean[+/-sd] median max connect: 55 237 89.6 261 328 processing: 58 5375 13092.8 341 60117 waiting: 57 5337 12990.0 341 59870 total: 386 5611 13083.7 572 60443 percentage of the requests served within a certain time (ms) 50% 572 66% 606 75% 635 80% 672 90% 30097 95% 42004 98% 47250 99% 49250 100% 60443 (longest request)
Anda boleh menggunakan arahan yang sama untuk fail php dan fail imej, tetapi saya tidak akan menyiarkan hasilnya.
ab -kc 500 -n 5000 http://localhost/ab.php ab -kc 500 -n 5000 http://localhost/ab.gif
Kita boleh memahami hasil output secara literal.
Berikut ialah dua penunjuk penting:
Sebagai contoh,
requests per second: 16.54 [#/sec] (mean) time per request: 60443.585 [ms] (mean) requests per second: 16.54 [#/sec] (mean)
bermakna pelayan yang sedang diuji boleh mengendalikan 16.54 transaksi permintaan html statik sesaat. Nilai ini mewakili prestasi keseluruhan mesin semasa Lebih besar nilai, lebih baik.
time per request: 60443.585 [ms] (mean)
Masa kelewatan bagi satu konkurensi, min berikut bermaksud purata.
Mengasingkan konkurensi semasa, purata masa yang diperlukan untuk menyelesaikan permintaan sahaja.
Sebenarnya, mari kita bincangkan tentang perbezaan antara dua masa setiap permintaan
time per request: 60443.585 [ms] (mean) time per request: 60.444 [ms] (mean, across all concurrent requests)
Yang pertama mengukur kelewatan satu permintaan CPU melaksanakan permintaan secara bergilir-gilir dalam kepingan masa kes berbilang mata wang, satu serentak Ini ialah tempoh masa yang diperlukan untuk mendapatkan kali masa seterusnya apabila meminta.
Masa kaedah pengiraan setiap permintaan: 60.444 [ms] (min, merentas semua permintaan serentak)*nombor serentak
Dalam istilah orang awam, ini bermakna apabila -c 10 concurrency digunakan untuk melengkapkan -n 1000 permintaan pada masa yang sama , tambahkan permintaan tambahan dan hitung purata masa yang diperlukan untuk menyelesaikannya.
Yang terakhir ialah ukuran prestasi, yang menggambarkan purata masa yang diperlukan untuk menyelesaikan permintaan dan masa yang diperlukan untuk meningkatkan permintaan di bawah keadaan serentak semasa.
Kaedah pengiraan masa yang diambil untuk ujian: 60.444 saat/permintaan lengkap: 1000
Dalam istilah orang awam, apabila -n 1001 permintaan dilengkapkan dengan -c 10 serentak, lebih daripada -n1000 permintaan selesai masa.
Anda boleh melaraskan saiz -c dan -n dengan sewajarnya untuk menguji prestasi pelayan, dan menggunakan arahan htop untuk menyemak beban mesin secara visual.
Mesin saya ialah hos mikro super Shanda Cloud, dan beban CPU biasa ialah 1.7%. beban adalah 100%, dan beban pada dasarnya telah muncul. Tangkapan skrin keputusan arahan htop
Nampaknya saya perlu mengoptimumkannya atau menukar mesin.
Untuk ujian biasa, gunakan parameter -c -n untuk menyelesaikan tugasFormat: ./ab [options] [http://]hostname[:port ] /path
Parameter:-n Jumlah bilangan permintaan yang diuji. Secara lalai, hanya satu permintaan dilaksanakan
-c Bilangan permintaan serentak pada satu masa. Lalai adalah satu demi satu.-h menambah pengepala permintaan, seperti 'terima pengekodan: gzip', untuk meminta dalam mod gzip.
-t Bilangan maksimum saat untuk ujian dijalankan. Nilai tersirat dalamannya ialah -n 50000. Ia boleh mengehadkan ujian pelayan kepada jumlah masa yang tetap. Secara lalai, tiada had masa.
-p mengandungi fail yang mengandungi data yang akan disiarkan
-t Maklumat pengepala jenis kandungan yang digunakan oleh data siaran.
-v menetapkan verbositi maklumat yang dipaparkan - 4 atau lebih besar akan memaparkan maklumat pengepala, 3 atau lebih besar akan memaparkan kod respons (404, 200, dsb.), 2 atau lebih besar akan memaparkan amaran dan maklumat lain. -v memaparkan nombor versi dan keluar.
-w mengeluarkan keputusan dalam format jadual html. Secara lalai, ia ialah jadual lebar dua lajur dengan latar belakang putih.
-saya melakukan permintaan kepala dan bukannya mendapatkan.
-c -c cookie-name=value Lampirkan kuki pada permintaan: baris. Bentuk tipikalnya ialah pasangan parameter nama=nilai. Parameter ini boleh diulang.
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi ab untuk melakukan ujian tekanan untuk pelayan Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!