Berapa permintaan "rata-rata" per detik untuk aplikasi web produksi?

120

Saya tidak memiliki kerangka acuan dalam hal apa yang dianggap "cepat"; Saya selalu bertanya-tanya tentang ini tetapi tidak pernah menemukan jawaban yang langsung ...

capotej
sumber
9
Tidak ada jawaban yang pasti. Cepat adalah istilah yang relatif, dan jawabannya sangat bergantung pada konteks dan penerapan Anda.
Dave L.

Jawaban:

105

OpenStreetMap tampaknya memiliki 10-20 per detik

Wikipedia tampaknya 30000 hingga 70000 per detik tersebar di 300 server (100 hingga 200 permintaan per detik per mesin, sebagian besar adalah cache)

Geografis mendapatkan 7000 gambar per minggu (1 unggahan per 95 detik)

OJW
sumber
6
Wow, itu lumayan lambat untuk wikipedia
Joseph Persie
8
@JosephPersie Jangan lupa lihat tanggal postingannya ya, hehe.
Spectral
Itu masih menunjukkan kurang dari 200.000 / detik - halaman pemantauan baru adalah grafana.wikimedia.org
OJW
menarik, saya baru saja memuat pengujian streaming pada webpieces pada catatan per detik vs. permintaan per detik. Saya pikir permintaan / detik berada di rata-rata yang sama (100 hingga 200) tetapi dengan streaming itu menembak hingga 1140 catatan / detik (melakukan ndjson). Pokoknya saya pikir saya akan membagikan lebih banyak nomor. (tidak yakin apakah ini akan berubah karena yang telah diuji dialirkan melalui 2 layanan mikro ke dalam basis data dalam memori ... masih perlu menguji dengan DB langsung. DB mungkin menjadi penghambat kami dan membawa kami mundur kecuali kami beralih ke nosql).
Dean Hiller
50

Tidak yakin ada yang masih tertarik, tetapi informasi ini telah diposting tentang Twitter (dan di sini juga ):

Statistik

  • Lebih dari 350.000 pengguna. Angka-angka sebenarnya seperti biasa, sangat super rahasia.
  • 600 permintaan per detik.
  • Rata-rata 200-300 koneksi per detik. Melonjak ke 800 koneksi per detik.
  • MySQL menangani 2.400 permintaan per detik.
  • 180 Rails instance. Menggunakan Mongrel sebagai server "web".
  • 1 Server MySQL (satu kotak besar 8 inti) dan 1 budak. Budak hanya dibaca untuk statistik dan pelaporan.
  • 30+ proses untuk menangani pekerjaan serabutan.
  • 8 Matahari X4100s.
  • Proses permintaan dalam 200 milidetik di Rails.
  • Rata-rata waktu yang dihabiskan dalam database adalah 50-100 milidetik.
  • Lebih dari 16 GB memcache.
Peter K.
sumber
2
Selangkah
Chinoto Vokro
@ChinotoVokro Menambahkan tautan Anda ke jawabannya juga. Terima kasih!
Peter K.
1
@user :-D Ya, ini cukup bersejarah sekarang. Namun, itu adalah jawaban yang berguna bagi saya saat itu! :-)
Peter K.
13

Ketika saya pergi ke panel kontrol webhost saya, buka phpMyAdmin, dan klik "Tampilkan informasi runtime MySQL", saya mendapatkan:

Server MySQL ini telah berjalan selama 53 hari, 15 jam, 28 menit dan 53 detik. Ini dimulai pada 24 Oktober 2008 pada 04:03.

Statistik kueri: Sejak permulaannya, 3.444.378.344 kueri telah dikirim ke server.

Total 3,444 M
per jam 2,68 M
per menit 44,59 k
per detik 743,13

Itu rata-rata 743 kueri mySQL setiap detik selama 53 hari terakhir!

Saya tidak tahu tentang Anda, tetapi bagi saya itu cepat! Sangat cepat!!

lkessler.dll
sumber
Tidak yakin. Saat itu saya berada di IXWebhosting dan mereka menggunakan Sistem Operasi Windows 32-bit untuk server bersama mereka. Saya menduga server database mySQL mereka adalah mesin khusus yang terpisah, tetapi saya tidak tahu pasti.
lkessler
3
Saya berani bertaruh angka itu adalah agregat dari semua klik ke server MySQL tertentu, dan bukan hanya contoh Anda - meskipun saya mungkin salah
warren
@ Warren: Ya, saya berasumsi bahwa itu adalah seluruh server. Tetapi mengetahui apa yang terlibat dalam satu pemrosesan kueri SQL, menangani sebanyak itu SETIAP detik sangat mengesankan ... dan itu hanya rata-rata, bukan beban puncak.
lkessler
11

Secara pribadi, saya suka kedua analisis yang dilakukan setiap waktu .... permintaan / detik dan waktu rata-rata / permintaan dan suka melihat waktu permintaan maksimal juga di atas itu. mudah untuk membalik jika Anda memiliki 61 permintaan / detik, Anda dapat mengubahnya menjadi 1000ms / 61 permintaan.

Untuk menjawab pertanyaan Anda, kami telah melakukan uji beban besar sendiri dan menemukannya berkisar pada berbagai perangkat keras amazon yang kami gunakan (nilai terbaik adalah cpu medium 32 bit saat turun ke $$ / event / detik) dan permintaan / detik kami berkisar dari 29 permintaan / detik / node hingga 150 permintaan / detik / node.

Memberikan hardware yang lebih baik tentunya memberikan hasil yang lebih baik tetapi bukan ROI yang terbaik. Bagaimanapun, posting ini sangat bagus karena saya sedang mencari beberapa persamaan untuk melihat apakah nomor saya di mana di rata-rata dan membagikan milik saya juga jika ada orang lain yang melihat. Punyaku murni dimuat setinggi mungkin.

CATATAN: berkat permintaan / analisis kedua (bukan ms / request) kami menemukan masalah utama linux yang kami coba selesaikan di mana linux (kami menguji server di C dan java) membekukan semua panggilan ke pustaka soket saat di bawah terlalu banyak beban yang nampaknya sangat aneh. Posting lengkap sebenarnya dapat ditemukan di sini .... http://ubuntuforums.org/showthread.php?p=11202389

Kami masih mencoba menyelesaikannya karena ini memberi kami peningkatan kinerja yang sangat besar karena pengujian kami berlangsung dari 2 menit 42 detik menjadi 1 menit 35 detik ketika ini diperbaiki sehingga kami melihat peningkatan kinerja 33% .... belum lagi, semakin buruk serangan DoS adalah semakin lama jeda ini sehingga semua cpus turun ke nol dan berhenti memproses ... menurut saya pemrosesan server harus dilanjutkan saat menghadapi DoS tetapi untuk beberapa alasan, itu membeku sesekali selama Dos terkadang hingga 30 detik !!!

TAMBAHAN: Kami menemukan bahwa itu sebenarnya adalah bug kondisi balapan jdk .... sulit diisolasi pada cluster besar tetapi ketika kami menjalankan 1 node data server 1 tetapi 10 di antaranya, kami dapat mereproduksinya setiap saat dan hanya melihat server / datanode itu terjadi pada. Mengalihkan jdk ke rilis sebelumnya memperbaiki masalah tersebut. Kami berada di jdk1.6.0_26 Saya percaya.

Dean Hiller
sumber
4

Itu adalah jenis pertanyaan yang sangat terbuka.

Anda menanyakan 1. beban permintaan rata-rata untuk aplikasi produksi 2. apa yang dianggap cepat

Ini tidak perlu berhubungan.

Rata-rata # permintaan Anda per detik ditentukan oleh

Sebuah. jumlah pengguna secara bersamaan

b. jumlah rata-rata permintaan halaman yang mereka buat per detik

c. jumlah permintaan tambahan (mis. panggilan ajax, dll)

Mengenai apa yang dianggap cepat .. maksud Anda, seberapa sedikit permintaan yang dapat diterima situs? Atau jika perangkat keras dianggap cepat jika dapat memproses xyz # permintaan per detik?

DaveJustDave
sumber
1

Perhatikan bahwa grafik rasio klik adalah pola sinusoidal dengan 'jam sibuk' mungkin 2x atau 3x lipat dari rasio yang Anda dapatkan saat pengguna tidur. (Dapat berguna saat Anda menjadwalkan hal-hal pemrosesan batch harian yang akan dilakukan di server)

Anda dapat melihat efeknya bahkan di situs 'internasional' (multibahasa, dilokalkan) seperti wikipedia

OJW
sumber
1

biasanya kurang dari 2 detik per pengguna - misalnya, pengguna yang melihat respons lebih lambat berpikir bahwa sistemnya lambat.

Sekarang beri tahu saya berapa banyak pengguna yang telah Anda hubungkan.

gbjbaanb.dll
sumber
1

Anda dapat menelusuri "analisis efek slashdot" untuk grafik yang akan Anda lihat jika beberapa aspek situs tiba-tiba menjadi populer di berita, misalnya grafik di wiki .

Aplikasi web yang bertahan cenderung menjadi aplikasi yang dapat menghasilkan halaman statis alih-alih menempatkan setiap permintaan melalui bahasa pemrosesan.

Ada video yang sangat bagus (menurut saya mungkin ada di ted.com? Saya pikir mungkin dibuat oleh tim web flickr? Apakah ada yang tahu tautannya?) Dengan ide tentang cara menskalakan situs web di luar server tunggal, misalnya bagaimana caranya mengalokasikan koneksi di antara campuran server baca-saja dan baca-tulis untuk mendapatkan efek terbaik bagi berbagai jenis pengguna.

OJW
sumber