Genel Yük Testi Raporu¶
Bu belge, uygulamamızı aynı anda birçok kişi kullandığında sistemimizin nasıl davrandığını açıklamaktadır. Teknik terimlerden kaçınarak doğrudan en önemli konuya odaklanır: kullanıcı deneyimi ve bunu nasıl daha iyi hale getirebileceğimiz.
Büyük Resim: Aynı anda kaç kullanıcıyı kaldırabiliriz?¶
Sistemimizi, uygulamayı aynı anda kullanan farklı sayıda insanı simüle ederek test ettik. Elde ettiğimiz sonuçların en sade özeti şudur:
| Eşzamanlı Aktif Kullanıcı Sayısı | Kullanıcı Deneyimi | Kullanıcının Gördüğü | Kararımız |
|---|---|---|---|
| 20 kullanıcıya kadar | Mükemmel | Ekranlar anında yüklenir (0,4 saniyenin altında). | Kusursuz. Herhangi bir işlem yapılmasına gerek yok. |
| 50 kullanıcı | Kabul Edilebilir | Ekranların yüklenmesi yaklaşık 1 saniye sürer. Yavaşlama hissedilir ama kabul edilebilirdir. | İyi. Mevcut kurulumumuzun sınırındayız. |
| 100 kullanıcı | Can Sıkıcı | Ekranların yüklenmesi yaklaşık 2,5 saniye sürer. Kullanıcılar uygulamanın yavaş olduğunu hisseder. | Kötü. Sistemi optimize etmemiz gerekiyor. |
| 200 kullanıcı | Çökmüş / Bozuk | Uygulama yanıt vermeyi durdurur. Kullanıcılar hiç bitmeyen yükleme simgeleri veya hata mesajları görür. | Başarısız. Sistem kilitlenir ve düzeltilmesi için manuel olarak yeniden başlatılması gerekir. |
Sistem neden yavaşlıyor veya çöküyor?¶
Sadece tek bir kasası açık olan bir süpermarket hayal edin:
-
"Tek Kasa" Darboğazı: Sunucumuz şu anda tek bir işlem (proses) olarak çalışıyor. Bu, süpermarkette sadece tek bir kasa olması gibidir. Mağazada 20 kişi varsa, ödemelerini hızlıca yapıp çıkarlar. Ancak aynı anda 100 kişi gelirse uzun bir kuyruk oluşur ve herkes beklemek zorunda kalır.
-
Veritabanının Aşırı Yüklenmesi: Aynı anda 200 kullanıcı uygulamaya girdiğinde, sunucunun veritabanına bağlanmak için kullanabileceği "bağlantı (connection) limiti" dolar. Bu, kasadaki bilgisayarın aynı anda çok fazla işlem yapılması nedeniyle donması gibidir. Sistem kilitlenir ve tekrar çalışması için manuel olarak yeniden başlatılması gerekir.
-
Giriş Yapmanın (Login) Ağır Bir İş Olması: Uygulamaya giriş yapmak, yüksek güvenlikli şifre kontrolü gerektirir. Bu işlem bilgisayarın işlemci gücünü çok fazla tüketir. Aynı anda birçok kişi giriş yapmaya çalıştığında, bu durum diğer tüm basit işlemleri de (fabrika veya görev listesini görüntülemek gibi) yavaşlatır.
Dosya yükleme ve veri indirme durumları ne olacak?¶
Ayrıca insanların büyük dosyalar yüklediğinde (12 MB boyutunda görseller gibi) veya büyük veri listelerini yüklediğinde ne olduğunu da test ettik.
- İyi Haber: Eğer bunu aynı anda sadece birkaç kişi (1 ila 5 kullanıcı) yapıyorsa, sistem bunu mükemmel ve çok hızlı bir şekilde yönetiyor.
- Riskli Durum: Eğer 50 kişi aynı anda devasa dosyalar yüklemeye çalışırsa, bu durum "Tek Kasa" kuyruğunu daha da kötüleştirecektir.
Bunu nasıl düzelteceğiz? (Eylem Planımız)¶
Uygulamayı yüzlerce kullanıcının aynı anda sorunsuz kullanabileceği hale getirmek için üç basit adım atmamız gerekiyor:
-
Daha Fazla Kasa Açmak (Sunucu Çalışanları Ekleme): Sunucumuzu 1 yerine 4 "çalışan" (worker) ile çalışacak şekilde kolayca yapılandırabiliriz. Bu, 1 yerine 4 kasa açmak gibidir. Kapasitemizi anında katlayacaktır.
-
Veritabanı Kapasitesini Artırmak: Veritabanı ayarlarımızı, donma yaşamadan aynı anda daha fazla bağlantıyı kabul edebilecek şekilde ayarlamamız gerekiyor.
-
Yeniden Test Etmek: Daha fazla kasa açıp veritabanı kapasitesini artırdıktan sonra, 100'den fazla kullanıcının uygulamada sıfır gecikmeyle gezinebildiğini kanıtlamak için testleri tekrar çalıştıracağız.