Aller au contenu principal

Chargez et testez votre agent Databricks Apps

Les tests de charge déterminent le nombre maximal de requêtes par seconde (QPS) que votre agent Databricks Apps peut prendre en charge avant que les performances ne se dégradent. Cette page vous montre comment effectuer les opérations suivantes :

  1. Déployez une version fictive de votre agent pour isoler le throughput de l'infrastructure de la latence du LLM.
  2. Exécutez un test de charge de rampe à saturation avec Locust.
  3. Analysez les résultats avec un tableau de bord interactif.

Vous pouvez suivre le chemin assisté par l’IA en utilisant une compétence Claude Code, ou configurer chaque étape manuellement.

Aperçu animé du tableau de bord de test de charge affichant les graphiques de QPS, de latence et de progression de la rampe sur les différentes configurations de compute.

Exigences

  • Un workspace Databricks avec les Databricks Apps activées.
  • Une application d’agent déployée (ou prête à être déployée) sur Databricks Apps à l'aide de l’OpenAI Agents SDK, de LangGraph ou d'un framework personnalisé. Consultez Créer un agent IA et le déployer sur Databricks Apps.
  • La CLI Databricks est installée et authentifiée. Consultez Installer ou mettre à jour la Databricks CLI.
  • Python 3.10+ avec le gestionnaire de uv package.
  • (Pour le chemin assisté par l'IA) Claude Code installé.
  • (Pour les tests de charge de plus d'environ 1 heure) Un Service Principal avec des identifiants OAuth M2M (client_id et client_secret). Voir Autoriser l'accès du Service Principal à Databricks avec OAuth.
    • Pour les tests de charge courts (moins d'~1 heure), vos informations d'identification OAuth utilisateur (U2M) existantes de databricks auth login fonctionnent parfaitement. Pour les tests plus longs, utilisez l'OAuth M2M avec un Service Principal Databricks — les jetons U2M expirent lors des exécutions longues et entraînent des échecs en cours de test. La création d'un Service Principal Databricks nécessite un accès administrateur au Workspace.

Configuration assistée par l'IA (recommandé)

Si vous utilisez Claude Code, la compétence /load-testing automatise le workflow. Il lit votre code d'agent, génère une maquette, crée des scripts de test de charge et vous accompagne tout au long du déploiement.

prompt

Demandez à Claude Code de le faire pour vous :

Clone https://github.com/databricks/app-templates and run the /load-testing skill against the {your-template} template.

Ou suivez les étapes ci-dessous.

Étape 1 : Cloner un template d'agent

La compétence /load-testing est incluse dans le repository databricks/app-templates, à la fois en tant que compétence agent-load-testing de niveau supérieur et pré-synchronisée dans chaque template d'agent individuel. Si vous avez déjà un projet de app-templates, vous avez déjà la compétence.

Clonez le dépôt et accédez au répertoire du Template pour l'agent que vous souhaitez tester en charge :

Bash
git clone https://github.com/databricks/app-templates.git
cd app-templates/{your-template}

Étape 2 : Exécutez la compétence de test de charge.

Dans Claude Code, exécuter :

Text
/load-testing

La compétence vous guide de manière interactive à travers les étapes suivantes. Vous pouvez ignorer la simulation pour tester votre véritable agent, ou ignorer le déploiement si vos applications sont déjà en cours d'exécution.

  1. Collecte des parameter : des questions sur l'état de votre déploiement, les tailles de compute, les configurations de Worker et les identifiants OAuth vous sont posées.
  2. Création de scripts de test de charge : génère locustfile.py, run_load_test.py et dashboard_template.py adaptés à votre projet.
  3. Maquettage de votre LLM : crée un client simulé spécifique à votre SDK (SDK d'agents OpenAI, LangGraph ou personnalisé) qui remplace les appels réels de LLM par des délais de streaming configurables.
  4. Déploiement d'applications de test : vous guide dans le déploiement de plusieurs configurations d'applications avec différentes tailles de compute et différents nombres de Workers.
  5. Exécution des tests : exécute le test de charge avec l'authentification OAuth M2M et la rampe jusqu'à saturation.
  6. Génération des résultats : produit un tableau de bord HTML interactif avec des métriques de QPS, de latence et d'échec.

Configuration manuelle

Suivez ces étapes pour configurer et exécuter des tests de charge sans assistance IA.

Étape 1 : Simulez les appels LLM de votre agent (facultatif)

Ignorez cette étape si vous souhaitez des résultats de bout en bout incluant une latence LLM réelle. Pour mesurer le throughput de l'infrastructure Databricks Apps de manière isolée, simulez le LLM afin que sa latence par requête (généralement de 1 à 30 secondes) ne devienne pas le goulot d'étranglement.

Une simulation renvoie des réponses prédéfinies avec un délai de streaming configurable, en préservant le pipeline complet de requête/réponse (streaming SSE, distribution d'outils, exécuteur SDK) et en remplaçant uniquement le LLM. Ceci révèle le QPS maximal que la plateforme Databricks Apps peut fournir et évite les coûts de jetons de l'API du modèle de fondation pendant les tests de charge.

Le timing simulé est contrôlé par deux variables d'environnement :

Variable

Par défaut

Description

MOCK_CHUNK_DELAY_MS

10

Délai en millisecondes entre les blocs de texte Stream

MOCK_CHUNK_COUNT

80

Nombre de segments de texte par réponse

Variable

Par défaut

Description

MOCK_CHUNK_DELAY_MS

10

Délai en millisecondes entre les blocs de texte Stream

MOCK_CHUNK_COUNT

80

Nombre de segments de texte par réponse

Avec les valeurs par défaut, chaque réponse simulée prend environ 800 ms (10 ms x 80 fragments), ce qui est considérablement plus rapide qu’une réponse LLM réelle (3 à 15 secondes). Les chiffres de throughput reflètent alors la plateforme, et non le modèle.

Créez un client factice qui remplace le véritable client LLM. Le reste de votre code d'agent reste inchangé, et l'approche dépend de votre SDK. Pour OpenAI, consultez l'implémentation de référencemock_openai_client.py dans databricks/app-templates. Le même modèle s'adapte à d'autres SDK.

Créez agent_server/mock_openai_client.py — une classe MockAsyncOpenAI qui implémente chat.completions.create() avec streaming. Il renvoie instantanément des morceaux d'appel d'outil (simulant la décision du LLM d'appeler un outil) et des morceaux de réponse textuelle avec un délai configurable à partir des variables d'environnement MOCK_CHUNK_DELAY_MS et MOCK_CHUNK_COUNT.

Insérez-le dans votre agent :

Python
from agent_server.mock_openai_client import MockAsyncOpenAI
from agents import set_default_openai_client, set_default_openai_api

set_default_openai_client(MockAsyncOpenAI())
set_default_openai_api("chat_completions")

Le reste de votre code d'agent (gestionnaires, outils, logique de streaming) reste inchangé.

Étape 2 : Configurez les scripts de test de charge.

Créez un répertoire load-test-scripts/ dans votre projet. Le framework de test de charge se compose de trois scripts indépendants du framework et fonctionnant avec n'importe quel agent Databricks Apps.

Text
<project-root>/
agent_server/ # Your existing agent code
load-test-scripts/ # Load testing scripts (create this)
run_load_test.py # CLI orchestrator
locustfile.py # Locust test with SSE streaming + TTFT tracking
dashboard_template.py # Interactive HTML dashboard generator
load-test-runs/ # Results (auto-created per run)
<run-name>/
dashboard.html # Interactive dashboard
test_config.json # Test parameters for reproducibility
<label>/ # Per-config Locust CSV output

Le framework comprend les fichiers suivants :

  • locustfile.py : un test de charge Locust qui envoie POST /invocations requêtes avec stream: true, analyse les SSE Stream, suit le temps jusqu'au premier jeton (TTFT) en tant que métrique personnalisée, utilise l'échange de jetons OAuth M2M avec auto-refresh, et implémente un StepRampShape qui fait monter en charge les utilisateurs de step_size à max_users tout en maintenant chaque niveau pendant step_duration secondes.
  • run_load_test.py : un orchestrateur CLI qui teste chaque URL d'application séquentiellement avec des métriques isolées par configuration. Il gère le token OAuth refresh, exécute un bilan de santé et un préchauffage avant chaque test, et enregistre les résultats dans load-test-runs/<run-name>/<label>/.
  • dashboard_template.py : Génère un tableau de bord HTML autonome à l'aide de Chart.js avec des cartes de KPI, des graphiques à barres (QPS, latence, TTFT par configuration), des graphiques linéaires de progression de la rampe QPS et un tableau de résultats complet. Peut être exécuté de manière autonome : uv run dashboard_template.py ../load-test-runs/<run-name>/.

Installer les dépendances

Les scripts de test de charge utilisent leurs propres pyproject.toml à l'intérieur de load-test-scripts/ pour éviter de polluer les dépendances de production de votre agent. Créer load-test-scripts/pyproject.toml:

Toml
[project]
name = "load-test-scripts"
version = "0.1.0"
requires-python = ">=3.10"
dependencies = [
"locust>=2.32,<2.40",
"urllib3<2.3",
"requests",
]
remarque

Pin locust à <2.40. Les versions plus récentes (>=2.43) ont un problème connu RecursionError qui interrompt les tests de charge longs.

Installez à partir du répertoire load-test-scripts/ :

Bash
cd load-test-scripts/
uv sync

Étape 3 : déployer des applications de test avec des configurations variées

Déployez plusieurs Databricks Apps avec différentes tailles de compute et un nombre de worker pour trouver la configuration optimale pour votre workload.

Matrice de test recommandée.

Les configurations ci-dessous se concentrent sur le juste milieu identifié lors de tests antérieurs. Si vous souhaitez une couverture plus large, ajoutez une configuration de chaque côté (par exemple, medium-w1 ou large-w12), mais les six ci-dessous sont généralement suffisantes.

Taille de compute

Workers

Nom d'application suggéré

Medium

2

<your-app>-medium-w2

Medium

3

<your-app>-medium-w3

Medium

4

<your-app>-medium-w4

Large

6

<your-app>-large-w6

Large

8

<your-app>-large-w8

Large

10

<your-app>-large-w10

Taille de compute

Workers

Nom d'application suggéré

Medium

2

<your-app>-medium-w2

Medium

3

<your-app>-medium-w3

Medium

4

<your-app>-medium-w4

Large

6

<your-app>-large-w6

Large

8

<your-app>-large-w8

Large

10

<your-app>-large-w10

Configurer la taille du compute

Utilisez le CLI Databricks pour définir la taille du compute lors de la création ou de la mise à jour d'une application :

Bash
# Create a new app with Medium compute
databricks apps create <app-name> --compute-size MEDIUM

# Update an existing app to Large compute
databricks apps update <app-name> --compute-size LARGE

Configurer le nombre de Worker avec Declarative Automation Bundles

start-server (via AgentServer.run()) accepte directement un indicateur --workers. Transmettez le nombre de Worker dans le tableau command à l'aide d'une variable DAB :

YAML
variables:
app_name:
default: 'my-agent-medium-w2'
workers:
default: '2'

resources:
apps:
load_test_app:
name: ${var.app_name}
source_code_path: .
config:
command: ['uv', 'run', 'start-server', '--workers', '${var.workers}']
env:
- name: MOCK_CHUNK_DELAY_MS
value: '10'
- name: MOCK_CHUNK_COUNT
value: '80'

targets:
medium-w2:
default: true
variables:
app_name: 'my-agent-medium-w2'
workers: '2'
large-w8:
variables:
app_name: 'my-agent-large-w8'
workers: '8'

Déployer et vérifier

Déployez chaque cible avec la CLI Databricks :

Bash
databricks bundle deploy --target medium-w2
databricks bundle run load_test_app --target medium-w2

Vérifiez que les applications sont actives avant d'exécuter des tests de charge :

Bash
databricks apps get <app-name> --output json | jq '{app_status, compute_status, url}'
remarque

Veuillez attendre que toutes les applications atteignent le statut ACTIVE avant de poursuivre. Les applications qui sont encore en cours de démarrage produisent des résultats trompeurs.

Étape 4 : Lancez les tests de charge.

Configurer l'authentification

Sélectionnez votre authentification en fonction de la durée d'exécution prévue :

  • Tests courts (moins de ~1 heure) : utilisez vos identifiants utilisateur existants de databricks auth login. Aucune configuration supplémentaire requise.
  • Tests longs (plus d'environ 1 heure, comme les exécutions de nuit) : utilisez l'OAuth M2M avec un Service Principal Databricks. Les jetons U2M expirent et interrompent votre test en cours d'exécution. La création d'un Service Principal Databricks nécessite un accès administrateur au Workspace.

Pour l’OAuth M2M, exportez les informations d’identification du Service Principal Databricks avant d’exécuter les tests :

Bash
export DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
export DATABRICKS_CLIENT_ID=<your-client-id>
export DATABRICKS_CLIENT_SECRET=<your-client-secret>

Référence des paramètres

parameter

Obligatoire

Par défaut

Description

--app-url

Oui

URL(s) d'application à tester (répétable)

--client-id

Pour les tests longs

DATABRICKS_CLIENT_ID Environnement

ID client du Service Principal (OAuth M2M)

--client-secret

Pour les tests longs

DATABRICKS_CLIENT_SECRET Environnement

Secret client du Service Principal (OAuth M2M)

--label

Non

Dérivé automatiquement de l'URL

Étiquette lisible par l'homme par application (répétable)

--compute-size

Non

Détection automatique ou medium

Balise de taille de compute par application : medium, large (répétable)

--max-users

Non

300

Nombre maximal d'utilisateurs simultanés simulés

--step-size

Non

20

Utilisateurs ajoutés par étape de montée en charge

--step-duration

Non

30

Secondes par étape de rampe

--spawn-rate

Non

20

Taux d'apparition d'utilisateurs (utilisateurs/sec)

--run-name

Non

<timestamp>

Nom de cette exécution — résultats enregistrés dans load-test-runs/<run-name>/

--dashboard

Non

Désactivé

Générer un tableau de bord HTML interactif une fois les tests terminés.

parameter

Obligatoire

Par défaut

Description

--app-url

Oui

URL(s) d'application à tester (répétable)

--client-id

Pour les tests longs

DATABRICKS_CLIENT_ID Environnement

ID client du Service Principal (OAuth M2M)

--client-secret

Pour les tests longs

DATABRICKS_CLIENT_SECRET Environnement

Secret client du Service Principal (OAuth M2M)

--label

Non

Dérivé automatiquement de l'URL

Étiquette lisible par l'homme par application (répétable)

--compute-size

Non

Détection automatique ou medium

Balise de taille de compute par application : medium, large (répétable)

--max-users

Non

300

Nombre maximal d'utilisateurs simultanés simulés

--step-size

Non

20

Utilisateurs ajoutés par étape de montée en charge

--step-duration

Non

30

Secondes par étape de rampe

--spawn-rate

Non

20

Taux d'apparition d'utilisateurs (utilisateurs/sec)

--run-name

Non

<timestamp>

Nom de cette exécution — résultats enregistrés dans load-test-runs/<run-name>/

--dashboard

Non

Désactivé

Générer un tableau de bord HTML interactif une fois les tests terminés.

Exemples de commandes

Test rapide d'une seule application (exécution courte — utilise votre session databricks auth login) :

Bash
cd load-test-scripts/

uv run run_load_test.py \
--app-url https://my-app.aws.databricksapps.com \
--dashboard --run-name quick-test

Matrice complète sur les 6 configurations recommandées (exécution longue — passage des identifiants M2M). Transmettez --compute-size indicateurs dans le même ordre que --app-url:

Bash
uv run run_load_test.py \
--app-url https://my-app-medium-w2.aws.databricksapps.com \
--app-url https://my-app-medium-w3.aws.databricksapps.com \
--app-url https://my-app-medium-w4.aws.databricksapps.com \
--app-url https://my-app-large-w6.aws.databricksapps.com \
--app-url https://my-app-large-w8.aws.databricksapps.com \
--app-url https://my-app-large-w10.aws.databricksapps.com \
--compute-size medium --compute-size medium --compute-size medium \
--compute-size large --compute-size large --compute-size large \
--client-id $DATABRICKS_CLIENT_ID \
--client-secret $DATABRICKS_CLIENT_SECRET \
--dashboard --run-name overnight-sweep

Plusieurs exécutions pour la cohérence statistique :

Bash
for RUN in r1 r2 r3 r4 r5; do
uv run run_load_test.py \
--app-url https://my-app.aws.databricksapps.com \
--client-id $DATABRICKS_CLIENT_ID \
--client-secret $DATABRICKS_CLIENT_SECRET \
--max-users 1000 --step-size 20 --step-duration 10 \
--run-name my_test_${RUN} --dashboard || break
done

Que se passe-t-il pendant une exécution

  1. Healthcheck : vérifie que l'application Stream correctement (reçoit [DONE]).
  2. **Mise en route** : envoie des requêtes séquentielles pour préparer l’application.
  3. **Montée en charge jusqu'à saturation** : augmente le nombre d'utilisateurs simultanés toutes les step_duration secondes.
  4. Détection de saturation : lorsque le QPS plafonne malgré l'ajout d'utilisateurs supplémentaires, vous avez atteint le plafond de throughput.

Durée estimée

Chaque application testée s'exécute selon sa propre rampe, de sorte que la durée d'exécution totale évolue en fonction du nombre de configurations de votre matrice. Utilisez la formule ci-dessous pour planifier votre fenêtre d'exécution.

Durée par application : (max_users / step_size) * step_duration secondes.

Avec les default (--max-users 300 --step-size 20 --step-duration 30) :

  • 15 étapes x 30 secondes = environ 7,5 minutes par application
  • Pour la matrice recommandée à 6 configurations : environ 45 minutes par exécution

Étape 5 : Afficher et interpréter les résultats

  1. Ouvrez le tableau de bord :

    Bash
    open load-test-runs/<run-name>/dashboard.html
  2. (Facultatif) Régénérez le tableau de bord à partir de données existantes, par exemple après la mise à jour du Template :

    Bash
    cd load-test-scripts/
    uv run dashboard_template.py ../load-test-runs/<run-name>/

Sections du tableau de bord

Le tableau de bord interactif comprend :

  • Cartes d’indicateurs clés de performance : meilleure configuration (par QPS de pointe réussis), QPS de pointe global, latence la plus faible et nombre total de requêtes servies.
  • QPS par configuration : graphique à barres groupées montrant le QPS médian, le QPS de pointe excluant les échecs et le QPS de pointe côte à côte pour chaque configuration.
  • Latence par configuration : barres groupées affichant la latence p50 et p95.
  • TTFT par configuration : délai avant le premier jeton (p50 et p95).
  • Total des requêtes traitées : nombre de requêtes par configuration.
  • Progression de la rampe QPS : graphiques linéaires avec tab pour QPS, QPS (hors échecs), Latence et Échecs. Comprend un curseur d'utilisateurs max. pour zoomer sur des plages de concurrence inférieures. Les graphiques sont regroupés par taille de compute (moyen et grand, côte à côte).
  • Tableau des résultats complets : toutes les configurations avec le QPS de pointe, les utilisateurs au pic, les percentiles de latence et le taux d'échec.
  • Paramètres de test : récapitulatif de la configuration pour la reproductibilité.

Comment interpréter les résultats

  • QPS de pointe : le QPS maximal atteint à chaque étape de montée en charge. C'est le plafond de throughput pour cette configuration.
  • **Utilisateurs au pic** : le nombre d'utilisateurs simultanés lorsque le pic de QPS a été atteint. Ajouter plus d'utilisateurs au-delà de ce point n'augmente pas le throughput.
  • Taux d'échec : devrait être de 0 % ou très faible. Un taux d'échec élevé signifie que l'application est surchargée à ce niveau de concurrence.
  • QPS Ramp Chart : recherchez l'endroit où la ligne s'aplatit. C'est le point de saturation : l'ajout de nouveaux utilisateurs n'augmentera pas le throughput.

Exécution de référence de benchmark sur des données synthétiques

Cette section rapporte ce qu'un benchmark interne de Databricks a mesuré par rapport à une application d'agent synthétique, où chaque appel LLM était simulé. Il s'agit d'un exercice distinct des tests de charge de votre propre agent : utilisez-le pour voir la forme des résultats que vous pouvez attendre et pour obtenir un point de départ approximatif pour le dimensionnement.

Ce que cette exécution a montré

  • Point de départ recommandé : 2 Worker sur compute Moyen, ou 8 Worker sur Grand.
  • Un nombre plus élevé de Worker n'est pas toujours mieux. Sur Medium, 2 Workers (155,1 QPS) dépassent 4 Workers (116,5 QPS) d'environ 33 %. La charge de travail simulée est limitée par le processeur, donc au-delà de 2 Worker, vous rencontrez un conflit CPU/mémoire qui annule le parallélisme supplémentaire. Un véritable agent lié aux E/S qui attend principalement un Endpoint de modèle peut évoluer davantage que cette simulation, alors assurez-vous de tester votre propre agent.
  • Taille du compute : Large a fourni environ 2,2 fois le throughput de Medium (278,0 contre 123,5 de QPS de pointe moyenne).
  • Latence : Grande a tourné à environ 20 % de moins que Moyenne (environ 906 ms contre 1 180 ms p50), avec un TTFT d'environ 1 100 ms sur Grande contre 1 720-1 820 ms sur Moyenne.
  • Fiabilité : le taux de défaillance est resté à ou près de 0 % pour chaque configuration, même avec 1 000 utilisateurs simultanés.

Parce que le LLM était simulé (streaming simulé avec des délais fixes par segment), il s’agit de chiffres de throughput d’infrastructure plutôt que de chiffres d’agent de bout en bout. Ils mesurent le nombre de requêtes que le FastAPI AgentServer de Databricks Apps peut traiter en parallèle, et non la latence d'un modèle réel. Un agent de production qui appelle un endpoint LLM en direct observe un QPS plus faible et une latence plus élevée, dominée par le temps de réponse du modèle. Vos propres chiffres varient selon la complexité de l’agent, la taille de la charge utile, les appels d’outil, la région et l’Endpoint de modèle que vous appelez. Pour un dimensionnement précis, effectuez un test de charge sur votre propre agent.

Les résultats tabulés ci-dessous montrent la ventilation complète par configuration.

Conditions de test

  • Exécution de référence : 5 tours identiques contre 8 configurations d'application (4 de compute moyen, 4 de compute grand), chacun avec un nombre de workers uvicorn différent.
  • Montée en charge : 20 à 1 000 utilisateurs concurrents, par paliers de 20 utilisateurs maintenus pendant 10 secondes chacun (50 paliers par configuration).
  • **Agent fictif** : réponses en streaming d'environ 95 segments par requête, simulant le streaming de jetons LLM.
  • **Volume** : environ 1,46 million de requêtes totales sur toutes les exécutions.

QPS de pointe par configuration

Le débit maximal (QPS) est moyenné sur les 5 exécutions.

Taille de compute

Workers

QPS de pointe moyenne

Plage de pic

Taux d'échec

Medium

2

155,1

137,0 - 166,6

0,0 %

Medium

4

116,5

de 112,6 à 121,8

0,1 %

Medium

6

111,9

102,6-117,5

0,0 %

Medium

8

110,3

108,3-112,1

0,0 %

Large

6

281,6

De 268,2 à 292,4

0,0 %

Large

8

268,2

de 265,8 à 271,0

0,0 %

Large

10

288,1

280,3 - 299,4

0,0 %

Large

12

274,2

de 269,4 à 278,8

0,0 %

Taille de compute

Workers

QPS de pointe moyenne

Plage de pic

Taux d'échec

Medium

2

155,1

137,0 - 166,6

0,0 %

Medium

4

116,5

de 112,6 à 121,8

0,1 %

Medium

6

111,9

102,6-117,5

0,0 %

Medium

8

110,3

108,3-112,1

0,0 %

Large

6

281,6

De 268,2 à 292,4

0,0 %

Large

8

268,2

de 265,8 à 271,0

0,0 %

Large

10

288,1

280,3 - 299,4

0,0 %

Large

12

274,2

de 269,4 à 278,8

0,0 %

Moyenne par taille de compute :

Taille de compute

QPS de pointe moyenne

QPS moyenne

Medium

123,5

45,5

Large

278,0

100,1

Taille de compute

QPS de pointe moyenne

QPS moyenne

Medium

123,5

45,5

Large

278,0

100,1

Lors de cette exécution, le grand compute a fourni environ 2,2 fois le throughput du compute moyen.

Dépannage

Problème

Solutions

Jeton d'authentification expiré en plein test

Pour les tests de plus d'environ 1 heure, passez d'OAuth U2M à M2M en transmettant --client-id et --client-secret

Échec du contrôle de santé

Vérifiez que l'application est ACTIVE : databricks apps get <name> --output json

0 QPS ou aucun résultat

Vérifiez load-test-runs/<run-name>/<label>/locust_output.log pour les erreurs

QPS faible malgré un nombre élevé d'utilisateurs

L'application est saturée. Essayez plus de Worker ou un compute plus important.

Taux de défaillance élevé

L'application est surchargée. Réduisez --max-users ou augmentez les Worker/compute.

Le tableau de bord n’affiche aucune donnée ramp

Vérifiez que results_stats_history.csv existe dans chaque sous-répertoire de résultats

Problème

Solutions

Jeton d'authentification expiré en plein test

Pour les tests de plus d'environ 1 heure, passez d'OAuth U2M à M2M en transmettant --client-id et --client-secret

Échec du contrôle de santé

Vérifiez que l'application est ACTIVE : databricks apps get <name> --output json

0 QPS ou aucun résultat

Vérifiez load-test-runs/<run-name>/<label>/locust_output.log pour les erreurs

QPS faible malgré un nombre élevé d'utilisateurs

L'application est saturée. Essayez plus de Worker ou un compute plus important.

Taux de défaillance élevé

L'application est surchargée. Réduisez --max-users ou augmentez les Worker/compute.

Le tableau de bord n’affiche aucune donnée ramp

Vérifiez que results_stats_history.csv existe dans chaque sous-répertoire de résultats

Ressources supplémentaires

  • Testez avec de véritables appels LLM : ignorez l'étape de simulation et déployez votre agent réel pour mesurer la latence de bout en bout, y compris le temps de réponse du LLM.
  • Optimiser le nombre de worker : utilisez les résultats de la matrice de test pour trouver le nombre optimal de worker pour votre taille de compute.
  • Tutoriel : Évaluer et améliorer une application GenAI pour mesurer la précision, la pertinence et la sécurité ainsi que le throughput.
  • Mettez votre agent Databricks Apps en production pour la séquence complète de préparation à la production, y compris AI Gateway.