# Benchmark Disque (sans dépendances)

Petit script bash minimaliste pour effectuer un benchmark disque **grossier mais utile**, sans rien installer, idéal pour des systèmes **sensibles** ou autres serveurs **limités**.  
100% POSIX compatible !

---

## Fonctionnalités

- Écriture/lecture séquentielle avec `dd`
- Test d'IOPS sur petits fichiers (`fixed` ou `random`)
- Calculs **approximatifs** de :
  - Débits en **MB/s**
  - **IOPS** en création/lecture de fichiers
- Aucune dépendance externe
- Auto-nettoyage à la fin du test
- Support des **paramètres CLI** (`--help` dispo)

---

## Utilisation

### Lancer le benchmark avec les paramètres par défaut :

```bash
./benchmark_disque.sh
```

### Options disponibles :

| Option          | Description                                                   | Par défaut     |
|-----------------|---------------------------------------------------------------|----------------|
| `--size=X`      | Taille du fichier pour `dd` (ex: `1G`, `512M`)                | `1G`           |
| `--count=N`     | Nombre de petits fichiers à générer                           | `1000`         |
| `--mode=TYPE`   | `fixed` (nb lignes défini) ou `random` (fichiers 128-4096o)   | `fixed`        |
| `--lines=N`     | Nombre de lignes par fichier (mode `fixed` uniquement)        | `1`            |
| `--flush-cache` | forcer la purge du cache (nécessite sudo/root)                | désactivé      |
| `--random-write`| remplacer `/dev/zero` par `/dev/urandom`                      | désactivé      |
| `--help`        | Affiche ce message d’aide                                     |                |

---

## Exemples

```bash
# Benchmark basique
./benchmark_disque.sh

# Test avec un fichier de 2G et 5000 petits fichiers aléatoires
./benchmark_disque.sh --size=2G --count=5000 --mode=random

# Test avec fichiers de 10 lignes
./benchmark_disque.sh --mode=fixed --lines=10
```

---

## Exemple de sortie

```
=== Test d'écriture séquentielle avec dd (1G, sync forcée) ===
Durée : 0m2.123s (~471.20 MB/s)

=== Test de lecture séquentielle ===
Durée : 0m1.834s (~544.96 MB/s)

=== Test IOPS sur 1000 fichiers (random) ===
Création : 0m3.456s (~289.3 IOPS)
Lecture : 0m2.823s (~354.3 IOPS)

Nettoyage...

Benchmark terminé.
```

---

## Remarques

- Le test est **destructif** : tout est stocké temporairement dans `./testbench`, puis supprimé.
- Pour conserver les résultats : ajoute une redirection `>> benchmark.log`.

---

## Badge & Logo

![Badge Forgejo](https://img.shields.io/badge/forge-la--forge--du--sel-blueviolet?style=for-the-badge&logo=forgejo)
![Logo](https://forge.salt8.org/Ripley/Disk_Benchmark_No_Dependency/raw/branch/main/benchmark_disque.png)

---

## License

Ce script est fourni librement, sans garantie. Utilisation encouragée, surtout sur **La Forge du Sel**.

---

**Auteur** : RipleyBooya  
**Forge** : https://forge.salt8.org  
**Slogan** : *"Dans le Sel, la Puissance."*
