Berapa banyak permintaan yang harus bisa ditangani server web saya?

39

Tidak masuk ke spesifikasi karena saya tahu tidak ada jawaban nyata untuk ini. Tapi saya sudah melakukan pengujian beban hari ini denganab perintah di apache.

Dan mencapai jumlah 70 permintaan per detik (1000 permintaan dengan 100 pengguna bersamaan), pada halaman yang memuat dari 4 tabel DB yang berbeda, dan melakukan beberapa manipulasi dengan data. Jadi ini adalah halaman yang cukup berat.

Server tidak digunakan untuk hal lain untuk saat ini dan bebannya hanya saya, karena sedang dalam pengembangan. Tetapi aplikasi ini akan digunakan setiap hari oleh banyak pengguna.

Tetapi apakah ini cukup? Atau haruskah saya khawatir (asalkan sudah lebih dari X meminta satu detik)

Saya berpikir bahwa saya tidak perlu khawatir, tetapi saya ingin tips tentang ini.

Ólafur Waage
sumber

Jawaban:

44

70 permintaan per detik berhasil dengan tarif per jam 252.000 render halaman / jam.

Jika Anda menganggap bahwa sesi penelusuran rata-rata untuk situs Anda adalah 10 halaman, maka Anda dapat mendukung 25.000 uniques / jam.

Anda mungkin harus memeriksa angka-angka ini terhadap jumlah pengunjung yang Anda harapkan, yang harus tersedia dari orang-orang di sisi bisnis.

Banyak situs yang saya kerjakan melihat sekitar 50% dari lalu lintas harian mereka dalam periode puncak sekitar 3 jam setiap hari. Jika demikian halnya dengan situs Anda (tergantung pada jenis konten yang Anda berikan, dan audiens), maka Anda harus dapat mendukung jumlah kunjungan unik harian sekitar 150.000.

Ini adalah angka yang cukup bagus; Saya pikir kamu harus baik-baik saja. Adalah bijaksana untuk melihat ke dalam caching opcode dan pencarian basis data sekarang, tetapi ingatlah - optimasi dini adalah akar dari semua kejahatan. Pantau situs, cari hotspot, dan tunggu lalu lintas tumbuh sebelum Anda melakukan upaya pengoptimalan yang mahal untuk masalah yang mungkin tidak Anda miliki.

Tim Howland
sumber
Jawaban yang sangat bagus, persis apa yang saya cari. Saya belum melakukan optimasi dan ingin mendapatkan angka dasar untuk melihat di mana saya duduk saat ini.
Ólafur Waage
"Jika Anda menganggap bahwa sesi penjelajahan rata-rata untuk situs Anda adalah 10 halaman, maka Anda dapat mendukung 25.000 uniques / jam" ... dengan asumsi bahwa setiap unik mengirimkan permintaan setiap detik selama sesi. Jika pengunjung perlu berpikir sebelum klik / permintaan berikutnya - misalnya 5 detik - Anda akan dapat mendukung lebih banyak pengunjung dalam sesi paralel.
Jochem Schulenklopper
Saya sepenuhnya setuju tentang "optimasi prematur" dari perspektif kode. Tapi, memilih desain yang cacat secara keseluruhan sebenarnya adalah akar dari semua kejahatan. Tidak ada yang bisa mengatasi desain yang cacat kecuali menulis ulang.
Jeff Fischer
5

Saya telah menggunakan 2 alat untuk menonton kinerja server apache saya di masa lalu.

Salah satunya adalah munin , yang membuat grafik segala macam hal termasuk jumlah instance apache, jumlah koneksi, memori yang tersedia, penggunaan prosesor, dll - dan membantu saya menentukan kapan saya mendekati zona bahaya , dan mengapa.

Yang kedua hanyalah halaman status server apache ( http: // your_server / server-status? Refresh = 10 ) yang memungkinkan saya melihat status setiap koneksi, bersama dengan berapa banyak koneksi gratis yang tersedia pada saat tertentu.

Brent
sumber
1

Saya sarankan Anda khawatir hanya jika Anda berpikir aplikasi Anda akan sangat sibuk ketika menyentuh tanah. Apakah halaman yang dipermasalahkan mungkin terpukul sekeras itu? Lebih keras? Kurang? Jika Anda tidak tahu, saya menduga bahwa itu tidak akan menjadi masalah sebelumnya. Jika halaman Anda yang paling lambat, Anda akan tahu satu tempat untuk melihat jika Anda harus mengoptimalkan sistem nanti.

Ada juga banyak hal yang dapat Anda lakukan untuk menyelaraskan sebagian besar server web dan mesin basis data untuk menekan lebih banyak kinerja.

pelakon
sumber
Saya ingin bersiap untuk sedikit permintaan, misalnya halaman yang sangat cepat dapat menangani sekitar 110 permintaan per detik. Sementara server dapat menangani 2900 rps pada halaman kosong.
Ólafur Waage
0

Anda menyatakan dalam komentar bahwa server Anda dapat menangani 2.900 permintaan per detik pada halaman kosong. Itu menunjukkan sangat kuat bahwa itu bukan server web itu sendiri - ini adalah pemrosesan.

Jika Anda menggunakan PHP, pertimbangkan cacher opcode seperti APC . Jika DB adalah hambatan, memcached akan membantu Anda juga.

ceejayoz
sumber
Tidak terlalu khawatir tentang angka jika 70 rps cukup.
Ólafur Waage
0

Setelah Anda menghidupkan situs Anda, Anda juga bisa melihat mod_top 1 yang akan memberi Anda tampilan waktu nyata dari muatan saat ini di Apache. Saya belum menginstalnya sendiri tetapi tampaknya memiliki lebih banyak informasi dan rincian beban yang lebih baik daripada status server Apache standar.


sumber