## モジュール 2: リクエストユニット/秒のクォータを使用してTiDBサーバーの実行キューを制御する

  ![40%](https://lab-static.pingcap.com/quick-demo/demo-006-1-en.png)

### 手順 1. ユーザーのRUクォータを設定する

+ [ターミナル 1](ssh://monitor1-ssh#1)で、userAとuserBに対して異なるRU（リクエストユニット/秒）クォータを持つリソースグループを設定するスクリプトを確認し、実行します。

  ```bash
  cat lab1-rc-setup.sh
  ```

  ```output
  #!/bin/bash

  source ./hosts-env.sh

  # For cluster
  export MYSQL_PS1="tidb:db1> "
  mysql -h ${HOST_DB1_PRIVATE_IP} -P 4000 -u root --verbose << 'EOFX'
  ALTER USER userA RESOURCE GROUP default;
  ALTER USER userB RESOURCE GROUP default;
  DROP RESOURCE GROUP IF EXISTS rg1;
  DROP RESOURCE GROUP IF EXISTS rg2;
  CREATE RESOURCE GROUP rg1 RU_PER_SEC = 500;
  CREATE RESOURCE GROUP rg2 RU_PER_SEC = 250;
  ALTER USER userA RESOURCE GROUP rg1;
  ALTER USER userB RESOURCE GROUP rg2;
  SELECT * FROM information_schema.resource_groups;
  SELECT Host, user, User_attributes FROM mysql.user WHERE user IN ('userA','userB');
  EOFX
  ```

  ```bash
  ./lab1-rc-setup.sh
  ```

  ```output
  ...

  --------------
  SELECT * FROM information_schema.resource_groups
  --------------

  NAME	RU_PER_SEC	PRIORITY	BURSTABLE	QUERY_LIMIT	BACKGROUND
  default	UNLIMITED	MEDIUM	YES	NULL	NULL
  rg1	500	MEDIUM	NO	NULL	NULL
  rg2	250	MEDIUM	NO	NULL	NULL
  --------------
  SELECT Host, User, User_attributes FROM mysql.user WHERE user IN ('userA','userB')
  --------------

  Host	User	User_attributes
  %	userA	{"resource_group": "rg1"}
  %	userB	{"resource_group": "rg2"}
  ```

### 手順 2. ワークロードの開始

+ [ターミナル 1](ssh://monitor1-ssh#1)において、`userA`によるOLTPワークロードを開始するスクリプトを実行します。スクリプトを実行し続けて、次のステップに進めます。

  ```bash
  ./lab1-workload-userA.sh
  ```

+ [ターミナル 2](ssh://monitor1-ssh#2)において、userBによるOLTPワークロードを開始するスクリプトを実行します。スクリプトを実行し続けて、次のステップに進めます。

   ```bash
   ./lab1-workload-userB.sh
   ```

### 手順 3. 結果を観察する

+ 約1分間待ちます。`userA`のQPSが`userB`のQPSよりも高いことを確認します。`userA`の`RU_PER_SEC`クォータがより多いためです。

    ![60%](https://lab-static.pingcap.com/quick-demo/demo-006-lab-2-1.png)

+ ユーザー名とパスワードとして`admin/admin`で[Grafana Prometheus Dashboard](http://${LAB:HOST_MONITOR1_PUBLIC_IP}:3000)にログインし、`tidb-demo-TiDB-Resource-Control` -> `Resource Unit` -> `RU`パネルを見つけ、`rg1`が`rg2`よりも高い`RU_PER_SEC`を持っていることを確認します。

    ![60%](https://lab-static.pingcap.com/quick-demo/demo-006-lab-2.png)

+ 次のモジュールに進む前に、[ターミナル 1](ssh://monitor1-ssh#1)と[ターミナル 2](ssh://monitor1-ssh#2)から両方のワークロードを<kbd>Ctrl</kbd>+<kbd>C</kbd>で停止してください。
