gpu-workload/triton/loadgenerator.yaml [39:84]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    class ProfileLoad(LoadTestShape):
        '''
        This load profile starts at 0 and steps up by step_users
        increments every tick, up to target_users. After reaching
        target_user level, load will stay at target_user level
        until time_limit is reached.
        '''

        target_users = 1000
        step_users = 50  # ramp users each step
        time_limit = 3600  # seconds

        def tick(self):
            num_steps = self.target_users / self.step_users
            run_time = round(self.get_run_time())

            if run_time < self.time_limit:
                if num_steps < run_time:
                    user_count = num_steps * self.step_users
                else:
                    user_count = self.target_users
                return (user_count, self.step_users)
            else:
                return None


    class TritonUser(FastHttpUser):
        wait_time = between(0.2, 0.2)

        @task()
        def bert(self):
            with self.client.post(self.infer_url,
                                  catch_response=True, data=json.dumps(self.data)
                                  ) as response:
                if response.status_code == 200:
                    response.success()
                else:
                    response.failure(f'{response.status_code} {response.reason}')

        def on_start(self):
            with open('request.json') as f:
                self.data = json.load(f)

            model_name = os.getenv('MODEL_NAME', 'bert_tf')

            self.infer_url = f'{self.environment.host}/v2/models/{model_name}/infer'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



