Rumah > pembangunan bahagian belakang > tutorial php > Tekanan Menguji Aplikasi PHP anda dengan Apachebench

Tekanan Menguji Aplikasi PHP anda dengan Apachebench

Jennifer Aniston
Lepaskan: 2025-02-21 10:02:16
asal
254 orang telah melayarinya

Ujian tekanan aplikasi PHP anda: Panduan Pemula ke Bench Apache

Ditaja oleh New Relic. Terima kasih kerana menyokong penaja yang menjadikan SitePoint mungkin!

Lonjakan lalu lintas yang tidak dijangka boleh melumpuhkan permohonan anda. Sama ada jawatan reddit virus atau kenaikan mendadak dalam populariti, mengendalikan kemasukan pengunjung yang besar adalah penting. Walaupun platform awan menawarkan skala automatik, ujian tempatan proaktif menjimatkan masa dan wang. Panduan ini memperkenalkan Apache Bench (AB), alat yang berkuasa untuk menguji beban aplikasi PHP anda sebelum digunakan.

memperkenalkan bangku Apache (ab)

Bench Apache adalah alat baris arahan untuk pelayan web menguji tekanan. Ia mensimulasikan pelbagai keadaan beban, yang membolehkan anda menyempurnakan prestasi aplikasi anda di bawah tekanan. Walaupun sering disertakan dengan pemasangan Apache, anda boleh memasangnya menggunakan pengurus pakej sistem anda (mis., sudo apt-get install apache2-utils di Ubuntu).

Stress-test your PHP App with ApacheBench

Untuk tutorial ini, kami akan menggunakan aplikasi Laravel yang mudah. Pastikan anda memasang Laravel dan komposer. Buat projek Laravel baru:

composer create-project laravel/laravel Laravel --prefer-dist
Salin selepas log masuk
Konfigurasikan hos maya anda (mis., Homestead) untuk menunjuk ke direktori

projek Laravel anda. Anda kini boleh mengakses permohonan anda melalui URL (mis., public). http://homestead.app:8000

Stress-test your PHP App with ApacheBench menjalankan ujian pertama anda

Perintah bangku Apache asas kelihatan seperti ini:

Perintah ini mungkin akan mengembalikan hasil terlalu cepat untuk berguna. Untuk mensimulasikan beban yang lebih realistik, gunakan pilihan
ab homestead.app/
Salin selepas log masuk
(bilangan permintaan) dan

(concurrency): -n -c

Perintah ini menghantar 500 permintaan dengan 100 sambungan serentak. Output menunjukkan peratusan permintaan yang diselesaikan dalam jangka masa tertentu.
ab -n 500 -c 100 homestead.app/
Salin selepas log masuk

Memperkenalkan kelewatan buatan

mari kita sengaja melambatkan permohonan kami untuk menggambarkan kesan kod yang tidak cekap. Ubah suai fungsi

dalam

: showWelcome app/Http/Controllers/HomeController.php

dan kemas kini laluan anda di
public function showWelcome()
{
    if (isset($_GET['slower']) && $_GET['slower'] == 'true') {
        sleep(1); // Introduce a 1-second delay
    } else {
        usleep(1); // Minimal delay
    }
    return view('welcome');
}
Salin selepas log masuk
:

routes/web.php

kini menjalankan bangku Apache terhadap kedua -dua
Route::get('/', 'HomeController@showWelcome');
Salin selepas log masuk
dan

. Perbezaan hasil akan menyerlahkan bagaimana skrip jangka panjang memberi kesan kepada prestasi yang ketara di bawah beban. homestead.app homestead.app?slower=true

Kesimpulan

Tutorial ini menunjukkan pentingnya mengoptimumkan aplikasi PHP anda untuk prestasi. Apache Bench adalah alat yang berharga untuk mengenal pasti kesesakan dan memastikan aplikasi anda dapat mengendalikan lalu lintas yang tinggi. Eksperimen dengan parameter yang berbeza, dan ingat bahawa pengoptimuman kecil walaupun boleh membuat perbezaan besar.

Soalan Lazim (Soalan Lazim)

Bahagian ini mengandungi jawapan kepada soalan umum mengenai penggunaan bangku Apache untuk menguji tekanan aplikasi PHP. (Soalan Lazim Asal telah disatukan dan sedikit ditulis semula untuk keringkasan dan kejelasan).

Q: Apakah bangku Apache dan mengapa penting?

A: Apache Bench (AB) adalah alat baris arahan untuk penanda aras pelayan HTTP. Sangat penting untuk ujian tekanan kerana ia membantu anda memahami bagaimana aplikasi anda berfungsi di bawah pelbagai tahap beban, yang membolehkan pengoptimuman proaktif.

Q: Bagaimana saya memasang dan menggunakan bangku Apache?

A: Pemasangan bergantung pada sistem anda (periksa Pengurus Pakej Sistem anda). Penggunaan melibatkan perintah

diikuti oleh pilihan (seperti ab untuk permintaan dan -n untuk kesesuaian) dan url sasaran. -c

Q: Bagaimana saya mentafsirkan hasil bangku Apache?

A: Metrik utama termasuk permintaan sesaat (lebih tinggi adalah lebih baik), masa setiap permintaan (lebih rendah adalah lebih baik), dan permintaan yang gagal (harus sifar). "Masa yang diambil untuk ujian" menunjukkan tempoh ujian total.

q: Bolehkah ujian https uji bangku Apache?

A: Ya, hanya gunakan protokol

dalam url anda. https

Q: Bagaimana bangku Apache dibandingkan dengan alat ujian beban lain?

A: Bench Apache adalah mudah dan cepat untuk ujian asas. Alat yang lebih maju menawarkan ciri -ciri seperti skrip dan ujian senario yang lebih canggih.

q: Bolehkah bangku Apache membantu mengenal pasti kesesakan?

A: Walaupun ia tidak menentukan sebab yang tepat, ia mendedahkan isu prestasi (permintaan rendah sesaat, permintaan gagal tinggi) yang memerlukan siasatan lanjut menggunakan alat penyahpepijatan dan profil.

Atas ialah kandungan terperinci Tekanan Menguji Aplikasi PHP anda dengan Apachebench. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan