gs_checkperf

背景信息

openGauss提供了gs_checkperf工具来帮助对openGauss级别(主机CPU占用率、Gauss CPU占用率、I/O使用情况等)、节点级别(CPU使用情况、内存使用情况、I/O使用情况)、会话/进程级别(CPU使用情况、内存使用情况、I/O使用情况)、SSD性能(写入、读取性能)进行定期检查,让用户了解openGauss的负载情况,采取对应的改进措施。

前提条件

  • openGauss运行状态正常且不为只读模式。
  • 运行在数据库之上的业务运行正常。

gs_checkperf - 图1 说明:

出于安全考虑,企业版安装方式下,gaussdbToolPath目录下该工具前置完成后会自动删除。

注意事项

  • 使用流式容灾功能时,灾备集群不支持此工具。
  • gs_checkperf工具的监控信息依赖于pmk模式下的表的数据。如果pmk模式下的表未执行analyze操作,则可能导致gs_checkperf工具执行失败。其报错示例信息如下。

1. LOG: Statistics in some tables or columns(pmk.pmk_snapshot.snapshot_id) are not collected. 2. HINT: Do analyze for them in order to generate optimized plan.

此时需要登录任一数据库主节点,连接postgres数据库执行如下SQL。

1. analyze pmk.pmk_configuration; 2. analyze pmk.pmk_meta_data; 3. analyze pmk.pmk_snapshot; 4. analyze pmk.pmk_snapshot_dbnode_stat; 5. analyze pmk.pmk_snapshot_datanode_stat;

语法

  • 检查SSD性能(root用户)

1. gs_checkperf -U USER [-o OUTPUT] -i SSD [-l LOGFILE] - 检查openGauss性能(openGauss安装用户)

1. gs_checkperf [-U USER] [-o OUTPUT] [-i PMK] [--detail] [-l LOGFILE] - 显示帮助信息

1. gs_checkperf -? | --help - 显示版本号信息

1. gs_checkperf -V | --version

参数说明

  • -U

运行openGauss的用户名称。

取值范围:运行openGauss的用户名称。

以root用户身份执行此命令必须指定该参数。 - -o

指定性能检查报告输出到指定的文件。

取值范围:指定的文件名称。

不指定则将检查结果输出到屏幕上。 - -i

指定检查项编号,-i参数值不区分大小写。格式:-i PMK、-i SSD。

取值范围:PMK、SSD。

只有openGauss用户才能检查PMK选项。

只有root用户才能检查SSD选项。

如果不指定该参数,以openGauss用户身份默认检查PMK,以root用户身份默认检查SSD。 - –detail

显示PMK检查结果详情。 - -l

指定日志文件的存储路径。

默认路径为:/var/log/gaussdb/omm/om/gs_checkperf-YYYY-MM-DD_hhmmss.log - -?, –help

显示帮助信息。 - -V, –version

显示版本号信息。

表 1 性能检查项

分类 性能参数项 描述
openGauss级别 主机CPU占用率 主机CPU占用率。
Gauss CPU占用率 Gauss CPU占用率。
共享内存击中率 共享内存的击中率。
内存中排序比率 内存中完成的排序所占比率。
I/O使用情况 文件读写次数和时间。
磁盘使用情况 文件写次数和平均写时间、最大写时间等。
事务统计 当前SQL执行数和Session数。
节点级别 CPU使用情况 主机使用CPU情况,包括cpu busy time、cpu idle time等。
内存使用情况 主机使用内存情况,包括物理内存总量、已使用量等。
I/O使用情况 文件读写次数和时间。
会话/进程级别 CPU使用情况 会话使用CPU情况,包括cpu busy time、cpu idle time等。
内存使用情况 会话使用内存情况,包括物理内存总量、已使用量等。
I/O使用情况 会话共享缓冲区命中次数等。
SSD性能(只用root用户才能查看) 写入性能 使用dd命令(flag=direct bs=8M count=2560)向每个SSD写入内容,写入每个SSD时间应在10s左右。
读取性能 使用dd命令(flag=direct bs=8M count=2560)从每个SSD读取内容,读取每个SSD时间应在7s左右。

示例

示例一:以简要格式在屏幕上显示性能统计结果。

1. gs_checkperf -i pmk -U omm
2. Cluster statistics information:
3. Host CPU busy time ratio                     :    1.43       %
4. MPPDB CPU time % in busy time              :    1.88       %
5. Shared Buffer Hit ratio                      :    99.96      %
6. In-memory sort ratio                         :    100.00     %
7. Physical Reads                               :    4
8. Physical Writes                              :    25
9. DB size                                      :    70         MB
10. Total Physical writes                        :    25
11. Active SQL count                             :    2
12. Session count                                :    3

示例二:以详细格式在屏幕上显示性能统计结果。

1. gs_checkperf -i pmk -U omm --detail
2. Cluster statistics information:
3. Host CPU usage rate:
4. Host total CPU time                          :    42386.667  Jiffies
5. Host CPU busy time                           :    1873.333   Jiffies
6. Host CPU iowait time                         :    20.000     Jiffies
7. Host CPU busy time ratio                     :    4.42       %
8. Host CPU iowait time ratio                   :    .05        %
9. MPPDB CPU usage rate:
10. MPPDB CPU time % in busy time              :    19.04      %
11. MPPDB CPU time % in total time             :    .84        %
12. Shared buffer hit rate:
13. Shared Buffer Reads                          :    0
14. Shared Buffer Hits                           :    24129
15. Shared Buffer Hit ratio                      :    100.00     %
16. In-memory sort ratio                         :    100.00     %
17. I/O usage:
18. Number of files                              :    537
19. Physical Reads                               :    0
20. Physical Writes                              :    0
21. Read Time                                    :    0          ms
22. Write Time                                   :    0          ms
23. Disk usage:
24. DB size                                      :    70         MB
25. Total Physical writes                        :    0
26. Average Physical write                       :    0
27. Maximum Physical write                       :    0
28. Activity statistics:
29. Active SQL count                             :    2
30. Session count                                :    3
31. Node statistics information:
32. dn_6001_6002:
33. MPPDB CPU Time                             :    200        Jiffies
34. Host CPU Busy Time                           :    3490       Jiffies
35. Host CPU Total Time                          :    42330      Jiffies
36. MPPDB CPU Time % in Busy Time              :    5.73       %
37. MPPDB CPU Time % in Total Time             :    .47        %
38. Physical memory                              :    8231776256 Bytes
39. DB Memory usage                              :    877236224  Bytes
40. Shared buffer size                           :    33554432   Bytes
41. Shared buffer hit ratio                      :    100.00     %
42. Sorts in memory                              :    123
43. Sorts in disk                                :    0
44. In-memory sort ratio                         :    100.00     %
45. Number of files                              :    149
46. Physical Reads                               :    0
47. Physical Writes                              :    0
48. Read Time                                    :    0
49. Write Time                                   :    0
50. dn_6003_6004:
51. MPPDB CPU Time                             :    170
52. Jiffies    Host CPU Busy Time                :    1030       Jiffies
53. Host CPU Total Time                          :    42470      Jiffies
54. MPPDB CPU Time % in Busy Time              :    16.50      %
55. MPPDB CPU Time % in Total Time             :    .40        %
56. Physical memory                              :    8231776256 Bytes
57. DB Memory usage                              :    881434624  Bytes
58. Shared buffer size                           :    33554432   Bytes
59. Shared buffer hit ratio                      :    100.00     %
60. Sorts in memory                              :    119
61. Sorts in disk                                :    0
62. In-memory sort ratio                         :    100.00     %
63. Number of files                              :    165
64. Physical Reads                               :    0
65. Physical Writes                              :    0
66. Read Time                                    :    0
67. Write Time                                   :    0
68. dn_6005_6006:
69. MPPDB CPU Time                             :    220        Jiffies
70. Host CPU Busy Time                           :    1100       Jiffies
71. Host CPU Total Time                          :    42360      Jiffies
72. MPPDB CPU Time % in Busy Time              :    20.00      %
73. MPPDB CPU Time % in Total Time             :    .52        %
74. Physical memory                              :    8231776256 Bytes
75. DB Memory usage                              :    881430528  Bytes
76. Shared buffer size                           :    33554432   Bytes
77. Shared buffer hit ratio                      :    100.00     %
78. Sorts in memory                              :    122
79. Sorts in disk                                :    0
80. In-memory sort ratio                         :    100.00     %
81. Number of files                              :    115
82. Physical Reads                               :    0
83. Physical Writes                              :    0
84. Read Time                                    :    0
85. Write Time                                   :    0
86. Session statistics information(Top 10):
87. Session CPU statistics:
88. 1 dn_6003_6004-postgres-dbazt:
89. Session CPU time                             :    1211
90. Database CPU time                            :    37670
91. Session CPU time %                           :    3.21       %
92. 2 dn_6005_6006-postgres-dbazt:
93. Session CPU time                             :    1204
94. Database CPU time                            :    35730
95. Session CPU time %                           :    3.37       %
96. 3 dn_6001_6002-postgres-dbazt:
97. Session CPU time                             :    1064
98. Database CPU time                            :    34120
99. Session CPU time %                           :    3.12       %

101. Session Memory statistics:
102. 1 dn_6005_6006-postgres-dbazt:
103. Buffer Reads                                 :    8989
104. Shared Buffer Hit ratio                      :    96.97
105. In Memory sorts                              :    136
106. In Disk sorts                                :    0
107. In Memory sorts ratio                        :    100.00
108. Total Memory Size                            :    21593048
109. Used Memory Size                             :    18496600
110. 2 dn_6003_6004-postgres-dbazt:
111. Buffer Reads                                 :    9030
112. Shared Buffer Hit ratio                      :    96.94
113. In Memory sorts                              :    133
114. In Disk sorts                                :    0
115. In Memory sorts ratio                        :    100.00
116. Total Memory Size                            :    21576664
117. Used Memory Size                             :    18495688
118. 3 dn_6001_6002-postgres-dbazt:
119. Buffer Reads                                 :    8668
120. Shared Buffer Hit ratio                      :    96.97
121. In Memory sorts                              :    138
122. In Disk sorts                                :    0
123. In Memory sorts ratio                        :    100.00
124. Total Memory Size                            :    21258856
125. Used Memory Size                             :    18159736

127. Session IO statistics:
128. 1 dn_6003_6004-postgres-dbazt:
129. Physical Reads                               :    285
130. Read Time                                    :    5320
131. 2 dn_6005_6006-postgres-dbazt:
132. Physical Reads                               :    281
133. Read Time                                    :    5811
134. 3 dn_6001_6002-postgres-dbazt:
135. Physical Reads                               :    271
136. Read Time                                    :    4662

相关命令

gs_check,gs_checkos