diff --git a/tools/run_tests/run_performance_tests.py b/tools/run_tests/run_performance_tests.py
index 76a4061c85a4280ec9db6a5015103c7d88cd4205..25f5d4639f37aac23fd062d144e38104cb3feace 100755
--- a/tools/run_tests/run_performance_tests.py
+++ b/tools/run_tests/run_performance_tests.py
@@ -300,7 +300,8 @@ def create_scenarios(languages, workers_by_lang, remote_host=None, regex='.*',
   for language in languages:
     for scenario_json in language.scenarios():
       if re.search(args.regex, scenario_json['name']):
-        if category in scenario_json.get('CATEGORIES', []) or category == 'all':
+        categories = scenario_json.get('CATEGORIES', [])
+        if category in categories or (category == 'all' and categories != ['sweep']):
           workers = workers_by_lang[str(language)]
           # 'SERVER_LANGUAGE' is an indicator for this script to pick
           # a server in different language.