This commit is contained in:
La borne
2023-01-14 20:52:22 +01:00
6 changed files with 48 additions and 9 deletions

View File

@@ -2,5 +2,4 @@ sysbench --test=cpu run >>sysbench.log
sysbench --test=memory run >>sysbench.log sysbench --test=memory run >>sysbench.log
sysbench --test=fileio --file-test-mode=rndrw prepare sysbench --test=fileio --file-test-mode=rndrw prepare
sysbench --test=fileio --file-test-mode=rndrw run >>sysbench.log sysbench --test=fileio --file-test-mode=rndrw run >>sysbench.log
sysbench --test=fileio cleanup sysbench --test=fileio cleanup

View File

@@ -1,8 +0,0 @@
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4ff5ebc88a1f code-backend_reconaissance "python main.py" 58 minutes ago Up 58 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp backend_reconaissance
02e8569d1926 code-video_loopback "ffmpeg -video_size …" 2 hours ago Up 58 minutes video_loopback
d50295f99ae5 phpmyadmin:latest "/docker-entrypoint.…" 3 hours ago Up 58 minutes 0.0.0.0:8000->80/tcp, :::8000->80/tcp phpmyadmin
a5efc4ddae1b code-reviews_api "docker-entrypoint.s…" 3 hours ago Up 58 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp reviews_api
830786df4f5f httpd:latest "httpd-foreground" 3 hours ago Up 58 minutes 0.0.0.0:8888->80/tcp, :::8888->80/tcp interface_borne
2fd04a8fe768 mysql:latest "docker-entrypoint.s…" 3 hours ago Up 58 minutes (healthy) 3306/tcp, 33060/tcp db
9999c72bb59f httpd:latest "httpd-foreground" 3 hours ago Up 58 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp interface_admin

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -53,8 +53,56 @@ Pour ce faire nous avons mis en place un container Docker par module de notre ap
* **video_loopback** : ce container sert à contourner un problème que nous avons rencotré avec la gestion de camera de linux. En effet un seul programme ne peux accéder au flux d'une camera a la fois. C'est pour cela que nous avons utilisé `v4l2loopback` avec `ffmpeg` pour dupliquer le flux de notre camera dans 2 cameras virtuelles. * **video_loopback** : ce container sert à contourner un problème que nous avons rencotré avec la gestion de camera de linux. En effet un seul programme ne peux accéder au flux d'une camera a la fois. C'est pour cela que nous avons utilisé `v4l2loopback` avec `ffmpeg` pour dupliquer le flux de notre camera dans 2 cameras virtuelles.
### Résultats ### Résultats
En réglant la camera a 640x480@30fps, aucune perte d'image n'est observée dans le retour vidéo dans firefox.
Mediapipe est capable d'analyser l'image de la camera et de communiquer les résultats à l'interface web 15 fois par seconde en moyenne
<img src="img/reconnaissance_fps.png">
Ce taux de rafraichissement est suffisant pour que l'application paraisse réactive à l'utilisateur.
Pendant ce temps l'api de traitement des avis et la base de donnée fonctionnent correctement en affichant une lattence de 8ms pour une récupération de la liste d'avis.
<img src="img/latence.png">
Pendance ce temps l'utilisation du processeur qui varie de 250 à 280% (sur 400% pour les 4 coeurs) et une utilisation de la RAM de 50% ce qui nous laisse de la marge en cas d'ajout imprévu.
<img src="img/htop.png">
Les processus utilisant le plus de CPU sont la reconaissance d'image (70%) et firefox pour afficher l'interface de la borne (70-80%). En cas de besoin ces valeurs pourront être diminuées au prix de la fluidité du retour vidéo.
Pour la RAM c'est le serveur mysql (10%) et firefox (10%) qui consomment le plus.
Pour ce qui est de la température, comme la borne sera dans un environement fermé, il était important de tester le bon fonctionnement du materiel dans ces conditions. Nous avons laissé tourner l'application pendant 2h dans une boite en carton fermée. Au début du test la température du processeur était de 50°C, au bout de 2h la température était montée a 70° ce qui reste assez faible pour ne pas limiter les performances du CPU.
```
$ sensors
acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°C (crit = +110.0°C)
temp2: +29.8°C (crit = +110.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +69.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +69.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +68.0°C (high = +105.0°C, crit = +105.0°C)
```
## Impact de l'utilisation de Docker ## Impact de l'utilisation de Docker
Nous nous sommes également posé la question de l'impact de l'utilisation de docker dans les performances de notre projet. Pour mesurer cela, nous avons effectué des benchmark directement sur le système puis dans un container Docker pour mesurer la différence. nous avons utlisé sysbench pour évaluer les performances du CPU, de la RAM et du disque (écriture/lecture aléatoire).
Le script permettant de faire le benchmark
```sh
sysbench --test=cpu run >>sysbench.log
sysbench --test=memory run >>sysbench.log
sysbench --test=fileio --file-test-mode=rndrw prepare
sysbench --test=fileio --file-test-mode=rndrw run >>sysbench.log
sysbench --test=fileio cleanup
```
Le Dockerfile du container dans lequel nous avons exectué le même script
```Dockerfile
FROM alpine:latest
RUN apk add --no-cache sysbench
WORKDIR /app
COPY benchmark_script.sh /app/benchmark_script.sh
CMD ["sh","benchmark_script.sh"]
```