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.
İçindekiler
- ölçüm
- 1-1. Ölçüm ortamı
- 1-2. Ölçüm yöntemi
- 1-3. ölçüm sonucu
- Ölçüm sonuçlarının ayrıntıları
- 2-1. WEB sunucusu (Apache) ölçümleri
- 2-2. dikkate almak
- özet
1. ölçüm
1-1. Ölçüm ortamı
Ölçümlerin yapılacağı ortam aşağıda belirtilmiştir.
■Kiralık sunucu bilgileri
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Sunucu bilgileri
OS | CentOS 7.4 64bit |
---|---|
Web sunucusu | Apache 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.
■INFORMATION
BİLGİ üst sayfasına gitmek için lütfen buraya tıklayınız.
■PROFILE
Profil için lütfen buraya tıklayınız.
■İletişim bilgileri.
Makaleyle ilgili sorularınız için lütfen bizimle buradan iletişime geçin.