Bir VPS kiralama sunucusu kullanarak aynı anda maksimum WEB/AP sunucusu (Apache ve Tomcat) sayısını ölçtüm.
Yayın Tarihi:1 Ocak 2021.
INFOMARTION > Bir VPS kiralama sunucusu kullanarak aynı anda maksimum WEB/AP sunucusu (Apache ve Tomcat) sayısını ölçtüm.
Genel bakış.
WEB/AP sunucularının (Apache ve Tomcat) 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 kez ölçümler WEB/AP sunucularında (Apache ve Tomcat) gerçekleştirilmiştir, ancak yalnızca WEB (Apache) üzerindeki ölçümler için lütfen aşağıdaki makaleye bakın.
İçindekiler
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 |
AP Sunucusu | Apache Tomcat 9.0.27 |
DB sunucusu | PostgreSQL 10.2 |
Java | OpenJDK 11 |
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 artık gerçekleştirilemeyene 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 | 80 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 en fazla 20 talep işlenebilir. |
---|---|
CPU:2core memory:1GB SSD:50GB | 80 adede kadar eşzamanlı talep işlenebilir |
CPU:3core memory:2GB SSD:100GB | Aynı anda 200'e kadar talep işlenebilir. |
Yaklaşık 20 kullanıcılı bir sistemin "CPU: 1core", "memory: 512MB" ve "SSD: 25GB" ile sorunsuz çalışacağı tespit edilmiştir.
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/AP sunucusu (Apache, Tomcat) ölçümleri
İstek, kullanıcının giriş ekranından giriş yaptığı ve giriş yaptıktan sonra liste ekranının görüntülendiği bir senaryoda atılmıştır. Bu arada, ekran, kimlik doğrulama işlevi de dahil olmak üzere Spring çerçevesi kullanılarak oluşturulmuştur.
Ö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⇒NG
Hata 90. 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ı・・・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.
Java 320MB bellek (heap için 248M ve metaspace için 72M) ve Apache 640MB bellek (8M x 80 işlem) kullanıyor gibi görünüyordu ve Apache'nin MPM ayar değeri '250' olmasına rağmen, '80' işlemden daha fazlasını oluşturamıyor gibi görünüyordu.
※Sunucu 1G belleğe sahip, bu nedenle Apache ve Java için toplam bellek 960MB, yani neredeyse üst sınırda.
AP sunucusu (Java tarafı) iyi çalışıyordu, bu nedenle darboğaz WEB sunucusuydu (Apache).
Apache ve Tomcat kurulup çalıştırıldığında, "CPU: 2core, memory: 1GB, SSD: 50GB" özellikleri ile eşzamanlı erişim sayısının "80" sınırı olduğunu gördük.(Java için bellek ayarlarının heap için 248M ve metaspace için 72M olduğu varsayılmaktadır.)
2-2. dikkate almak
Ancak bellek darboğaz olduğu için, bellek değiştirilirse eşzamanlı olarak işlenebilecek işlem sayısı da artacaktır.
【Burada.(memory1GB)】
- memory:1GB
- Apache iş parçacığı sayısı:80 vaka.
- Apache'de iş parçacığı başına bellek tüketimi.:8MB
- Apache bellek tüketimi:640MB(80 vaka.×8MB)
- Tomcat bellek tüketimi:320MB(HEAP için 248 milyon.、Metaspace için 72m.)
- Apache+Tomcat'in bellek tüketimi:960MB
【değişiklikten sonra(memory2GB)】
- memory:2GB
- Apache iş parçacığı sayısı:200 vaka
- Apache'de iş parçacığı başına bellek tüketimi.:8MB
- Apache bellek tüketimi:1600MB(200 vaka×8MB)
- Tomcat bellek tüketimi:320MB(HEAP için 248 milyon.、Metaspace için 72m.)
- Apache+Tomcat'in bellek tüketimi:1920MB
2 GB bellek ile 200 vakayı aynı anda işlemek 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. Java bellek ayarlaması da gerekebilir. Tersine, bellek yarıya indirilirse, aşağıdaki gibi olacaktır.
【değişiklikten sonra(memory512GB)】
- memory:512GB
- Apache iş parçacığı sayısı:20 vaka
- Apache'de iş parçacığı başına bellek tüketimi.:8MB
- Apache bellek tüketimi:160MB(20 vaka×8MB)
- Tomcat bellek tüketimi:320MB(HEAP için 248 milyon.、Metaspace için 72m.)
- Apache+Tomcat'in bellek tüketimi:480MB
3. özet
WEB/AP sunucularının (Apache ve Tomcat) aynı anda işleyebileceği maksimum vaka sayısının ölçülmesinin sonuçları açıklanmıştır. Yaklaşık 20 kullanıcılı bir sistemin "CPU: 1core", "memory: 512MB" ve "SSD: 25GB" ile sorunsuz çalışacağı 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.