Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.
C’est alors la barrière de la prise en main qui fait peur, et pourtant...
Les logiciels libres
L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.
Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.
Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.
Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.
- Février 2017 -
KooZic est un logiciel de streaming musical à installer sur votre propre serveur. Dans sa configuration standard, il utilise un seul processeur, ce qui est généralement suffisant pour une utilisation avec un seul utilisateur. Mais il est possible de profiter de l'architecture multicœur des machines actuelles assez simplement...
Activer le multiprocessing peut se justifier pour plusieurs raisons :
- de nombreux utilisateurs seront connectés en même temps
- améliorer globalement les performances, en particulier la récupération des images
- parce que c'est facile
Dépendances
Il est nécessaire d'installer psycogreen et gevent. Sous Ubuntu, ça se fait simplement :
sudo apt install python-psycogreen python-gevent
Jusque là, rien de très sorcier.
Mode multi-worker
Activer le multiprocessing se fait en passant en paramètre un nombre non nul de "workers". L'estimation habituelle est la suivante : #workers = #CPU * 2 (pour un processeur multi-thread). Pour un serveur avec 4 CPU / 8 threads, cela donnera un maximum de 8 workers dédiés aux connexions client, alors qu'un worker sera automatiquement utilisé pour les tâches planifiées.
Pour ce qui est de l'utilisation de la mémoire vive, 1 worker utilise environ 150 Mo de RAM.
En pratique, on lance Koozic avec la commande suivante :
./odoo-bin --workers=8
Rien de bien sorcier jusque là, sauf que dans le cas de KooZic, ça va poser des problèmes si vous avez une grosse collection musicale. En effet, en mode multi-worker, KooZic stoppe un processus s'il dure plus de 60s (temps CPU) ou 120s (temps réel). Et ça, c'est pas assez pour les tâches de fond que KooZic doit exécuter (scan de la médiathèque, cache des images et des infos LastFM). On va donc augmenter largement ces paramètres :
./odoo-bin --workers=8 --limit-time-cpu=1800 --limit-time-real=3600
Ça devrait faire l'affaire, même pour les grosses librairies musicales.
Limite d'utilisateurs
C'est bien beau tout ça, mais ça fait combien d'utilisateurs au total ? Sur le site de référence de Odoo (sur lequel se base KooZic), on évalue 1 worker = 6 utilisateurs concurrents. Dans le cas de KooZic, on pourrait facilement multiplier par 4 ou 5, car on ne fait majoritairement que de la consultation d'information et des recherches légères.
Mais (car il y a un mais) KooZic lance un processus de conversion (appel à FFMpeg) pour chaque lecture de piste. Cela occupe 100 % d'un thread pendant environ 5 secondes, pour une piste de 4 minutes. Cela fait qu'un thread peut couvrir dans le meilleur des cas les besoins en conversion d'une petite cinquantaine d'utilisateurs (240s / 5s = 48). Notons que l'utilisation de la RAM par FFMpeg est très faible.
Avec tout ceci, on peut estimer 1 worker = 15 utilisateurs concurrents. Cela devrait garantir une utilisation fluide, sans surcharger en permanence le serveur à 100 %.

Original post of Marty.Votez pour ce billet sur Planet Libre.