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.listdosyası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.mediumve 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 installveyahelm upgradekomutlarının--setseçeneğini kullanarakvalues.yamldosyası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
--setseç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.