Bonjour Florent,

Freeswitch :-)

1.6 à 1.10

min idle cpu 0.00/99.77 sur 1.6
min idle cpu 0.00/99.33 sur 1.10

J'ai du mal à interpreter ces valeurs, ça veut dire quoi  ? C'est lié à ça https://freeswitch.org/confluence/display/FREESWITCH/min-idle-cpu ?

Merci



Le ven. 10 sept. 2021 à 16:04, Florent CHAUVEAU <florent.chauveau@gmail.com> a écrit :
Hello, 

J'ai fait cette upgrade il y a quelques années. 

Le soft, c'est freeswitch ou asterisk ? 

En passant d'un kernel 3.16 (Debian 8) à un kernel 4.19 (Debian 10), j'avais aussi constaté une hausse des loads, de façon globale, sur toutes les VMs. 

En passant d'un freeswitch 1.2 à 1.4 (ou 1.6), j'ai également constaté une hausse des loads (et de la consommation de RAM). 

Mes conclusions :
- le calcul des loads a changé dans le kernel, 
- FS consomme plus de ressources dans les dernières versions. 

Toutefois, bien que le load kernel augmente (freeswitch ayant une priorité à -16, ça va vite), le "min idle cpu" dans FS ne bouge pas. Donc du point de vue du soft, RAS. 

Depuis, je suis passé sur proxmox, les loads ont rebaissé. Le "min cpu idle" lui n'a pas bougé. 


Cdlt 

FC


From: FRsAG <frsag-bounces@frsag.org> on behalf of Fabien H <frnog.fabien@gmail.com>
Sent: Friday, September 10, 2021, 11:56
To: frsag@frsag.org
Subject: [FRsAG] VMWARE / Debian 10 / Problème interruptions sur cartes réseau

Bonjour,

je vais essayer de vous expliquer le problème que nous rencontrons en essayant d’être concis :

Nous avons utilisé pendant des années sur 2 VM  un applicatif open source très connu qui fonctionne massivement en multi-threadé, en quasi temps réel,  et en gateway UDP avec  mal un trafic UDP qui va en augmentant selon la charge  (les plus perspicaces devineront !) :

- ESXI : 6.5.0 update 3
- OS invité : Debian 8
- Interfaces réseau : E1000
- 8 vCPU / 16 Go RAM

Cela a fonctionné très bien même en cas de montée en charge assez importante. Le load average depasse rarement 0,8 et très stable dans le temps. Pourtant nous étions bien conscients que les conditions n’étaient pas optimales sur la type de carte E1000 utilisées.

Récemment, nous avons déployé 2 nouvelles VM avec le même applicatif mais en version plus récente et sur un OS plus récent :
- ESXI 6.5.0 update 3
- OS invité : Debian 10
- Interface réseau : VMXNET3 (driver integré au noyau 4.19.0-16)
- 8 vCPU / 16 Go RAM
- VMWARE Tools installé


Nous avons constaté assez rapidement des problèmes de montée en charge, avec une charge moderée, le load average est quasi à 0,00. Lors d’une montée en charge en journée, le  load  est plutôt en moyenne sur 2 ou 3, et lors de certains pics de charge part à 4 ou 6, puis retombe à 2-3. Lorsque la charge retombe.
Je constate que le load average s’envole surtout quand le si est non nul sur les 2 CPU qui gèrent les interruptions des 2 cartes réseau IN et OUT :

%Cpu2  :  1.5 us,  1.1 sy,  0.0 ni, 96.6 id,  0.0 wa,  0.0 hi,  0.8 si,  0.0 st
%Cpu3  :  1.1 us,  1.1 sy,  0.0 ni, 97.4 id,  0.0 wa,  0.0 hi,  0.4 si,  0.0 st

  16:          0          0  529091347          0          0          0          0          0          0          0          0          0          0          0          0          0   IO-APIC   16-fasteoi   ens34, vmwgfx
  17:          0          0          0  453037316          0          0          0          0          0          0          0          0          0          0          0          0   IO-APIC   17-fasteoi   ens35


J’en déduit que la charge augmente à cause d’un problème d’interruptions. Pourtant la charge de trafic UDP n’est pas énorme, surtout par rapport à l’ancienne installation sur Debian 8 + E1000.
Nous avons essayé le CPU Pinning => Pas vraiment d’amélioration.
Nous avons essayé de revenir à E1000 => Amélioration en charge basse mais pas d'amélioration en charge elevée

Mes questions :

- Avez-vous déjà rencontré ce genre de comportements sur le réseau et les interruption sur Vmware + Linux Debian ?
- Comment être sur que le load average vient bien des interruptions ? Faut-il mesurer un nombre d’interruptions / seconde pour confirmer ?
- Avez-vous des idées pour faire un bench de VM vierge sur du trafic UDP ? iperf par exemple entre 2 VM ?
-Avez-vous des idées sur la possible résolution du problème indiqué ? (j’ai pensé testé en noyau 5.X mais sans conviction)

Merci pour votre aide,
Fabien