Uji beban Apache HTTP Server pada VPS kecil: metode dan hasil
Tanggal publikasi:
Diperbarui:
Artikel teknis > Uji beban Apache HTTP Server pada VPS kecil: metode dan hasil
Konteks 2026 dan penggunaan yang aman
Kesimpulan: Artikel ini mencatat satu percobaan VPS, bukan batas kongsi Apache universal. Kapasitas bergantung pada pekerjaan respon, MPM, batas pekerja, keep-alive, TLS, CPU, memori, penyimpanan, jaringan, penempatan klien, dan target latensi yang Anda definisikan sebagai dapat diterima.
Yang akan Anda pelajari
- Bagaimana tes asli diatur dan apa yang diamati angka lakukan - dan tidak - menunjukkan.
- Yang Apache dan operasi metrics sistem membantu mengidentifikasi botol pertama.
- Cara merancang tes ulang beban dengan pemanasan, persentil, kesalahan, dan telemetri samping.
Untuk siapa ini: Insinyur merencanakan percobaan web-server pertama-lulus pada VPS kecil.
Konteks 2026: Ukuran bawah diawetkan dari lingkungan asli penulis dan tidak dijalankan ulang untuk pembaruan ini. Jangan gunakan mereka sebagai vendor benchmark saat ini atau rekomendasi ukuran produksi; uji aplikasi dan batas kegagalan Anda sendiri.
Catatan keamanan: Contoh perintah dan konfigurasi dalam artikel asli belum dijalankan ulang dalam lingkungan produksi saat ini. Verifikasi versi yang didukung, cadangan, kendali akses, dan langkah rollback dalam lingkungan tes yang terpisah sebelum menerapkannya.
Sumber resmi utama
Ikhtisar
Saya telah mengukur jumlah maksimum kasus yang dapat diproses oleh server web (Apache) pada saat yang sama, dan saya ingin menulis tentang hasilnya. Kami penasaran tentang jumlah maksimum permintaan yang bisa dilayani, jadi kami melakukan survei. Gunakan ini sebagai referensi untuk memilih spesifikasi server VPS.
Kali ini, pengukuran hanya dilakukan pada WEB (Apache), tetapi silakan merujuk ke artikel di bawah ini untuk pengukuran pada server WEB/AP (Apache dan Tomcat).
Uji beban Apache dan Tomcat pada VPS: bottleneck dan hasil
Daftar isi
1. pengukuran
1-1. Lingkungan pengukuran
Berikut ini adalah lingkungan di mana pengukuran akan dilakukan.
■Informasi server penyewaan
| CPU | 2core |
|---|---|
| memory | 1GB |
| SSD | 50GB |
■Informasi server
| OS | CentOS 7.4 64bit |
|---|---|
| Server web | Apache HTTP Server 2.4.41 |
1-2. Metode pengukuran
Saya ingin mengukur ini menggunakan JMeter. JMeter adalah alat pengukuran beban yang berjalan di Java. Alat ini memungkinkan sejumlah besar permintaan dilemparkan pada waktu yang sama. Kami ingin secara bertahap meningkatkan jumlah permintaan simultan menggunakan JMeter dan meningkatkan beban sampai pemrosesan tidak dapat ditangani lagi.
Kondisi spesifik meliputi.
- interval permintaan: 5 detik.
- Jumlah permintaan simultan: 10 kasus. (Pengukuran secara bertahap meningkat masing-masing 10 kasus.)
- Mengukur waktu: 60 detik.
Waktu pengukuran adalah "60 detik" dan interval permintaan "5 detik", jadi Anda ingin mengakses sistem sebanyak 12 kali (60÷5) berulang kali.
1-3. hasil pengukuran
Pada akhirnya, banyak orang yang tertarik pada kesimpulan tentang spesifikasi apa yang dapat ditangani server dan berapa banyak yang dapat ditangani, jadi saya ingin menyatakan kesimpulannya terlebih dahulu.
| CPU: 2core memory: 1GB SSD: 50GB | Hingga 120 permintaan simultan dapat diproses. |
|---|
Hasil pengukuran ini menunjukkan hal di atas. Hasil di atas menunjukkan bahwa hal-hal berikut ini dapat disimpulkan. Coba gunakan ini sebagai kriteria ketika memilih spesifikasi server.
| CPU: 1core memory: 512MB SSD: 25GB | Hingga 60 permintaan simultan dapat diproses. |
|---|---|
| CPU: 2core memory: 1GB SSD: 50GB | Hingga 120 permintaan simultan dapat diproses. |
| CPU: 3core memory: 2GB SSD: 100GB | Hingga 240 permintaan simultan dapat diproses. |
Bahkan dengan spesifikasi "CPU: 1core", "memory: 512MB" dan "SSD: 25GB", ditemukan bahwa sistem yang terdiri atas sekitar 60 orang bisa beroperasi tanpa masalah.
2. Rincian hasil pengukuran
Kami telah menjelaskan hasil pengukuran sebelumnya, tetapi jika Anda tertarik dengan hasil seperti apa yang telah kami jelaskan, harap periksa juga detail hasil pengukuran yang akan dijelaskan di waktu mendatang.
2-1. Pengukuran server WEB (Apache)
Permintaan berulang-ulang dilemparkan terhadap halaman yang dibuat dalam HTML. Ini adalah halaman sederhana tanpa pemrosesan PHP atau kerumitan JavaScript.
Pengukuran menunjukkan hasil sebagai berikut.
- Untuk 10 permintaan simultan⇒OK
- Untuk 20 permintaan simultan⇒OK
- Untuk 30 permintaan simultan⇒OK
- Untuk 40 permintaan simultan⇒OK
- Untuk 50 permintaan simultan⇒OK
- Untuk 60 permintaan simultan⇒OK
- Untuk 70 permintaan simultan⇒OK
- Untuk 80 permintaan simultan⇒OK
- Untuk 90 permintaan simultan⇒OK
- Untuk 100 permintaan simultan⇒OK
- 110 permintaan simultan⇒OK
- Untuk 120 permintaan simultan⇒OK
- Untuk 130 permintaan simultan⇒NG
Kesalahan terjadi pada kasus ke-130. Penyebabnya adalah kesalahan koneksi ke Apache. Keadaan server pada saat ini adalah sebagai berikut.
- Pemanfaatan CPU: 26%
- tingkat penggunaan memori: 100%
Kurangnya memori adalah hambatannya.
Untuk yang sedikit lebih culun, konfigurasi Apache Multi-Processing Module (MPM) adalah sebagai berikut. MPM secara sederhana dijelaskan sebagai pengaturan seberapa banyak Apache diizinkan untuk memproses secara paralel.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Pengaturan yang menarik adalah "250" untuk "MaxRequestWorkers". Ini adalah pengaturan untuk jumlah maksimum kasus yang bisa diproses Apache pada waktu yang sama. '250', sehingga 250 kasus dapat diproses secara paralel maksimum, tetapi melihat penggunaan memori, sekitar 8 MB memori digunakan per kasus.
Tampaknya menggunakan memori 960 MB (8M x 120 proses) dan nilai pengaturannya adalah '250', tetapi tampaknya tidak mungkin untuk membuat lebih dari '120' proses.
Catatan: Memori server hampir mencapai batas 1G.
Ketika benar-benar mengoperasikan server, jika PHP dan Java juga disertakan, batasnya sekitar 100 kasus, dan jika ada ruang, 80 kasus dapat diproses secara bersamaan secara paralel.
Ketika hanya Apache yang diinstal dan berjalan, dengan spesifikasi "CPU: 2core, memori: 1GB, SSD: 50GB", jumlah akses simultan "120" ditemukan sebagai batasnya.
2-2. pertimbangan
Dari sini menjadi pertimbangan, tetapi karena memori adalah bottleneck, jika memori diubah, jumlah proses yang dapat diproses secara bersamaan akan meningkat.
(Hadir. (memory1GB))
- memory: 1GB
- Jumlah utas Apache: 120 kasus
- Konsumsi memori per thread di Apache.: 8MB
- Konsumsi memori Apache: 960MB (120 kasus×8MB)
(setelah perubahan (memory2GB))
- memory: 2GB
- Jumlah utas Apache: 240 kasus.
- Konsumsi memori per thread di Apache.: 8MB
- Konsumsi memori Apache: 1920MB (240 kasus.×8MB)
Jika memori ditingkatkan ke 2 GB, maka dimungkinkan untuk melipatgandakan jumlah kasus menjadi sekitar 240 secara bersamaan. Jika memori ditingkatkan menjadi 3GB, tampaknya pemrosesan yang lebih bersamaan dapat dilakukan, tetapi "MaxRequestWorkers (jumlah maksimum kasus yang akan diproses secara bersamaan)" dari MPM Apache adalah "250", jadi penyetelan di sini juga akan diperlukan jika memori ditingkatkan lebih lanjut. Sebaliknya, jika memori dibelah dua, maka akan menjadi sebagai berikut.
(setelah perubahan (memory512GB))
- memory: 512GB
- Jumlah utas Apache: 60 kasus.
- Konsumsi memori per thread di Apache.: 8MB
- Konsumsi memori Apache: 480MB (60 kasus.×8MB)
3. ringkasan
Kami telah mengukur jumlah maksimum kasus yang dapat diproses oleh server web (Apache) pada waktu yang sama. Ditemukan bahwa sistem yang terdiri dari sekitar 60 orang bisa dioperasikan tanpa masalah dengan "CPU: 1core", "memory: 512MB" dan "SSD: 25GB".
Survei ini didasarkan pada asumsi bahwa tidak ada perangkat lunak lain yang berjalan pada performa marjinal. Direkomendasikan untuk memilih spesifikasi dengan sedikit kelonggaran, karena ini adalah nilai marjinal.
Semoga penjelasan ini membantu.
Artikel teknis
Profil
Kontak