签到成功

知道了

CNDBA社区CNDBA社区

openGauss 硬件 性能瓶颈 查看

2023-04-28 10:54 729 0 原创 openGauss
作者: dave

1 CPU

通过top命令查看openGauss内节点CPU使用情况,分析是否存在由于CPU负载过高导致的性能瓶颈。

执行top命令,查看CPU占用情况。执行该命令后,按“1”键,可查看每个CPU核的使用率。

top - 10:11:33 up 20 days, 15:53,  3 users,  load average: 0.57, 1.00, 0.93
Tasks: 299 total,   2 running, 297 sleeping,   0 stopped,   0 zombie
%Cpu0  :  1.1 us,  3.3 sy,  0.0 ni, 95.2 id,  0.0 wa,  0.0 hi,  0.4 si,  0.0 st
%Cpu1  :  2.8 us,  4.6 sy,  0.0 ni, 92.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  7.0 us,  4.5 sy,  0.0 ni, 88.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  1.5 us,  0.8 sy,  0.0 ni, 97.0 id,  0.8 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7814152 total,  3098876 free,  2462588 used,  2252688 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  2730476 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                            
 3551 omm       20   0 1581984  32116   5192 S  18.9  0.4   2624:03 cm_agent                                                                           
 3572 omm       20   0 6434440 485040   6688 S  15.3  6.2   2243:40 cm_server                                                                          
13106 omm       20   0 7930264   1.8g   1.4g S   9.6 24.7   1495:38 gaussdb                                                                            
28724 omm       20   0   44576  11612   2292 S   1.3  0.1 248:58.06 om_monitor                                                                         
 1942 gdm       20   0  783792  11292   1760 S   0.7  0.1  73:24.24 gsd-color                                                                          
  431 root      20   0       0      0      0 S   0.3  0.0   8:26.25 xfsaild/dm-0                                                                       
22782 dmdba     20   0  432668  22816   1428 S   0.3  0.3  29:28.50 dmmonitor                                                                          
25355 root      20   0       0      0      0 S   0.3  0.0   0:00.07 kworker/u8:0                                                                       
25576 gdm       20   0  717128   9644   1784 S   0.3  0.1  34:52.69 gsd-color                                                                          
32534 oracle    20   0  730588  11356   1900 S   0.3  0.1  72:30.99 gsd-color                                                                          
    1 root      20   0  191548   3932   1988 S   0.0  0.1   9:20.02 systemd                                                                            
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.44 kthreadd                                                                           
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                       
    6 root      20   0       0      0      0 S   0.0  0.0  18:27.45 ksoftirqd/0                                                                        
    7 root      rt   0       0      0      0 S   0.0  0.0   0:34.10 migration/0                                                                        
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                             
9 root      20   0       0      0      0 S   0.0  0.0  33:26.82 rcu_sched    
……

因为openGauss是单进程多线程架构,如果要查看线程信息,使用:top -H 。

http://www.cndba.cn/dave/article/121028

2 内存

在top命令中,按“Shift+M”键,可按照内存大小排序。

我这里执行的是top -H:

top - 10:18:22 up 20 days, 16:00,  4 users,  load average: 0.94, 1.02, 0.95
Threads: 925 total,   4 running, 921 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.3 us,  3.2 sy,  0.0 ni, 93.1 id,  0.2 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem :  7814152 total,  3080308 free,  2469316 used,  2264528 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  2713716 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                             
13106 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   4:24.03 gaussdb                                                                             
13107 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:00.00 jemalloc_bg_thd                                                                     
13120 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:00.00 gaussdb                                                                             
13121 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:40.15 syslogger                                                                           
13122 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:00.00 jemalloc_bg_thd                                                                     
13123 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   2:13.17 alarm                                                                               
13124 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:02.16 reaper                                                                              
13125 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:00.00 jemalloc_bg_thd                                                                     
13126 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:00.00 jemalloc_bg_thd                                                                     
13150 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:00.00 gaussdb                                                                             
13151 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:00.00 gaussdb                                                                             
13152 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:00.00 gaussdb                                                                             
13164 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   6:21.90 checkpointer                                                                        
13166 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:28.45 Spbgwriter                                                                          
13168 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7   0:10.31 CBMwriter                                                                           
13170 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7  12:59.93 pagewriter                                                                          
13172 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7  17:10.60 pagewriter                                                                          
13173 omm       20   0 7930264   1.8g   1.4g S  0.3 24.7  17:04.51 pagewriter                                                                          
13174 omm       20   0 7930264   1.8g   1.4g S  1.0 24.7 150:17.30 pagewriter                                                                          
13175 omm       20   0 7930264   1.8g   1.4g S  0.0 24.7  16:51.03 pagewriter                                                                          
……

可以结合free 命令查看:

http://www.cndba.cn/dave/article/121028

[omm@oracle bin]$ free -g
              total        used        free      shared  buff/cache   available
Mem:              7           2           2           1           2           2
Swap:             0           0           0
[omm@oracle bin]$

3 I/O

通过iostat、pidstat查看openGauss节点I/O繁忙度和吞吐量,分析是否存在由于I/O导致的性能瓶颈。

http://www.cndba.cn/dave/article/121028

使用iostat命令查看I/O情况。“rMB/s”为每秒读取的MB数,“wMB/s”为每秒写入的MB数,“%util”为硬盘使用率。

[dave@www.cndba.cn bin]$ iostat -xm 1 //1为间隔时间
Linux 3.10.0-1160.el7.x86_64 (oracle)   2023年04月28日  _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.27    0.00    3.41    0.14    0.00   93.19

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.28    0.86   31.14     0.04     0.25    18.47     0.06    1.90    2.78    1.87   1.51   4.83
dm-0              0.00     0.00    0.85   23.46     0.04     0.25    24.30     0.06    2.63    2.83    2.62   1.99   4.83
dm-1              0.00     0.00    0.02    0.02     0.00     0.00     8.08     0.00    3.77    0.15    7.06   0.10   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.17    0.00    3.89    0.00    0.00   91.94

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    4.00     0.00     0.02    11.00     0.00    1.00    0.00    1.00   1.00   0.40
dm-0              0.00     0.00    0.00    3.00     0.00     0.02    14.67     0.00    1.33    0.00    1.33   1.33   0.40
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.53    0.00    3.26    0.54    0.00   92.66

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00   46.53     0.00     0.41    17.87     0.08    1.64    0.00    1.64   1.66   7.72
dm-0              0.00     0.00    0.00   36.63     0.00     0.41    22.89     0.08    2.08    0.00    2.08   2.11   7.72
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

使用pidstat命令查看I/O情况。“kB_rd/s”为每秒读取的kB数,“kB_wr/s”为每秒写入的kB数。

http://www.cndba.cn/dave/article/121028

[omm@oracle bin]$ pidstat -d 1 10   //1为采样间隔时间,10为采样次数
Linux 3.10.0-1160.el7.x86_64 (oracle)   2023年04月28日  _x86_64_        (4 CPU)

10时27分31秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
10时27分32秒 54322      3551      0.00     15.69     15.69  cm_agent
10时27分32秒 54322      3572      0.00     15.20      0.00  cm_server
10时27分32秒 54322     13106      0.00      3.92      0.00  gaussdb

10时27分32秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
10时27分33秒 54322      3551      0.00     16.00     16.00  cm_agent
10时27分33秒 54322      3572      0.00    364.00      0.00  cm_server
10时27分33秒 54322     13106      0.00    344.00      0.00  gaussdb

10时27分33秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
10时27分34秒 54322      3551      0.00     16.00     16.00  cm_agent
10时27分34秒 54322      3572      0.00    100.00      0.00  cm_server

10时27分34秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
10时27分35秒 54322      3551      0.00     16.00     16.00  cm_agent
10时27分35秒 54322      3572      0.00     16.00      0.00  cm_server
……

若I/O持续过高,建议尝试以下方式降低I/O。

  1. 降低并发数。
  2. 对查询相关表做VACUUM FULL。

openGauss VACUUM 说明
https://www.cndba.cn/dave/article/116557http://www.cndba.cn/dave/article/121028

4 网络

通过sar或ifconfig命令查看openGauss内节点网络使用情况。http://www.cndba.cn/dave/article/121028http://www.cndba.cn/dave/article/121028

[dave@www.cndba.cn bin]$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.57.105  netmask 255.255.255.0  broadcast 192.168.57.255
        inet6 fe80::a871:bf7b:91d2:74e0  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:ad:04:0b  txqueuelen 1000  (Ethernet)
        RX packets 622482  bytes 102787926 (98.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 483026  bytes 80431046 (76.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

“errors”表示收包错误的总数量。
“dropped”表示数据包已经进入了Ring Buffer,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃的总数量。
“overruns”表示Ring Buffer队列中被丢弃的报文数目,由于Ring Buffer(aka Driver Queue)传输的IO大于openGauss能够处理的IO导致。
分析时,如果发现上述三个值持续增长,则表示网络负载过大或者存在网卡、内存等硬件故障。

http://www.cndba.cn/dave/article/121028

[dave@www.cndba.cn bin]$  sar -n DEV 1   //1为间隔时间
Linux 3.10.0-1160.el7.x86_64 (oracle)   2023年04月28日  _x86_64_        (4 CPU)

10时45分57秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10时45分58秒    enp0s3      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10时45分58秒    enp0s8     74.00     59.00     12.67     10.41      0.00      0.00      0.00
10时45分58秒        lo     24.00     24.00      7.46      7.46      0.00      0.00      0.00
10时45分58秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10时45分58秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
……

“rxkB/s”为每秒接收的kB数,“txkB/s”为每秒发送的kB数。主要关注每个网卡的传输量和是否达到传输上限。http://www.cndba.cn/dave/article/121028http://www.cndba.cn/dave/article/121028

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2239
    原创
  • 3
    翻译
  • 546
    转载
  • 186
    评论
  • 访问:6601407次
  • 积分:4248
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ