Bu konu, AliSQL tarafından sunulan Performance Agent özelliğini açıklar. Bu özellik, bir ApsaraDB RDS for MySQL örneğinin performans istatistiklerini toplamanızı sağlar.
Arka plan bilgileri
Performance Agent için PERF_STATISTICS adlı bir bellek tablosu eklenir. Bu tablo information_schema sistem veritabanında depolanır ve en son zaman diliminde oluşturulan performans verilerini saklar. Performans verilerini bu tablodan sorgulayabilirsiniz.
Önkoşullar
RDS örneğiniz aşağıdaki MySQL sürümlerinden ve RDS edition'larından birini çalıştırıyor olmalıdır:
MySQL 8.4
Küçük motor sürümü 20200229 veya üstü olan MySQL 8.0
Küçük motor sürümü 20200229 veya üstü olan MySQL 5.7
Küçük motor sürümü 20200630 veya üstü olan MySQL 5.6
Örneğinizin küçük motor sürümünü yükseltmek için bkz. Küçük motor sürümünü yükseltme.
Açıklama
Aşağıdaki tabloda, Performance Agent özelliği için yapılandırmanız gereken parametreler açıklanmaktadır.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bu parametreler konsolda görünmez. Değerlerini kontrol etmek için SHOW VARIABLES LIKE '<parameter_name>'; komutunu çalıştırabilirsiniz.
Şema
PERF_STATISTICS bellek tablosu aşağıdaki şemayı kullanır:
CREATE TEMPORARY TABLE `PERF_STATISTICS` (
`TIME` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`PROCS_MEM_USAGE` double NOT NULL DEFAULT '0',
`PROCS_MEM_RATIO` double NOT NULL DEFAULT '0',
`PROCS_CPU_RATIO` double NOT NULL DEFAULT '0',
`PROCS_IOPS` double NOT NULL DEFAULT '0',
`PROCS_IOPS_READ` double NOT NULL DEFAULT '0',
`PROCS_IOPS_WRITE` double NOT NULL DEFAULT '0',
`PROCS_IO_READ_BYTES` bigint NOT NULL DEFAULT '0',
`PROCS_IO_WRITE_BYTES` bigint NOT NULL DEFAULT '0',
`MYSQL_CONN_ABORT` int NOT NULL DEFAULT '0',
`MYSQL_CONN_CREATED` int NOT NULL DEFAULT '0',
`MYSQL_USER_CONN_COUNT` int NOT NULL DEFAULT '0',
`MYSQL_CONN_COUNT` int NOT NULL DEFAULT '0',
`MYSQL_CONN_RUNNING` int NOT NULL DEFAULT '0',
`MYSQL_CONNECTIONS` int NOT NULL DEFAULT '0',
`MYSQL_CONN_CACHED` int NOT NULL DEFAULT '0',
`MYSQL_LOCK_IMMEDIATE` int NOT NULL DEFAULT '0',
`MYSQL_LOCK_WAITED` int NOT NULL DEFAULT '0',
`MYSQL_QUESTIONS` int NOT NULL DEFAULT '0',
`MYSQL_COM_INSERT` int NOT NULL DEFAULT '0',
`MYSQL_COM_INSERT_SELECT` int NOT NULL DEFAULT '0',
`MYSQL_COM_REPLACE` int NOT NULL DEFAULT '0',
`MYSQL_COM_REPLACE_SELECT` int NOT NULL DEFAULT '0',
`MYSQL_COM_UPDATE` int NOT NULL DEFAULT '0',
`MYSQL_COM_UPDATE_MULTI` int NOT NULL DEFAULT '0',
`MYSQL_COM_DELETE` int NOT NULL DEFAULT '0',
`MYSQL_COM_DELETE_MULTI` int NOT NULL DEFAULT '0',
`MYSQL_COM_SELECT` int NOT NULL DEFAULT '0',
`MYSQL_COM_COMMIT` int NOT NULL DEFAULT '0',
`MYSQL_COM_ROLLBACK` int NOT NULL DEFAULT '0',
`MYSQL_COM_PREPARE` int NOT NULL DEFAULT '0',
`MYSQL_HANDLER_COMMIT` int NOT NULL DEFAULT '0',
`MYSQL_HANDELR_ROLLBACK` int NOT NULL DEFAULT '0',
`MYSQL_LONG_QUERY` int NOT NULL DEFAULT '0',
`MYSQL_TCACHE_GET` bigint NOT NULL DEFAULT '0',
`MYSQL_TCACHE_MISS` bigint NOT NULL DEFAULT '0',
`MYSQL_TMPFILE_CREATED` int NOT NULL DEFAULT '0',
`MYSQL_TMP_TABLES` int NOT NULL DEFAULT '0',
`MYSQL_TMP_DISKTABLES` int NOT NULL DEFAULT '0',
`MYSQL_SORT_MERGE` int NOT NULL DEFAULT '0',
`MYSQL_SORT_ROWS` int NOT NULL DEFAULT '0',
`MYSQL_BYTES_RECEIVED` bigint NOT NULL DEFAULT '0',
`MYSQL_BYTES_SENT` bigint NOT NULL DEFAULT '0',
`MYSQL_BINLOG_OFFSET` int NOT NULL DEFAULT '0',
`MYSQL_IOLOG_OFFSET` int NOT NULL DEFAULT '0',
`MYSQL_RELAYLOG_OFFSET` int NOT NULL DEFAULT '0',
`EXTRA` json NOT NULL DEFAULT 'null'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Sütun | Açıklama |
TIME | Veri toplamanın zaman damgası. Format |
PROCS_MEM_USAGE | İşlem tarafından kullanılan fiziksel bellek. Birim: bayt. |
PROCS_MEM_RATIO | İşlemin bellek kullanım oranı. |
PROCS_CPU_RATIO | İşlemin CPU kullanımı. |
PROCS_IOPS | Sistem G/Ç çağrılarının sayısı. |
PROCS_IOPS_READ | İşlem için saniye başına okuma G/Ç işlemi (IOPS). |
PROCS_IOPS_WRITE | İşlem için yazma IOPS değeri. |
PROCS_IO_READ_BYTES | G/Ç işlemleri tarafından okunan veri miktarı. Birim: bayt. |
PROCS_IO_WRITE_BYTES | G/Ç işlemleri tarafından yazılan veri miktarı. Birim: bayt. |
MYSQL_CONN_ABORT | Sonlandırılan bağlantıların sayısı. |
MYSQL_CONN_CREATED | Oluşturulan bağlantıların sayısı. |
MYSQL_USER_CONN_COUNT | Mevcut kullanıcı bağlantılarının toplam sayısı. |
MYSQL_CONN_COUNT | Toplam bağlantı sayısı. |
MYSQL_CONN_RUNNING | Şu anda etkin olan bağlantıların sayısı. |
MYSQL_CONNECTIONS | MySQL sunucusuna yapılan bağlantı denemelerinin sayısı. |
MYSQL_CONN_CACHED | İş parçacığı önbelleğindeki iş parçacıklarının sayısı. |
MYSQL_LOCK_IMMEDIATE | Hemen alınan tablo kilitlerinin sayısı. |
MYSQL_LOCK_WAITED | Bekleme gerektiren tablo kilitlerinin sayısı. |
MYSQL_QUESTIONS | Sunucu tarafından yürütülen deyimlerin sayısı. |
MYSQL_COM_INSERT |
|
MYSQL_COM_INSERT_SELECT |
|
MYSQL_COM_REPLACE |
|
MYSQL_COM_REPLACE_SELECT |
|
MYSQL_COM_UPDATE |
|
MYSQL_COM_UPDATE_MULTI | Çok tablolu |
MYSQL_COM_DELETE |
|
MYSQL_COM_DELETE_MULTI | Çok tablolu |
MYSQL_COM_SELECT |
|
MYSQL_COM_COMMIT |
|
MYSQL_COM_ROLLBACK |
|
MYSQL_COM_PREPARE | Hazırlanan deyimlerin sayısı. |
MYSQL_HANDLER_COMMIT | Dahili |
MYSQL_HANDELR_ROLLBACK | Bir depolama altyapısı içinde geri alma işlemi gerçekleştirme isteğinin sayısı. |
MYSQL_LONG_QUERY | Yavaş sorguların sayısı. |
MYSQL_TCACHE_GET | Tablo açma önbelleği isabetlerinin sayısı. |
MYSQL_TCACHE_MISS | Tablo açma önbelleği ıskalamalarının sayısı. |
MYSQL_TMPFILE_CREATED | Oluşturulan geçici dosyaların sayısı. |
MYSQL_TMP_TABLES | Oluşturulan dahili bellek içi geçici tabloların sayısı. |
MYSQL_TMP_DISKTABLES | Oluşturulan dahili disk tabanlı geçici tabloların sayısı. |
MYSQL_SORT_MERGE | Sıralama için yapılan birleştirme geçişlerinin sayısı. |
MYSQL_SORT_ROWS | Sıralanan satırların sayısı. |
MYSQL_BYTES_RECEIVED | Tüm istemcilerden alınan bayt sayısı. Birim: bayt. |
MYSQL_BYTES_SENT | Tüm istemcilere gönderilen bayt sayısı. Birim: bayt. |
MYSQL_BINLOG_OFFSET | Oluşturulan ikili günlük dosyalarının boyutu. Birim: bayt. |
MYSQL_IOLOG_OFFSET | Kaynak örnek tarafından gönderilen ikili günlük dosyalarının boyutu. Birim: bayt. |
MYSQL_RELAYLOG_OFFSET | Çoğaltma örneği tarafından uygulanan aktarma günlüğü dosyalarının boyutu. Birim: bayt. |
EXTRA | JSON formatında InnoDB istatistikleri. Bu alanlarla ilgili ayrıntılar için aşağıdaki EXTRA alan açıklamaları tablosuna bakın. Not InnoDB istatistiklerine ilişkin ölçümler, |
Tablo 1. EXTRA alan açıklamaları
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Performance Agent kullanımı
-
Performans verilerini elde etmek için sistem tablosunu doğrudan sorgulayın. Örnek:
-
Son 30 saniyedeki CPU kullanımını ve bellek kullanımını sorgulamak için:
MySQL> select TIME, PROCS_MEM_USAGE, PROCS_CPU_RATIO from information_schema.PERF_STATISTICS order by time DESC limit 30; +---------------------+-----------------+-----------------+ | TIME | PROCS_MEM_USAGE | PROCS_CPU_RATIO | +---------------------+-----------------+-----------------+ | 2020-02-27 11:15:36 | 857812992 | 18.55 | | 2020-02-27 11:15:35 | 857808896 | 18.54 | | 2020-02-27 11:15:34 | 857268224 | 19.64 | | 2020-02-27 11:15:33 | 857268224 | 21.06 | | 2020-02-27 11:15:32 | 857264128 | 20.39 | | 2020-02-27 11:15:31 | 857272320 | 20.32 | | 2020-02-27 11:15:30 | 857272320 | 21.35 | | 2020-02-27 11:15:29 | 857272320 | 28.8 | | 2020-02-27 11:15:28 | 857268224 | 29.08 | | 2020-02-27 11:15:27 | 857268224 | 26.92 | | 2020-02-27 11:15:26 | 857268224 | 23.84 | | 2020-02-27 11:15:25 | 857264128 | 13.76 | | 2020-02-27 11:15:24 | 857264128 | 15.12 | | 2020-02-27 11:15:23 | 857264128 | 14.76 | | 2020-02-27 11:15:22 | 857264128 | 15.38 | | 2020-02-27 11:15:21 | 857260032 | 13.23 | | 2020-02-27 11:15:20 | 857260032 | 12.75 | | 2020-02-27 11:15:19 | 857260032 | 12.17 | | 2020-02-27 11:15:18 | 857255936 | 13.22 | | 2020-02-27 11:15:17 | 857255936 | 20.51 | | 2020-02-27 11:15:16 | 857255936 | 28.74 | | 2020-02-27 11:15:15 | 857251840 | 29.85 | | 2020-02-27 11:15:14 | 857251840 | 29.31 | | 2020-02-27 11:15:13 | 856981504 | 28.85 | | 2020-02-27 11:15:12 | 856981504 | 29.19 | | 2020-02-27 11:15:11 | 856977408 | 29.12 | | 2020-02-27 11:15:10 | 856977408 | 29.32 | | 2020-02-27 11:15:09 | 856977408 | 29.2 | | 2020-02-27 11:15:08 | 856973312 | 29.36 | | 2020-02-27 11:15:07 | 856973312 | 28.79 | +---------------------+-----------------+-----------------+ 30 rows in set (0.08 sec) -
Son 30 saniyede InnoDB'den okunan ve InnoDB'ye eklenen satır sayısını sorgulamak için:
MySQL> select TIME, EXTRA->'$.INNODB_ROWS_READ', EXTRA->'$.INNODB_ROWS_INSERTED' from information_schema.PERF_STATISTICS order by time DESC limit 30; +---------------------+-----------------------------+---------------------------------+ | TIME | EXTRA->'$.INNODB_ROWS_READ' | EXTRA->'$.INNODB_ROWS_INSERTED' | +---------------------+-----------------------------+---------------------------------+ | 2020-02-27 11:22:17 | 39209 | 0 | | 2020-02-27 11:22:16 | 36098 | 0 | | 2020-02-27 11:22:15 | 38035 | 0 | | 2020-02-27 11:22:14 | 37384 | 0 | | 2020-02-27 11:22:13 | 38336 | 0 | | 2020-02-27 11:22:12 | 33946 | 0 | | 2020-02-27 11:22:11 | 36301 | 0 | | 2020-02-27 11:22:10 | 36835 | 0 | | 2020-02-27 11:22:09 | 36900 | 0 | | 2020-02-27 11:22:08 | 36402 | 0 | | 2020-02-27 11:22:07 | 39672 | 0 | | 2020-02-27 11:22:06 | 39316 | 0 | | 2020-02-27 11:22:05 | 37830 | 0 | | 2020-02-27 11:22:04 | 36396 | 0 | | 2020-02-27 11:22:03 | 34820 | 0 | | 2020-02-27 11:22:02 | 37350 | 0 | | 2020-02-27 11:22:01 | 39463 | 0 | | 2020-02-27 11:22:00 | 38419 | 0 | | 2020-02-27 11:21:59 | 37673 | 0 | | 2020-02-27 11:21:58 | 35117 | 0 | | 2020-02-27 11:21:57 | 36140 | 0 | | 2020-02-27 11:21:56 | 37592 | 0 | | 2020-02-27 11:21:55 | 39765 | 0 | | 2020-02-27 11:21:54 | 35553 | 0 | | 2020-02-27 11:21:53 | 35882 | 0 | | 2020-02-27 11:21:52 | 37061 | 0 | | 2020-02-27 11:21:51 | 40699 | 0 | | 2020-02-27 11:21:50 | 39608 | 0 | | 2020-02-27 11:21:49 | 39317 | 0 | | 2020-02-27 11:21:48 | 37413 | 0 | +---------------------+-----------------------------+---------------------------------+ 30 rows in set (0.08 sec)
-
Performansı gerçek zamanlı olarak izlemek için Grafana gibi bir izleme platformuna bağlanın.
