Wallarm NGINX node için Kaynak Ayırma¶
Wallarm NGINX node için ayrılan bellek ve CPU kaynaklarının miktarı istek işleme kalitesini ve hızını belirler. Bu talimatlar, self-hosted NGINX node bellek tahsisine yönelik önerileri açıklar.
Bir NGINX filtreleme düğümünde bellek ve CPU kaynaklarını tüketen iki ana bileşen vardır:
-
wstore, post-analiz modülü olarak da adlandırılır. Bu, yerel veri analitiği arka ucu olup filtreleme düğümündeki birincil bellek tüketicisidir.
-
NGINX ana filtreleme düğümü ve ters proxy bileşenidir.
NGINX CPU kullanımı; RPS düzeyi, istek ve yanıtın ortalama boyutu, düğümün işlediği özel kurallar kümesindeki kural sayısı, Base64 veya veri sıkıştırma gibi kullanılan veri kodlamalarının türleri ve katmanları vb. birçok faktöre bağlıdır.
Ortalama olarak bir CPU çekirdeği yaklaşık 500 RPS işleyebilir. Production modda çalışırken NGINX süreci için en az 1 CPU çekirdeği ve wstore süreci için 1 çekirdek ayırmanız önerilir. Çoğu durumda, önce filtreleme düğümünü fazla tahsis etmek, gerçek production trafik seviyeleri için fiili CPU ve bellek kullanımını gözlemlemek ve ayrılan kaynakları kademeli olarak makul bir seviyeye düşürmek (trafik sıçramaları ve düğüm yedekliliği için en az 2x marjla) önerilir.
wstore¶
Postanalytics uses the in-memory storage wstore. The wstore database is used to keep in a circular buffer a local copy of the data stream processed by a filtering node, including request/response headers and request bodies (but not response bodies).
To make a filtering node efficient, the database should keep at least 15 minutes of transmitted data with about 2x overhead for data serialization. Following these points, the amount of memory can be estimated by the formula:
For example, if a filtering node is handling at peak 50 Mbps of end user requests, the required wstore database memory consumption can be estimated as the following:
Kubernetes Ingress denetleyicisinde Kaynak Ayırma¶
wstore memory is configured using the following sections in the values.yaml
file:
-
To set up memory in GB:
-
To set up memory in CPU:
Listed parameters are set by using the --set
option of the commands helm install
and helm upgrade
, for example:
helm install --set controller.wallarm.postanalytics.arena='1.0' <INGRESS_CONTROLLER_RELEASE_NAME> wallarm/wallarm-ingress -n <KUBERNETES_NAMESPACE>
There are also other parameters required for correct Ingress controller installation. Please pass them in the --set
option too.
All-in-One Installer kullanılıyorsa Kaynak Ayırma¶
wstore belleğinin boyutlandırılması, /opt/wallarm/env.list
yapılandırma dosyasındaki SLAB_ALLOC_ARENA
özniteliği kullanılarak kontrol edilir. Bellek ayırmak için:
-
/opt/wallarm/env.list
dosyasını düzenlemek üzere açın: -
SLAB_ALLOC_ARENA
özniteliğini bellek boyutuna ayarlayın. Değer tam sayı veya kayan nokta olabilir (ondalık ayırıcı nokta.
olmalıdır). Örneğin: -
Wallarm servislerini yeniden başlatın:
Amazon Machine Image kullanılıyorsa Kaynak Ayırma¶
-
Wallarm node, ayrılan kaynakları wstore ve NGINX arasında otomatik olarak dağıtır.
-
Wallarm NGINX Node AMI üzerinden bir Wallarm node örneği başlatırken, test için
t3.medium
ve production içinm4.xlarge
örnek tiplerini kullanmanızı öneririz.
NGINX¶
NGINX bellek tüketimi birçok faktöre bağlıdır. Ortalama olarak aşağıdaki şekilde tahmin edilebilir:
Örneğin:
-
Filtreleme düğümü, zirvede 10000 eşzamanlı isteği işliyor,
-
ortalama istek boyutu 5 kB.
NGINX bellek tüketimi aşağıdaki gibi tahmin edilebilir:
Bellek miktarını ayarlamak için:
-
NGINX Ingress denetleyici pod'u (
ingress-controller
) için,helm install
veyahelm upgrade
komutlarının--set
seçeneğini kullanarakvalues.yaml
dosyasındaki aşağıdaki bölümleri yapılandırın:
Parametreleri değiştiren komut örnekleri:
helm install --set controller.resources.limits.cpu='2000m',controller.resources.limits.memory='3280Mi' <INGRESS_CONTROLLER_RELEASE_NAME> wallarm/wallarm-ingress -n <KUBERNETES_NAMESPACE>
Doğru Ingress denetleyicisi kurulumu için diğer parametreler de gereklidir. Lütfen bunları da
--set
seçeneğinde iletin. -
diğer dağıtım seçenekleri için NGINX yapılandırma dosyalarını kullanın.
Sorun Giderme¶
Bir Wallarm node beklenenden daha fazla bellek ve CPU tüketiyorsa, kaynak kullanımını azaltmak için CPU yüksek kullanım sorun giderme makalesindeki önerileri inceleyip uygulayın.