Web sunucum kaç istekle başa çıkabilmelidir?


39

Bunun için gerçek bir cevap olmadığını bildiğimden beri teknik özelliklere girmemek. Ama bugün abapache komutuyla yük testi yapıyorum .

4 farklı DB tablosundan yüklenen ve verilerle ilgili bazı manipülasyonlar yapan bir sayfada saniyede 70 istek sayısına (100 eşzamanlı kullanıcıyla 1000 istek) ulaştı. Bu yüzden oldukça ağır bir sayfa.

Sunucu şimdilik başka bir şey için kullanılmıyor ve üzerindeki yük sadece geliştirme aşamasında. Ancak uygulama birçok kullanıcı tarafından günlük olarak kullanılacak.

Ama bu yeterli mi? Endişelenmeli miyim, yoksa (X'in bir saniyesini istediği sürece)

Endişelenmemem gerektiğini düşünüyorum ama bu konuda bazı ipuçları istiyorum.

Yanıtlar:


44

Saniyede 70 istek, saatlik 252.000 sayfa oluşturma / saat hızında çalışıyor.

Siteniz için ortalama tarama oturumunun 10 sayfa derinliğinde olduğunu varsayarsanız, saatte 25.000 benzersiz destekleyebilirsiniz.

Muhtemelen bu rakamları, iş tarafındaki insanlardan temin edilebilen beklenen ziyaretçi sayınıza göre kontrol etmelisiniz.

Çalıştığım sitelerin çoğu, her gün yaklaşık 3 saatlik yoğun bir sürede günlük trafiklerinin yaklaşık% 50'sini görüyor. Siteniz için durum buysa (sağladığınız içeriğin türüne ve izleyiciye göre değişir), o zaman yaklaşık 150.000 günlük benzersiz ziyaret sayısını destekleyebilmelisiniz.

Bunlar oldukça iyi sayılar; Bence iyi olmalısın. Şimdi opcode önbelleğe alma ve veri tabanı ayarlarına bakmak akıllıca olacaktır, ancak unutmayın - erken optimizasyon tüm kötülüklerin kökenidir. Siteyi izleyin, etkin noktaları arayın ve sahip olamadığınız bir sorun için pahalı bir optimizasyon çalışması yapmadan önce trafiğin büyümesini bekleyin.


Çok iyi cevap, tam olarak aradığım şeydi. Herhangi bir optimizasyon yapmadım ve şu anda nerede oturduğumu görmek için temel sayıları almak istedim.
furlafur Waage

"Siteniz için ortalama tarama oturumunun 10 sayfa derinliğinde olduğunu varsayarsanız, o zaman her benzersiz oturum sırasında her saniye bir istek gönderdiği varsayımıyla 25.000 benzersiz / saat destekleyebilirsiniz". Bir ziyaretçinin bir sonraki tıklama / istekden önce düşünmesi gerekiyorsa - örneğin 5 saniye - paralel oturumlarda daha fazla ziyaretçiyi destekleyebilirsiniz.
Jochem Schulenklopper

"Erken optimizasyon" hakkında kod perspektifinden tamamen katılıyorum. Ancak, kusurlu bir tasarımın bir bütün olarak seçilmesi aslında tüm kötülüklerin kökenidir. Yeniden yazma dışında hiçbir kusurlu tasarımın üstesinden gelemez.
Jeff Fischer

5

Geçmişte apache sunucularımın performansını izlemek için 2 araç kullandım .

Bunlardan biri, apache örneği sayısı, bağlantı sayısı, kullanılabilir bellek, işlemci kullanımı vb. Gibi her türlü şeyi grafik haline getiren ve tehlike bölgesine ne zaman yaklaşacağımı ve neden bir tehlike tespit ettiğimi belirlememe yardımcı olan munin .

İkincisi, basitçe apache sunucu durum sayfasıdır ( http: // your_server / server-status? Refresh = 10 ), bu, her bir bağlantının durumunu ve herhangi bir anda kaç tane boş bağlantının mevcut olduğunu görmemi sağlar.


1

Yalnızca uygulamanızın yere çarptığında çok meşgul olacağını düşünüyorsanız endişelenmenizi öneririm. Söz konusu sayfa bu kadar sert vurulacak mı? Daha güçlü? Az? Hiç bir fikriniz yoksa, daha önce bir sorun olma ihtimalinden şüpheliyim. En yavaş sayfanızsa, sistemi daha sonra optimize etmek zorunda olup olmayacağınıza bakacak bir yer bileceksiniz.

Daha fazla performans elde etmek için çoğu web sunucusunu ve veritabanı motorunu ayarlamak için yapabileceğiniz birçok şey vardır.


Biraz istek için hazırlık yapmak istiyorum, örneğin çok hızlı bir sayfa saniyede 110 istek yapabilir. Sunucu boş bir sayfada 2900 rps işleyebilir.
furlafur Waage

0

Sunucunuzun boş bir sayfada saniyede 2.900 isteği işleyebileceği yorumunda belirtiyorsunuz. Bu güçlü bir şekilde web sunucusunun kendisi olmadığını gösterir - işlemdir.

PHP kullanıyorsanız, APC gibi bir opcode cacher düşünün . DB bir darboğaz ise, memcached de size yardımcı olacaktır.


70 rps yeterliyse, sayılar hakkında özel olarak endişelenmeyin.
furlafur Waage

0

Sitenizi yayınladıktan sonra , Apache üzerindeki mevcut yükün gerçek zamanlı görüntüsünü veren mod_top 1'e bakabilirsiniz . Kendim yüklemedim ama kesinlikle standart Apache sunucu durumundan daha fazla bilgiye ve yüke göre daha iyi bir arızaya sahip gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.