共用方式為


如何在適用於 PostgreSQL 的 Azure Cosmos DB 中使用多租用戶監視來檢閱租用戶統計數據

適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的超大規模 (Citus) 資料庫延伸模組提供)

重要

適用於 Citus 11.3 和更新版本

本文說明如何使用檢視來深入瞭解租 citus_stat_tenants 用戶的資源使用量。 此檢視會追蹤租使用者列出的計量

  • 讀取查詢計數(SELECT 查詢)。
  • 總查詢計數(SELECT、INSERT、DELETE 和 UPDATE 查詢)。
  • 以秒為單位的總CPU使用量。

您將瞭解如何使用檢視 citus_stat_tenants 來進行明智的決策,以及如何設定功能以最符合您的應用程式。

注意

  • 檢視上的權限 (executeselect) 會授與角色 pg_monitor

使用citus_stat_tenants監視您的頂級租使用者

當您啟用這項功能時,會針對 、、 UPDATEDELETESELECTINSERTSQL 命令啟用會計。 此會計特別針對設計。single tenant 如果查詢規劃工具可以將查詢限制為單一分區或單一租使用者,則查詢限定為單一租用戶查詢。

您可以控制使用 citus.stat_tenants_limit 參數追蹤的租用戶數目。 此外,您也可以使用 citus.stat_tenants_period來定義監視的時間值區。 一旦期間結束,其統計數據就會儲存在最後一個期間,為您提供持續和最後完成的測量期間。

注意

  • citus.stat_tenants_period 預設值為 60 seconds

  • citus.stat_tenants_limit的預設值為 100

檢閱範例多租使用者應用程式以深入瞭解,以協助公司執行其廣告活動。

CREATE TABLE companies (company_id BIGSERIAL PRIMARY KEY, name TEXT);
SELECT create_distributed_table ('companies', 'company_id');

CREATE TABLE campaigns (id BIGSERIAL, company_id BIGINT, name TEXT, PRIMARY KEY (id, company_id));
SELECT create_distributed_table ('campaigns', 'company_id');

companiescampaigns 數據表都是在通用租用戶密鑰 company_id上分區化。 您現在可以使用命令新增公司和廣告行銷活動資料:

INSERT INTO companies (company_id, name) VALUES (1, 'GigaMarket');
INSERT INTO campaigns (id, company_id, name) VALUES (1, 1, 'Crazy Wednesday'), (2, 1, 'Frozen Food Frenzy');
INSERT INTO campaigns (id, company_id, name) VALUES (3, 1, 'Spring Cleaning'), (4, 1, 'Bread&Butter');
INSERT INTO campaigns (id, company_id, name) VALUES (5, 1, 'Personal Care Refresh'), (6, 1, 'Lazy Lunch');

INSERT INTO companies (company_id, name) VALUES (2, 'White Bouquet Flowers');
INSERT INTO campaigns (id, company_id, name) VALUES (7, 2, 'Bonjour Begonia'), (8, 2, 'April Selection'), (9, 2, 'May Selection');

INSERT INTO companies (company_id, name) VALUES (3, 'Smart Pants Co.');
INSERT INTO campaigns (id, company_id, name) VALUES (10, 3, 'Short Shorts'), (11, 3, 'Tailors Cut');
INSERT INTO campaigns (id, company_id, name) VALUES (12, 3, 'Smarter Casual');

讓我們再執行一些 SELECT 查詢, UPDATE 並在執行個別命令時查看檢視的 citus_stat_tenants 變更。

SELECT COUNT(*) FROM campaigns WHERE company_id = 1;
count
-------
     6
(1 row)
SELECT name FROM campaigns WHERE company_id = 2 AND name LIKE '%Selection';
      name
-----------------
 April Selection
 May Selection
(2 rows)
UPDATE campaigns SET name = 'Tailor''s Cut' WHERE company_id = 3 AND name = 'Tailors Cut';
SELECT tenant_attribute,
       read_count_in_this_period,
       query_count_in_this_period,
       cpu_usage_in_this_period
FROM citus_stat_tenants;

現在讓我們檢視中 citus_stat_tenants 擷取的結果集。 針對 tenant_attribute 1,在此持續期間,執行了 5 個查詢,導致 CPU 使用量相對較低 0.000299。 此外,記錄了1個讀取計數。 我們在過去 60 秒內觀察到 3 個租使用者的查詢,結果集中顯示。 前 N 個租用戶的順序取決於 query_count_in_this_period 欄位。

tenant_attribute | read_count_in_this_period | query_count_in_this_period | cpu_usage_in_this_period
------------------+---------------------------+----------------------------+--------------------------
 1                |                         1 |                          5 |               0.000299
 3                |                         0 |                          3 |               0.000314
 2                |                         2 |                          4 |               0.000295
(3 rows)

重要

  • 追蹤租使用者層級統計數據會增加額外負荷,以及 by default is disabled

  • 設定citus.stat_tenants_track = 'all' 以啟用追蹤。

下一步

瞭解與多租用戶監視和重新平衡作用中租用戶相關的概念。