Bir VPS kiralık sunucu kullanarak web sunucusunun (Apache) aynı anda işleyebileceği maksimum vaka sayısını ölçtüm.


Yayın Tarihi:31 Aralık 2020.



INFOMARTION > Bir VPS kiralık sunucu kullanarak web sunucusunun (Apache) aynı anda işleyebileceği maksimum vaka sayısını ölçtüm.

Genel bakış.

Web sunucusunun (Apache) aynı anda işleyebileceği maksimum vaka sayısını ölçtüm ve sonuçlar hakkında yazmak istiyorum. Hizmet verilebilecek maksimum talep sayısını merak ediyorduk, bu yüzden bir anket yaptık. VPS sunucu özelliklerini seçmek için bunu bir referans olarak kullanın.

Bu sefer, ölçümler sadece WEB (Apache) üzerinde gerçekleştirilmiştir, ancak WEB/AP sunucuları (Apache ve Tomcat) üzerindeki ölçümler için lütfen aşağıdaki makaleye bakın.

Bir VPS kiralama sunucusu kullanarak aynı anda maksimum WEB/AP sunucusu (Apache ve Tomcat) sayısını ölçtüm.

İçindekiler

  1. ölçüm
  2. Ölçüm sonuçlarının ayrıntıları
  3. özet

1. ölçüm

1-1. Ölçüm ortamı

Ölçümlerin yapılacağı ortam aşağıda belirtilmiştir.

■Kiralık sunucu bilgileri

CPU2core
memory1GB
SSD50GB

■Sunucu bilgileri

OSCentOS 7.4 64bit
Web sunucusuApache HTTP Server 2.4.41

1-2. Ölçüm yöntemi

Bunu JMeter kullanarak ölçmek istiyorum. JMeter, Java'da çalışan bir yük ölçüm aracıdır. Araç, çok sayıda talebin aynı anda atılmasına izin verir. JMeter kullanarak eşzamanlı isteklerin sayısını kademeli olarak artırmak ve işlem daha fazla yapılamayana kadar yükü artırmak istiyoruz.

Belirli koşullar şunları içerir.

  • istek aralığı・・・5 saniye.
  • Eşzamanlı talep sayısı・・・10 vaka.(Ölçümler kademeli olarak her biri 10 vaka artmıştır.)
  • Zaman ölçümü・・・60 saniye.

Ölçüm süresi "60 saniye" ve talep aralığı "5 saniye" olduğundan, sisteme tekrar tekrar 12 kez (60÷5) erişmek istiyorsunuz.

1-3. ölçüm sonucu

Sonunda, birçok kişi sunucunun hangi özellikleri ve ne kadarını kaldırabileceği sonucuyla ilgileniyor, bu yüzden önce sonucu belirtmek istiyorum.

CPU:2core
memory:1GB
SSD:50GB
120 adede kadar eşzamanlı talep işlenebilir.

Bu ölçümün sonuçları yukarıda belirtilenleri göstermiştir. Yukarıdaki sonuçlar aşağıdaki çıkarımların yapılabileceğini göstermektedir. Sunucu özelliklerini seçerken bunu bir kriter olarak kullanmaya çalışın.

CPU:1core
memory:512MB
SSD:25GB
Aynı anda 60 adede kadar talep işlenebilir.
CPU:2core
memory:1GB
SSD:50GB
120 adede kadar eşzamanlı talep işlenebilir.
CPU:3core
memory:2GB
SSD:100GB
240 adede kadar eşzamanlı talep işlenebilir.

"CPU: 1core", "memory: 512MB" ve "SSD: 25GB" özellikleriyle bile yaklaşık 60 kişilik bir sistemin sorunsuz çalışabildiği görüldü.

2. Ölçüm sonuçlarının ayrıntıları

Ölçüm sonuçlarını daha önce açıkladık, ancak ne tür sonuçlar açıkladığımızla ilgileniyorsanız, lütfen ileride açıklanacak olan ölçüm sonucu ayrıntılarını da kontrol edin.

2-1. WEB sunucusu (Apache) ölçümleri

HTML'de oluşturulan sayfalara karşı tekrarlanan istekler atıldı. Bu, PHP işlemleri veya JavaScript karmaşıklığı içermeyen basit bir sayfadır.

Ölçümler aşağıdaki sonuçları göstermiştir.

  • 10 eşzamanlı talep için⇒OK
  • 20 eşzamanlı talep için⇒OK
  • 30 eşzamanlı talep için⇒OK
  • 40 eşzamanlı talep için⇒OK
  • 50 eşzamanlı talep için⇒OK
  • 60 eşzamanlı talep için⇒OK
  • 70 eşzamanlı talep için⇒OK
  • 80 eşzamanlı talep için⇒OK
  • 90 eşzamanlı talep için⇒OK
  • 100 eşzamanlı talep için⇒OK
  • 110 eşzamanlı talep⇒OK
  • 120 eşzamanlı talep için⇒OK
  • 130 eşzamanlı talep için⇒NG

Hata 130. vakada meydana gelmiştir. Nedeni Apache'ye bir bağlantı hatasıydı. Bu sırada sunucunun durumu aşağıdaki gibiydi.

  • CPU kullanımı・・・26%
  • bellek kullanım oranı・・・100%

Tam bir bellek eksikliği darboğazdı.

Biraz daha meraklı olanlar için Apache Çoklu İşlem Modülü (MPM) yapılandırması aşağıdaki gibidir. MPM basitçe Apache'nin paralel olarak ne kadar işlem yapmasına izin verileceğinin ayarlanması olarak açıklanmaktadır.

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

İlgilenilen ayar "MaxRequestWorkers" için "250 "dir. Bu, Apache'nin aynı anda işleyebileceği maksimum vaka sayısı için bir ayardır. '250', bu nedenle 250 vaka maksimum paralel olarak işlenebilir, ancak bellek kullanımına bakıldığında, vaka başına yaklaşık 8 MB bellek kullanılmıştır.

Bellek 960 MB (8M x 120 işlem) kullanıyor gibi görünüyordu ve ayar değeri '250' idi, ancak '120'den fazla işlem oluşturmanın mümkün olmadığı görülüyordu.
※Sunucunun belleği neredeyse 1G sınırına dayanmış durumda.

Sunucuyu fiilen çalıştırırken, PHP ve Java da dahil edilirse, sınır 100 vaka civarındadır ve yer varsa, 80 vaka aynı anda paralel olarak işlenebilir.

"CPU: 2core, memory: 1GB, SSD: 50GB" özellikleriyle yalnızca Apache kurulup çalıştırıldığında, eşzamanlı erişim sayısının "120" sınırı olduğu görülmüştür.

2-2. dikkate almak

Buradan itibaren, bellek darboğaz olduğu için, bellek değiştirilirse, eşzamanlı olarak işlenebilecek işlem sayısı artacaktır.

【Burada.(memory1GB)】

  • memory:1GB
  • Apache iş parçacığı sayısı:120 vaka
  • Apache'de iş parçacığı başına bellek tüketimi:8MB
  • Apache bellek tüketimi:960MB(120 vaka×8MB)

【değişiklikten sonra(memory2GB)】

  • memory:2GB
  • Apache iş parçacığı sayısı:240 vaka.
  • Apache'de iş parçacığı başına bellek tüketimi:8MB
  • Apache bellek tüketimi:1920MB(240 vaka.×8MB)

Bellek 2 GB'a yükseltilirse, vaka sayısını iki katına çıkararak eş zamanlı olarak yaklaşık 240'a çıkarmak mümkün olabilir. Bellek 3GB'a çıkarılırsa, daha fazla eşzamanlı işlem yapılabilir gibi görünüyor, ancak Apache'nin MPM'sinin "MaxRequestWorkers (eşzamanlı olarak işlenecek maksimum vaka sayısı)" "250" dir, bu nedenle bellek daha da artırılırsa burada da ayarlama yapılması gerekecektir. Tersine, bellek yarıya indirilirse, aşağıdaki gibi olacaktır.

【değişiklikten sonra(memory512GB)】

  • memory:512GB
  • Apache iş parçacığı sayısı:60 kasa.
  • Apache'de iş parçacığı başına bellek tüketimi:8MB
  • Apache bellek tüketimi:480MB(60 kasa.×8MB)

3. özet

Web sunucusunun (Apache) aynı anda işleyebileceği maksimum vaka sayısını ölçtük. Yaklaşık 60 kişilik bir sistemin "CPU: 1core", "memory: 512MB" ve "SSD: 25GB" ile sorunsuz çalışabildiği tespit edilmiştir.

Anket, başka hiçbir yazılımın marjinal performansta çalışmadığı varsayımına dayanmaktadır. Marjinal bir değer olduğu için biraz esnek bir spesifikasyon seçilmesi tavsiye edilir.

Sonuna kadar izlediğiniz için teşekkür ederiz.