Configurer le serveur WAPT pour les grands déploiements¶
Les paramètre par défaut pour le système d’exploitation, le service web Nginx et la base de données Postgresql sont adaptés pour environ 400 agents WAPT. Si vous avez plus de 400 clients, il est nécessaire de modifier quelques paramètres au niveau du système, au niveau de la base de données PostgreSQL, du service web Nginx et du Serveur WAPT.
À l’avenir, le script postconf.sh pourrait prendre en charge cette configuration en fonction du nombre prévu d’ordinateurs clients.
Avec les paramètres suivants, un serveur WAPT devrait pouvoir accueillir jusqu’à environ 5 000 clients actifs simultanés. Vous pouvez avoir plus de clients dans la base de données s’ils ne fonctionnent pas tous en même temps. Si vous avez plus de 5000 clients, il est recommandé d’avoir plus d’un serveur WAPT en parallèle.
La limite du nombre de clients finaux est due au goulot d’étranglement dans le code python et le moteur PostgreSQL. Les performances du WAPT s’améliorent avec le temps et, à l’avenir, le serveur WAPT pourrait prendre en charge une large base de clients WAPT sur un seul serveur. Cependant, la partie Nginx est très bien dimensionnée et elle peut tirer pleinement partie d’une connexion 10 Gbps pour les gros déploiements de paquets.
Changements de configuration pour une performance renforcée¶
Note
Les paramètres à modifier ci-dessous sont liés entre eux et doivent être modifiés globalement et non individuellement.
Configurer Nginx¶
In the /etc/nginx/nginx.conf
file (for Windows C:\wapt\waptserver\nginx\conf\nginx.conf
), modify worker_connections
parameter. The value should be around 2.5 times the number of WAPT clients
(n connections for websockets and n connections for package downloads
and inventory upload + some margin).
events {
worker_connections 4096;
}
Then upgrade the number of filedescriptors
in the /etc/nginx/nginx.conf
file (for Windows C:\wapt\waptserver\nginx\conf\nginx.conf
):
worker_rlimit_nofile 32768;
Configurer Linux¶
Augmenter le nombre de filedescriptors. Le fichier systemd demande une augmentation du nombre autorisé de filedescriptors (LimitNOFILE=32768). Nous devrions avoir la même chose pour Nginx. Il y a quelques limites à augmenter.
Tout d’abord, nous modifions au niveau du système le nombre de filedescriptors autorisés pour Nginx et WAPT.
créer le fichier
/etc/security/limits.d/wapt.conf
:cat > /etc/security/limits.d/wapt.conf <<EOF wapt hard nofile 32768 wapt soft nofile 32768 www-data hard nofile 32768 www-data soft nofile 32768 EOF
Nginx sert de proxy inverse et établit un grand nombre de connexions. Chaque client WAPT maintient une connexion websocket en permanence afin d’échanger avec le serveur WAPT.
Le noyau Linux a une protection contre l’ouverture simultanée de trop de connexions TCP et on peut obtenir le message SYN flooding on port dans le journal d’historique Nginx. Afin d’éviter ces messages, il est nécessaire de modifier les deux paramètres suivants. Ils doivent être environ 1,5 fois supérieur au nombre de clients WAPT.
cat > /etc/sysctl.d/wapt.conf <<EOF
net.ipv4.tcp_max_syn_backlog=4096
net.core.somaxconn=4096
EOF
sysctl --system
Configurer PostgreSQL¶
A higher number of clients need a higher number of connections to the PostgreSQL
database. In the postgresql.conf
file (file:/etc/postgresql/11/main/postgresql.conf on debian 10 for example or for Windows C:\wapt\waptserver\pgsql9.6_data\postgresql.conf
),
you need to increase the following parameter to approximately 1/4
the number of active WAPT agents.
max_connections = 1000
Configurer le serveur WAPT¶
In /opt/wapt/conf/waptserver.ini
file (for Windows C:\wapt\conf\waptserver.ini
, db_max_connections
should be equal to PostgreSQL max_connections
minus 10 (PostgreSQL needs
to keep some connections for its housekeeping stuff). The max_clients
parameter should be set around 1.2 times the number of WAPT agents:
[options]
...
max_clients = 4096
db_max_connections = 990
Configuration pour le téléchargement de gros paquets¶
En fonction du partitionnement de votre serveur WAPT, vous devrez peut-être faire attention au répertoire de téléchargement de fichiers temporaires Nginx. Nginx agit comme un proxy inversé pour le moteur Python du serveur WAPT et il effectue une mise en cache des paquets téléchargés lors du téléchargement d’un nouveau paquet depuis la console.
Les paquets sont stockés dans le répertoire /var/lib/nginx/proxy
. Vous devez vous assurer que la partition qui héberge ce répertoire est suffisamment grande. Vous pouvez changer l’emplacement de ce répertoire en utilisant le paramètre de configuration Nginx suivant.
$client_body_temp_path