Benchmark simple d’Ollama

Temps de lecture : < 1 minute

Voici un script Python très simple pour tester les performances d’Ollama et d’un modèle en Python, ici mistral.

import time
import requests
import json

def benchmark_ollama(server, model, prompt, num_runs=5):
    times = []
    tokens_per_sec = []

    for i in range(num_runs):
        start = time.time()

        response = requests.post(server,
            json={
                'model': model,
                'prompt': prompt,
                'stream': False
            })

        end = time.time()
        data = response.json()

        times.append(end - start)
        if 'eval_duration' in data:
            # eval_duration est en nanosecondes
            tokens = data.get('eval_count', 0)
            duration_sec = data['eval_duration'] / 1e9
            tokens_per_sec.append(tokens / duration_sec if duration_sec > 0 else 0)

    print(f"Serveur: {server}")
    print(f"Modèle: {model}")
    print(f"Temps moyen: {sum(times)/len(times):.2f}s")
    print(f"Tokens/sec moyen: {sum(tokens_per_sec)/len(tokens_per_sec):.2f}")
    print(f"Min: {min(times):.2f}s, Max: {max(times):.2f}s")

# Utilisation
benchmark_ollama('http://localhost:11434/api/generate', 'mistral', 'Explique-moi la physique quantique', num_runs=3)
#benchmark_ollama('http://X.X.X.X:11434/api/generate', 'mistral', 'Explique-moi la physique quantique', num_runs=3)

Exporter les groupes Office 365 vers un fichier CSV

Temps de lecture : < 1 minute

Voici un script PowerShell pour exporter l’ensemble des groupes d’un tenant Office 365 vers un fichier CSV. Opération non disponible à ce jour par l’interface d’administration.

Connect-ExchangeOnline -UserPrincipalName xxxx@test.com # Mail de l'administrateur

$CSVPath = "ListingMembresGroupes.csv"

$list=Get-UnifiedGroup

foreach ($Group in $list)
{
    Get-UnifiedGroupLinks –Identity $Group.Id –LinkType Members | Select-Object @{Name="Group Name";Expression={$Group.DisplayName}}, @{Name="User Name";Expression={$_.DisplayName}}, PrimarySmtpAddress | Export-CSV $CSVPath -NoTypeInformation -Append
}

Recopier les bases données d’un serveur MySQL/MariaDB vers un autre

Temps de lecture : < 1 minute

Voici un script Bash très simple qui permet de migrer toutes les bases de données d’un serveur MySQL/MariaDB vers un autre serveur.

Celui-ci peut servir par exemple pour migrer vers un serveur AWS RDS.

#!/bin/bash

# configuration de la machine hébergeant le serveur MySQL source
DB_HOST_PROD="srv.source.com"
# configuration de l'utilisateur MySQL et de son mot de passe
DB_USER_PROD="root"
DB_PASS_PROD="PASSWORD"

# configuration de la machine hébergeant le serveur MySQL de destination
DB_HOST_RDS="srv.dest.com"
# configuration de l'utilisateur MySQL et de son mot de passe
DB_USER_RDS="admin"
DB_PASS_RDS="PASSWORD"

# récupération de la liste des bases
DATABASES=`MYSQL_PWD=$DB_PASS_PROD mysql -h $DB_HOST_PROD -u $DB_USER_PROD -e "SHOW DATABASES;" | tr -d "| " | grep -v -e Database -e _schema -e mysql`
# boucle sur les bases pour les dumper
for DB_NAME in $DATABASES; do
    # Pour créer les bases de données
    echo "create database if not exists $DB_NAME;" | MYSQL_PWD=$DB_PASS_RDS mysql -h $DB_HOST_RDS -u $DB_USER_RDS

    now=$(date +"%T")
    echo $now $DB_NAME
    #MYSQL_PWD=$DB_PASS_PROD mysqldump -u $DB_USER_PROD --column-statistics=0 --single-transaction --skip-lock-tables $DB_NAME -h $DB_HOST_PROD | MYSQL_PWD=$DB_PASS_RDS mysql -h $DB_HOST_RDS -u $DB_USER_RDS -D $DB_NAME # en fonction de la version de MySQL/MariaDB
    MYSQL_PWD=$DB_PASS_PROD mysqldump -u $DB_USER_PROD --single-transaction --skip-lock-tables $DB_NAME -h $DB_HOST_PROD | MYSQL_PWD=$DB_PASS_RDS mysql -h $DB_HOST_RDS -u $DB_USER_RDS -D $DB_NAME
done