1. CPU
通用top命令查看各节点CPU占用情况,分析是否存在由于CPU负载过高导致的性能瓶颈。
执行命令后按“1”键,可查看每个CPU核的使用率。分析时,请主要关注进程占用的CPU利用率。
top - 17:05:04 up 32 days, 20:34, 5 users, load average: 0.02, 0.02, 0.00
Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.3%sy, 0.0%ni, 69.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.3%sy, 0.0%ni, 69.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.3%us, 0.3%sy, 0.0%ni, 69.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.3%us, 0.3%sy, 0.0%ni, 69.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8038844k total, 7165272k used, 873572k free, 530444k bñffrä
Swap: 4192924k total, 4920k used, 4188004k free, 4742904k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
COMMAND
32893 gaussdba 20 0 41416 1648 1196 S 10 0.0 23:46.14
om_monitor
34874 gaussdba 20 0 169m 4104 1664 S 20 0.1 20:23.48
cm_agent
35184 gaussdba 20 0 822m 421m 128m S 0 5.4 5:28.15
gaussdb
1 root 20 0 13592 820 784 S 0 0.0 1:16.62 init
其中,“us”表示用户空间占用CPU百分比,“sy”表示内核空间占用CPU百分比,“id”表示空闲CPU百分比。
如果“id”低于10%,即表明CPU负载较高。如果CPU使用率过高,需要确定是由于数据库进程本身引起的还是操作系统中其他无关进程引起的。
2. 内存分析
通过top命令查看各节点内存使用情况,分析是否存在由于内存占用率过高导致的性能
瓶颈。
● 在所有存储节点,逐一使用root用户执行top命令,查看内存占用情况。执行该命
令后,按“Shift+M”键,可按照内存大小排序。
top - 11:27:04 up 23 days, 1:15, 4 users, load average: 1.43, 0.53, 0.56
Tasks: 437 total, 2 running, 435 sleeping, 0 stopped, 0 zombie
Cpu(s): 16.6%us, 2.2%sy, 0.0%ni, 80.7%id, 0.0%wa, 0.0%hi, 0.4%si, 0.0%st
Mem: 96717M total, 23777M used, 72940M free, 69M buffers
Swap: 16394M total, 9M used, 16385M free, 18177M cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1496 omm 20 0 9.9g 1.3g S 177 1.7 0:49.57 gaussdb
1490 omm 20 0 9.9g 1.6g 1.3g S 140 1.7 0:43.88 gaussdb
1493 omm 20 0 9.9g 1.6g 1.3g S 123 1.7 0:42.77 gaussdb
1499 omm 20 0 9.9g 1.6g 1.3g S 120 1.7 0:42.77 gaussdb
2111 omm 20 0 9917m 1.5g 1.3g S 0 1.6 0:01.95 gaussdb
2115 omm 20 0 9917m 1.5g 1.3g S 0 1.6 0:01.91 gaussdb
2123 omm 20 0 9917m 1.5g 1.3g S 0 1.6 0:01.91 gaussdb
2119 omm 20 0 9917m 1.5g 1.3g S 0 1.6 0:01.91 gaussdb
1508 omm 20 0 1527m 1.3g 1.0g S 0 1.4 0:02.36 gaussdb
1502 omm 20 0 1527m 1.3g 1.0g S 0 1.4 0:02.12 gaussdb
1505 omm 20 0 1527m 1.3g 1.0g S 0 1.4 0:02.29 gaussdb
1511 omm 20 0 1527m 1.3g 1.0g S 0 1.4 0:02.23 gaussdb
1487 omm 20 0 2499m 1.3g 1.1g S 0 1.4 0:01.95 gaussdb
分析时,请主要关注每个进程占用的内存百分比(%MEM)、整系统的剩余内存。
显示信息中的主要属性解释如下:
– total:物理内存总量。
– used:已使用的物理内存总量。
– free:空闲内存总量。
– bñffrä:进程使用的虚拟内存总量。
– %MEM:进程占用的内存百分比。
– VIRT:进程使用的虚拟内存总量,VIRT=SWAP+RES。
– SWAP:进程使用的虚拟内存中已被换出到交换分区的量。
– RES:进程使用的虚拟内存中未被换出的量。
– SHR:共享内存大小。
3. I/O 分析
通过iostat、pidstat命令查看各节点I/O繁忙度和吞吐量,分析是否存在由于I/O导致的
性能瓶颈。
查询服务器I/O的方法主要有以下两种方式:
● 使用iostat命令查看I/O情况。此命令主要关注单个硬盘的I/O使用率和每秒读取、
写入的数量。
iostat -xm 1 //1为间隔时间
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await
w_await svctm %util
sdc 0.01 519.62 2.35 44.10 0.31 2.17 109.66 0.68 14.62 2.80 15.25
0.31 1.42
sdb 0.01 515.95 5.84 44.78 0.89 2.16 123.51 0.72 14.19 1.55 15.84
0.31 1.55
sdd 0.02 519.93 2.36 43.91 0.32 2.17 110.16 0.65 14.12 2.58 14.74
0.30 1.38
sde 0.02 520.26 2.34 45.17 0.31 2.18 107.46 0.80 16.86 2.92 17.58
0.34 1.63
sda 12.07 15.72 3.97 5.01 0.07 0.08 34.11 0.28 30.64 10.11 46.92 0.98
0.88
“rMB/s”为每秒读取的MB数,“wMB/s”为每秒写入的MB数,“%util”为硬盘使用率。
● 使用pidstat命令查看I/O情况。此命令主要关注单个进程每秒读取、写入的数量。
pidstat -d 1 10 //1为间隔时间,表示查看占用I/O最多的Top10进程
03:17:12 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
03:17:13 PM 1006 36134 0.00 59436.00 0.00 gaussdb
03:17:13 PM 1006 36137 0.00 73528.00 0.00 gaussdb
03:17:13 PM 1006 36140 4.00 39000.00 0.00 gaussdb
03:17:13 PM 1006 36143 0.00 57972.00 0.00 gaussdb
03:17:13 PM 1006 36743 0.00 54660.00 0.00 gaussdb
03:17:13 PM 1006 36747 0.00 66116.00 0.00 gaussdb
03:17:13 PM 1006 36751 0.00 61260.00 0.00 gaussdb
03:17:13 PM 1006 36755 0.00 69372.00 0.00 gaussdb
“kB_rd/s”为每秒读取的kB数,“kB_wr/s”为每秒写入的kB数。
4. 网络及进程分析
通过sar、²fcÑnfig命令查看各节点网络使用情况,分析是否存在由于网络导致的性能瓶
颈。
查询服务器网络状况的方法主要有以下两种方式:
● 使用root用户身份登录服务器,执行如下命令查看服务器网络连接。
SIA1000056771:~ # ifconfig
eth0 Link encap:Ethernet HWaddr 28:6E:D4:86:7D:D5
inet addr:10.180.123.163 Bcast:10.180.123.255 Mask:255.255.254.0
inet6 addr: fe80::2a6e:d4ff:fe86:7dd5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5669314 errors:0 dropped:0 overruns:0 frame:0
TX packets:4955927 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:508077795 (484.5 Mb) TX bytes:818004366 (780.1 Mb)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:711938 errors:0 dropped:0 overruns:0 frame:0
TX packets:711938 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:164158862 (156.5 Mb) TX bytes:164158862 (156.5 Mb)
– “errors”表示收包错误的总数量。
– “dropped”表示数据包已经进入了Ring Bñffr,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃的总数量。
– “overruns”表示Ring Bñffr队列中被丢弃的报文数目,由于Ring Buffer(aka Driver Queue)传输的IO大于kernel能够处理的IO导致。
分析时,如果发现上述三个值持续增长,则表示网络负载过大或者存在网卡、内存等硬件故障。
● 使用sar命令查看服务器网络连接。
sar -n DEV 1 //1为间隔时间
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
Average: lo 1926.94 1926.94 25573.92 25573.92 0.00 0.00 0.00 0.00
Average: A1-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: A1-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: NIC0 5.17 1.48 0.44 0.92 0.00 0.00 0.00 0.00
Average: NIC1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: A0-0 8173.06 92420.66 97102.22 133305.09 0.00 0.00 0.00 0.00
Average: A0-1 11431.37 9373.06 156950.45 494.40 0.00 0.00 0.00 0.00
Average: B3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: B3-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
“rxkB/s”为每秒接收的kB数,“txkB/s”为每秒发送的kB数。
分析时,请主要关注每个网卡的传输量和是否达到传输上限。检查完后,按“Ctrl+Z”键退出查看。




