Dblink对服务器的性能消耗
测试当有多个用户同时调用含有使用dblink写远程数据库表的存储过程的时候,对数据库服务器的性能消耗如何。通过同样数量级的并发数测试,对比直接写本地表的存储过程被调用对服务器的性能消耗。
1主机:
12.222服务(Intel(R) Xeon(TM) CPU 3.00GHz 双核4线程 2G内存)
Linux testdb 2.6.9-78.ELsmp #1 SMP Wed Jul 9 15:46:26 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
sga_max_size big integer 496M
sga_target big integer 496M
pga_aggregate_target big integer 165M
详见《脚本》
l 开启线程数据=100
l 每个线程执行参数 执行频率=1次/秒 总执行次数10次
测试结果说明:
灰色:服务器正常工作时候状态。
黄色:多线程调用存储过程状态。
关于vmstat和mpstat参数说明
Vmsta
r :置于运行队列中的内核线程数目。
b :置于等待队列(等待资源、等待输入/输出)的内核线程数目。
内存:关于使用虚拟内存和实内存的信息。如果虚拟页已经被访问的话,虚拟页可以被认为是活动的。一页为 4096 个字节。
si: 从磁盘交换到内存的交换页数量,单位:KB/秒
so: 从内存交换到磁盘的交换页数量,单位:KB/秒
IO
bi: 发送到块设备的块数,单位:块/秒
bo: 从块设备接收到的块数,单位:块/秒
System
in: 每秒的中断数,包括时钟中断
cs: 每秒的环境(上下文)切换次数
CPU
按 CPU 的总使用百分比来显示
us: CPU 使用时间
sy: CPU 系统使用时间
id: 闲置时间
l 跨库写
1.Vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 792416 510036 3844 1073800 0 0 0 12 1022 71 0 0 100 0
0 0 792416 510028 3844 1073800 0 0 0 88 1036 119 0 0 100 0
2 0 792416 437020 3860 1073988 0 0 32 268 1248 1178 11 10 79 0
8 0 792404 314724 3868 1074592 6 0 186 460 1538 3389 42 34 23 1
5 0 792400 248788 3876 1075060 2 0 212 596 1539 3388 56 41 2 0
6 0 792396 216812 3896 1075792 0 0 300 668 1501 3581 55 43 2 0
7 0 792380 182308 3896 1076752 4 0 218 504 1484 3606 55 41 4 0
7 0 792372 161036 3908 1077356 2 0 250 702 1494 3648 56 43 2 0
4 0 792368 131844 3924 1078020 2 0 154 774 1456 3597 55 41 3 0
8 0 792352 188756 3924 1078712 2 0 196 512 1508 3583 55 42 3 0
9 0 792340 254700 3940 1079440 8 0 298 882 1536 3539 56 43 1 0
9 2 792280 237452 3948 1080280 48 0 330 562 1553 3340 56 42 2 0
8 0 792276 255028 3956 1080888 0 0 284 590 1832 3837 56 41 2 0
2 0 792276 292492 3964 1081764 0 0 326 736 1515 3894 47 37 16 1
3 0 792276 327748 3972 1082368 0 0 206 498 1375 3832 33 27 39 1
1 0 792276 362564 3988 1082556 0 0 110 444 1302 3368 24 20 55 1
1 0 792276 410856 3988 1082760 0 0 64 282 1236 2433 16 13 70 1
0 0 791456 456484 4016 1084068 490 0 702 200 1197 1311 7 5 84 3
0 0 791456 486172 4032 1084052 0 0 0 124 1054 121 0 0 99 0
0 0 791456 485932 4048 1084104 0 0 50 122 1042 148 2 0 97 1
0 0 791456 486108 4076 1084144 0 0 22 110 1033 96 0 0 99 1
0 0 791456 486388 4076 1084144 0 0 0 0 1020 78 0 0 100 0
0 0 791456 486580 4084 1084136 0 0 2 102 1077 115 0 0 100 0
0 0 791456 486812 4084 1084136 0 0 0 72 1123 93 0 0 100 0
0 1 791456 487012 4100 1084120 0 0 8 198 1116 134 0 0 99 0
2.mpstat
11:30:54 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s
11:30:55 AM all 0.00 0.00 0.00 0.50 0.00 0.00 99.50 1035.00
11:30:56 AM all 0.00 0.00 0.00 0.25 0.00 0.00 99.75 1007.92
11:30:57 AM all 0.75 0.00 0.25 0.00 0.00 0.00 99.00 1052.00
11:30:58 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1000.00
11:30:59 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1030.00
11:31:00 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1023.00
11:31:01 AM all 10.25 0.00 8.50 1.00 0.00 0.25 80.00 1218.18
11:31:02 AM all 26.07 0.00 21.55 0.75 0.00 0.25 51.38 1457.43
11:31:03 AM all 40.45 0.00 30.52 0.50 0.25 0.99 27.30 1517.65
11:31:04 AM all 52.87 0.00 38.90 0.25 0.00 1.00 6.98 1535.35
11:31:05 AM all 52.87 0.00 42.39 0.25 0.25 1.25 2.99 1539.39
11:31:06 AM all 56.75 0.00 40.75 0.25 0.00 1.00 1.25 1486.00
11:31:07 AM all 56.86 0.00 40.40 0.25 0.00 1.00 1.50 1538.00
11:31:08 AM all 56.14 0.00 40.35 0.25 0.00 1.25 2.01 1457.43
11:31:09 AM all 56.58 0.00 40.45 0.50 0.00 0.99 1.49 1499.01
11:31:10 AM all 56.86 0.00 40.65 0.00 0.25 1.00 1.25 1483.84
11:31:11 AM all 54.36 0.00 38.90 0.25 0.00 1.50 4.99 1466.34
11:31:12 AM all 57.50 0.00 40.00 0.00 0.00 1.25 1.25 1529.00
11:31:13 AM all 57.25 0.00 40.50 0.25 0.00 1.00 1.00 1455.45
11:31:14 AM all 53.00 0.00 40.00 0.00 0.25 1.25 5.50 1468.00
11:31:15 AM all 55.50 0.00 41.50 0.00 0.00 1.25 1.75 1501.00
11:31:16 AM all 56.27 0.00 40.54 0.25 0.25 0.98 1.72 1543.00
11:31:17 AM all 54.39 0.00 39.85 0.50 0.00 1.25 4.01 1508.82
11:31:18 AM all 56.86 0.00 40.65 0.25 0.00 1.25 1.00 1549.49
11:31:19 AM all 55.50 0.00 41.00 0.00 0.00 0.75 2.75 1535.00
11:31:20 AM all 55.11 0.00 40.90 0.25 0.00 1.00 2.74 1512.00
11:31:21 AM all 56.00 0.00 41.50 0.00 0.25 1.00 1.25 1547.00
11:31:22 AM all 52.62 0.00 37.16 0.25 0.00 1.25 8.73 1471.00
11:31:23 AM all 45.36 0.00 34.09 0.50 0.00 1.25 18.80 1426.26
11:31:24 AM all 36.09 0.00 27.82 0.25 0.00 0.75 35.09 1365.35
11:31:25 AM all 34.33 0.00 26.62 0.75 0.25 1.00 37.06 1365.00
11:31:26 AM all 27.07 0.00 22.56 0.25 0.00 1.00 49.12 1336.00
11:31:27 AM all 28.50 0.00 20.50 1.00 0.00 0.75 49.25 1346.00
11:31:28 AM all 21.00 0.00 19.00 0.75 0.00 0.75 58.50 1250.50
11:31:29 AM all 13.78 0.00 11.28 0.00 0.00 0.25 74.69 1241.41
11:31:30 AM all 9.98 0.00 8.73 0.25 0.00 0.50 80.55 1172.28
11:31:31 AM all 5.28 0.00 4.02 0.00 0.00 0.00 90.70 1139.39
11:31:32 AM all 1.24 0.00 0.75 1.74 0.00 0.25 96.02 1096.97
11:31:33 AM all 0.00 0.00 0.00 0.25 0.00 0.00 99.75 1037.00
11:31:34 AM all 0.25 0.00 0.00 0.00 0.00 0.00 99.75 996.04
11:31:35 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1034.00
l 本库写
1. vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 786556 526172 5372 1093548 0 0 0 144 1042 115 0 0 100 0
0 1 786556 526172 5376 1093544 0 0 0 40 1009 70 0 0 100 0
0 0 786556 526172 5380 1093540 0 0 0 12 1035 123 0 0 100 0
1 0 786556 463540 5380 1093608 0 0 44 272 1362 740 7 8 85 0
0 0 786556 381500 5388 1093736 0 0 132 516 1605 1187 12 9 78 1
0 0 786336 300076 5404 1094760 404 0 1184 540 1727 1447 12 11 69 8
2 0 786336 217252 5404 1095168 0 0 256 932 1844 1662 13 10 77 1
2 1 786336 130076 5404 1095644 0 0 304 944 1919 1865 14 12 74 1
0 0 786324 46468 5412 1096292 36 0 400 1224 2055 2135 18 11 68 3
0 0 786412 26028 5312 1083152 4 0 420 1720 1935 2011 10 6 81 3
0 1 786404 24044 5312 1083652 52 0 476 1148 1798 1728 4 1 92 2
0 0 786444 27116 5300 1078264 12 0 436 1328 1792 1696 4 2 91 3
0 1 786440 25524 5304 1078944 0 0 416 1336 1778 1661 4 2 93 1
0 0 786440 80588 5312 1079548 0 0 328 1096 1730 1460 5 2 92 2
0 0 786436 161932 5320 1079948 4 0 300 908 1685 1300 5 3 92 1
0 1 786428 243596 5320 1080356 8 0 240 840 1560 1068 3 2 94 1
0 0 786424 325132 5320 1080564 0 0 184 536 1457 877 2 2 95 1
0 0 786304 414548 5320 1080752 0 0 104 288 1319 564 2 2 96 0
0 0 786296 497100 5320 1080820 8 0 44 320 1225 375 1 2 97 1
0 0 786296 538380 5328 1080880 0 0 20 68 1083 191 1 0 98 0
0 0 786296 538420 5328 1080880 0 0 0 0 1032 83 0 0 100 0
0 0 786296 538420 5328 1080880 0 0 0 144 1029 93 0 0 100 0
2.mpstat
11:34:49 AM CPU %user %nice %system %iowait %irq %soft %idle intr/s
11:34:50 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1020.00
11:34:51 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1034.00
11:34:52 AM all 1.00 0.00 0.00 0.00 0.00 0.00 99.00 1033.00
11:34:53 AM all 8.96 0.00 8.21 1.74 0.00 0.25 80.85 1433.00
11:34:54 AM all 10.53 0.00 10.03 0.75 0.00 0.00 78.70 1554.90
11:34:55 AM all 12.22 0.00 9.73 1.25 0.25 0.25 76.31 1736.36
11:34:56 AM all 13.00 0.00 10.00 1.00 0.00 0.25 75.75 1793.07
11:34:57 AM all 16.04 0.00 11.78 2.51 0.00 0.25 69.42 2105.05
11:34:58 AM all 13.75 0.00 11.75 10.25 0.25 0.50 63.50 2192.00
11:34:59 AM all 8.25 0.00 6.00 7.25 0.00 0.00 78.50 1921.21
11:35:00 AM all 5.01 0.00 1.25 3.01 0.00 0.25 90.48 1758.42
11:35:01 AM all 4.74 0.00 1.25 3.24 0.25 0.25 90.27 1779.00
11:35:02 AM all 5.50 0.00 1.50 3.75 0.00 0.25 89.00 1760.61
11:35:03 AM all 5.00 0.00 2.00 2.75 0.00 0.25 90.00 1767.33
11:35:04 AM all 3.99 0.00 2.49 4.74 0.00 0.25 88.53 1636.36
11:35:05 AM all 3.24 0.00 1.75 1.25 0.25 0.25 93.27 1486.27
11:35:06 AM all 2.01 0.00 1.75 1.00 0.00 0.00 95.24 1398.00
11:35:07 AM all 2.75 0.00 1.75 1.25 0.00 0.00 94.25 1330.30
11:35:08 AM all 0.75 0.00 1.50 0.25 0.00 0.25 97.25 1188.89
11:35:09 AM all 2.49 0.00 1.00 0.00 0.00 0.00 96.51 1061.76
11:35:10 AM all 0.00 0.00 0.00 0.25 0.00 0.00 99.75 1019.00
11:35:11 AM all 0.00 0.00 0.00 0.25 0.00 0.00 99.75 1035.00
11:35:12 AM all 1.24 0.00 0.25 0.25 0.00 0.00 98.26 1031.00
11:35:13 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1032.00
11:35:14 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1022.00
11:35:15 AM all 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1038.00
分析结果:
线程数基本看不出差别,连接数一致。
Swap使用,io,以及内存使用基本相同。
相差比较大的是cpu的使用率:
跨库情况下cpu的空闲率在10%以下。
本地写情况下cpu的空闲率在60%-90%附近。
l 开启线程数据=20
l 每个线程执行参数 执行频率=1次/秒 总执行次数100次
l 跨库:
1. vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 731112 38084 6840 1419432 0 0 52 760 1573 3100 20 16 63 1
2 0 731112 34036 6840 1419500 0 0 16 584 1668 3312 17 14 69 0
4 1 731112 28332 6840 1420316 0 0 52 1460 1711 3438 19 14 65 2
2 0 731112 30972 6848 1420784 0 0 148 1196 1737 3299 19 15 64 2
1 0 731112 39548 6776 1413104 0 0 44 852 1790 3369 20 16 63 2
2 1 731100 38132 6788 1413644 4 0 60 1204 1726 3234 23 17 58 2
1 0 731076 38780 6796 1414252 20 0 104 1484 1874 3683 20 15 63 2
0 0 731076 42244 6796 1414252 0 0 20 728 1918 3818 20 15 63 1
2 1 731068 38508 6804 1414992 8 0 76 1428 1800 3484 18 15 63 3
0 0 731068 42620 6804 1415060 0 0 88 604 1677 3430 20 16 63 1
0 0 731068 41148 6812 1415256 0 0 140 800 1637 3296 19 15 64 2
1 2 731068 31788 6812 1415596 0 0 112 900 1654 3413 20 16 64 2
3 0 731068 35692 6812 1415868 0 0 32 1012 1827 3341 21 14 62 2
4 0 731068 29716 6820 1415996 0 0 56 660 1797 3237 18 14 67 1
0 1 731068 39668 6820 1416676 0 0 40 1228 1737 3323 18 15 65 2
1 0 731068 39092 6828 1416940 0 0 92 1168 1810 3455 22 17 60 2
1 0 731064 36724 6828 1417148 0 0 80 732 1780 3455 20 15 64 0
1 1 731064 34100 6828 1417556 0 0 100 1088 1781 3510 21 17 61 1
0 0 731064 38204 6836 1418364 0 0 68 1500 1895 3634 20 17 62 2
2 0 731064 32876 6836 1418364 0 0 28 600 1794 3332 20 15 65 1
2 1 731064 33396 6844 1418832 0 0 16 1260 1778 3512 19 16 63 2
0 0 731064 33844 6800 1417720 0 0 16 2000 1932 3681 21 15 62 3
3 0 731064 32300 6800 1417720 0 0 120 792 1857 3517 21 15 64 1
1 1 731064 33524 6808 1418460 0 0 40 1320 1822 3389 19 14 65 2
1 0 731064 35372 6708 1411148 0 0 108 800 1777 3645 19 16 64 1
0 0 731052 40116 6720 1411324 28 0 252 672 1672 3201 20 16 63 1
3 2 731052 27604 6720 1411800 0 0 44 948 1720 3225 19 15 65 0
1 0 731052 41580 6648 1406364 0 0 16 1332 1663 3098 20 15 63 3
2.mpstat
12:04:06 PM CPU %user %nice %system %iowait %irq %soft %idle intr/s
12:04:07 PM all 19.95 0.00 13.47 1.00 0.00 0.50 65.09 1905.00
12:04:08 PM all 18.55 0.00 14.29 0.75 0.00 0.50 65.91 1843.43
12:04:09 PM all 17.75 0.00 14.50 3.00 0.25 0.75 63.75 1811.00
12:04:10 PM all 20.55 0.00 15.29 1.25 0.00 0.75 62.16 1561.00
12:04:11 PM all 18.50 0.00 13.75 1.00 0.00 0.50 66.25 1637.62
12:04:12 PM all 21.25 0.00 15.25 3.50 0.25 0.50 59.25 1753.00
12:04:13 PM all 21.55 0.00 14.79 1.00 0.00 0.50 62.16 1902.04
12:04:14 PM all 19.00 0.00 15.50 0.25 0.25 0.75 64.25 1716.83
12:04:15 PM all 19.50 0.00 15.00 2.50 0.00 0.75 62.25 1781.82
12:04:16 PM all 18.80 0.00 13.03 1.00 0.25 0.25 66.67 1754.00
12:04:17 PM all 21.75 0.00 16.00 0.50 0.00 0.75 61.00 1835.71
12:04:18 PM all 19.75 0.00 16.00 2.25 0.00 0.50 61.50 1759.22
12:04:19 PM all 18.55 0.00 14.29 0.50 0.25 1.00 65.41 1912.24
12:04:20 PM all 18.30 0.00 14.29 0.50 0.00 0.50 66.42 1747.52
12:04:21 PM all 20.25 0.00 15.25 4.25 0.00 0.75 59.50 1904.00
12:04:22 PM all 20.25 0.00 13.00 0.75 0.00 0.50 65.50 1859.00
12:04:23 PM all 19.45 0.00 13.97 0.50 0.25 0.50 65.34 1829.70
12:04:24 PM all 20.85 0.00 16.08 2.26 0.00 0.75 60.05 1845.45
12:04:25 PM all 20.45 0.00 15.71 1.00 0.00 0.50 62.34 1629.00
12:04:26 PM all 19.80 0.00 16.04 0.50 0.25 0.50 62.91 1804.00
12:04:27 PM all 20.00 0.00 14.00 2.50 0.00 0.50 63.00 1648.00
12:04:28 PM all 19.50 0.00 15.00 0.50 0.00 0.75 64.25 1610.00
12:04:29 PM all 20.50 0.00 15.25 1.00 0.25 0.25 62.75 1771.72
12:04:30 PM all 25.00 0.00 17.25 2.25 0.00 0.50 55.00 1765.00
12:04:31 PM all 20.55 0.00 14.54 1.50 0.00 0.75 62.66 1780.00
12:04:32 PM all 20.25 0.00 14.25 0.50 0.25 0.75 64.00 1763.00
12:04:33 PM all 19.05 0.00 15.29 2.01 0.00 0.75 62.91 1709.80
12:04:34 PM all 19.90 0.00 15.92 1.99 0.25 0.75 61.19 1750.00
12:04:35 PM all 19.85 0.00 15.08 3.52 0.00 0.50 61.06 1765.66
12:04:36 PM all 19.25 0.00 13.75 4.75 0.25 0.50 61.50 1817.00
12:04:37 PM all 20.05 0.00 12.53 0.75 0.00 1.00 65.66 1759.80
12:04:38 PM all 21.45 0.00 16.46 1.00 0.00 0.75 60.35 1766.33
12:04:39 PM all 21.36 0.00 16.58 1.76 0.00 0.50 59.80 1727.00
12:04:40 PM all 17.46 0.00 12.97 0.75 0.00 0.50 68.33 1551.49
l 本地
1.mpstat
12:06:24 PM CPU %user %nice %system %iowait %irq %soft %idle intr/s
12:06:25 PM all 2.01 0.00 1.00 1.25 0.00 0.25 95.49 1826.26
12:06:26 PM all 2.49 0.00 1.00 1.75 0.25 0.00 94.51 1900.00
12:06:27 PM all 2.24 0.00 0.75 3.73 0.00 0.25 93.03 1913.00
12:06:28 PM all 2.76 0.00 1.00 1.50 0.00 0.25 94.49 1777.45
12:06:29 PM all 3.51 0.00 2.51 1.75 0.00 0.25 91.98 1772.73
12:06:30 PM all 2.26 0.00 1.25 4.76 0.25 0.25 91.23 1793.07
12:06:31 PM all 4.74 0.00 1.75 0.75 0.00 0.25 92.52 1728.57
12:06:32 PM all 3.00 0.00 1.00 2.25 0.25 0.00 93.50 1748.51
12:06:33 PM all 1.75 0.00 0.50 4.49 0.00 0.25 93.02 1803.03
12:06:34 PM all 2.76 0.00 1.75 1.00 0.25 0.00 94.24 1746.53
12:06:35 PM all 2.50 0.00 1.25 1.25 0.00 0.25 94.75 1786.87
12:06:36 PM all 2.51 0.00 1.00 5.01 0.00 0.25 91.23 1687.00
12:06:37 PM all 3.49 0.00 1.25 1.50 0.25 0.00 93.52 1869.00
12:06:38 PM all 2.00 0.00 1.25 0.50 0.00 0.25 96.00 1883.00
12:06:39 PM all 2.26 0.00 1.25 4.01 0.00 0.00 92.48 1779.00
12:06:40 PM all 2.00 0.00 0.75 7.48 0.25 0.25 89.28 1837.00
12:06:41 PM all 3.01 0.00 1.75 2.26 0.00 0.25 92.73 1829.00
12:06:42 PM all 3.25 0.00 0.75 2.75 0.00 0.25 93.00 1873.74
2. vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 728076 29060 6788 1421020 4 0 228 696 1803 1438 2 1 94 3
1 0 728072 28292 6796 1421760 4 0 112 1552 1858 1631 3 1 94 2
0 0 728064 28356 6796 1421828 8 0 92 624 1743 1366 2 1 96 1
0 0 728056 28028 6796 1422168 8 0 196 620 1777 1342 3 2 95 1
0 0 728040 26492 6796 1423460 16 0 100 1972 1778 1504 1 1 95 3
0 0 728040 26420 6804 1423588 0 0 88 772 1818 1476 5 2 93 1
0 0 728028 26228 6804 1423656 12 0 100 692 1768 1526 3 1 96 1
0 0 728024 25588 6812 1424464 4 0 88 1576 1852 1504 2 1 93 3
0 0 728012 25652 6812 1424600 12 0 108 620 1801 1407 2 1 96 1
0 1 728012 25204 6812 1424804 0 0 160 696 1881 1563 2 1 95 1
0 0 728012 23804 6828 1426080 0 0 148 2340 1940 1663 2 2 90 6
0 0 727980 23292 6828 1426376 8 0 212 788 1903 1600 4 2 92 2
0 0 727980 29052 6776 1420852 0 0 88 704 1813 1444 3 1 95 1
1 0 727980 28284 6776 1421464 0 0 88 1288 1843 1519 2 1 94 3
0 0 727980 28356 6776 1421532 0 0 88 812 1852 1533 3 2 95 1
0 0 727980 32844 6784 1421660 0 0 148 744 1857 1469 2 2 95 1
0 0 727980 31820 6784 1422748 0 0 84 1612 1803 1472 3 1 93 2
0 0 727980 26820 6792 1422808 0 0 84 728 1834 1468 3 1 95 0
0 0 727980 26500 6792 1422944 0 0 100 632 1774 1395 3 1 95 1
0 0 727980 25540 6792 1423692 0 0 76 1428 1784 1484 2 1 96 2
2 0 727980 25732 6800 1423820 0 0 104 668 1705 1248 2 1 95 1
0 0 727980 25604 6800 1423888 0 0 100 596 1781 1446 3 2 95 1
0 0 727980 24068 6800 1425180 0 0 100 1940 1803 1429 3 2 92 4
0 0 727980 23748 6808 1425376 0 0 80 772 1821 1467 1 0 97 1
0 0 727980 23620 6808 1425580 0 0 124 608 1925 1604 3 2 94 1
0 0 727980 28420 6764 1420932 0 0 96 1960 1851 1470 3 1 93 3
1 0 727980 24132 6660 1425116 0 0 15900 792 2520 2476 6 2 71 21
0 1 727452 23492 6460 1426796 0 0 30776 556 2284 2010 4 4 70 22
0 0 727328 23620 6372 1426576 228 0 10896 2012 2048 1865 3 1 79 17
1 0 727320 29060 6324 1421052 4 0 196 752 1821 1492 2 1 95 1
5 0 727320 28740 6332 1421180 0 0 72 728 1749 1352 2 1 96 2
0 0 727320 27524 6332 1422472 0 0 84 1940 1889 1472 3 1 92 4
0 0 727320 27204 6332 1422676 0 0 160 712 1941 1487 3 2 93 1
0 0 727320 27140 6332 1422744 0 0 96 576 1913 1453 3 1 96 1
分析结果:
我们将并发设置到20,小于场景一的100,可以看出cpu消耗明显少了。
相差比较大的是cpu的使用率:
跨库情况下cpu的空闲率在60%左右。
本地写情况下cpu的空闲率在90%附近。
使用dblink调用频率对性能的影响
l 开启线程数据=20
l 每个线程执行参数 总执行次数100次
l 对比执行频率=1次/1秒,1次/300毫秒
l 1次/1秒
1. vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
2 0 613640 35588 4904 1395212 0 0 80 664 1227 2094 16 14 69 1
1 0 613640 37580 4904 1395280 0 0 84 284 1207 2331 16 15 69 0
0 1 613640 36476 4904 1396232 0 0 84 1160 1247 2332 18 14 66 3
0 0 613640 40964 4904 1396300 0 0 88 340 1206 2329 21 15 64 0
0 0 613640 40836 4904 1396436 0 0 148 288 1246 2397 18 14 68 0
2 0 613640 31348 4924 1397708 0 0 332 1932 1340 2754 19 15 63 3
0 0 613640 39108 4932 1398040 0 0 288 548 1257 2493 15 14 69 3
2 0 613640 36212 4932 1398244 0 0 104 296 1200 2304 15 13 72 0
1 1 613640 34620 4932 1399332 0 0 56 1328 1240 2501 17 13 69 2
3 0 613640 32300 4932 1399808 0 0 76 724 1222 2342 15 13 71 2
3 0 613640 36596 4940 1400004 0 0 148 472 1228 2372 16 12 72 1
1 1 613640 30908 4948 1401764 0 0 148 1860 1233 2477 15 14 68 2
2 0 613640 30004 4952 1401964 0 0 84 508 1233 2269 15 12 72 1
0 0 613640 34884 4960 1402024 0 0 96 292 1214 2501 15 14 70 1
3 0 613636 33588 4960 1402880 32 0 276 856 1240 2474 16 14 68 2
2 0 613824 34996 4916 1396952 0 0 100 636 1227 2446 17 14 69 1
0 0 613824 39684 4924 1396944 0 0 88 308 1217 2287 16 13 71 1
1 0 613820 35516 4924 1398172 0 0 284 1228 1231 2411 17 14 66 3
1 0 614008 37436 4916 1395708 0 20 124 400 1230 2309 17 15 69 0
1 0 614008 36988 4916 1395844 0 0 88 232 1207 2240 17 14 68 1
2. mpstat
05:03:04 PM CPU %user %nice %system %iowait %irq %soft %idle intr/s
05:03:32 PM all 21.45 0.00 16.96 0.50 0.00 0.50 60.60 1420.00
05:03:33 PM all 18.34 0.00 14.32 1.01 0.00 0.25 66.08 1276.00
05:03:34 PM all 20.20 0.00 16.71 2.99 0.00 0.50 59.60 1551.52
05:03:35 PM all 19.30 0.00 16.04 0.75 0.00 0.25 63.66 1488.00
05:03:36 PM all 20.00 0.00 15.00 0.75 0.25 0.50 63.50 1341.00
05:03:37 PM all 24.06 0.00 20.30 3.01 0.00 0.50 52.13 1712.00
05:03:38 PM all 18.50 0.00 15.25 0.50 0.00 0.50 65.25 1391.09
05:03:39 PM all 19.95 0.00 15.21 1.00 0.00 0.50 63.34 1351.52
05:03:40 PM all 23.75 0.00 18.75 3.75 0.25 0.50 53.00 1568.00
05:03:41 PM all 17.75 0.00 13.75 1.00 0.00 0.25 67.25 1261.39
05:03:42 PM all 19.80 0.00 15.04 0.50 0.00 0.50 64.16 1368.69
05:03:43 PM all 30.00 0.00 19.75 1.00 0.00 0.50 48.75 1587.88
05:03:44 PM all 22.00 0.00 17.00 0.75 0.00 0.50 59.75 1424.00
05:03:45 PM all 19.80 0.00 16.04 0.75 0.00 0.50 62.91 1448.51
05:03:46 PM all 16.21 0.00 12.47 4.49 0.25 0.50 66.08 1274.00
05:03:47 PM all 18.30 0.00 14.04 0.75 0.00 0.25 66.67 1234.00
05:03:48 PM all 16.00 0.00 13.50 0.25 0.00 0.50 69.75 1193.07
05:03:49 PM all 15.25 0.00 13.50 2.25 0.00 0.25 68.75 1263.64
l 1次/300毫秒
1vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
9 0 615112 36516 4868 1376272 3 3 112 40 15 18 1 0 97 1
6 0 615256 54148 4860 1369640 52 12 336 632 1452 3385 54 40 5 1
7 0 615248 48116 4880 1370240 0 0 420 1156 1488 3392 48 34 17 1
3 0 615348 69828 4856 1363800 0 0 204 952 1472 3457 55 42 3 0
7 0 615348 56780 4856 1363936 0 0 160 496 1468 3282 54 41 5 0
4 1 615344 55580 4856 1364204 8 0 156 736 1453 3185 46 33 21 0
6 0 615344 54620 4856 1364680 0 0 304 740 1494 3360 56 42 2 0
6 0 615344 47116 4872 1365072 0 0 252 992 1472 3316 56 42 1 0
7 0 615340 51724 4876 1366092 0 0 248 1320 1486 3076 45 32 23 1
8 0 615340 49724 4876 1366500 0 0 260 652 1451 3326 57 41 1 0
7 0 615340 44556 4876 1366976 0 0 348 692 1470 3327 56 42 2 0
6 0 615312 40068 4876 1367756 64 0 232 1056 1453 3240 43 33 24 1
9 0 615312 42172 4892 1368284 0 0 352 1344 1515 3448 55 42 2 0
9 0 615312 50684 4900 1368480 0 0 200 536 1441 3330 55 42 3 1
7 0 615308 47236 4900 1369300 0 0 132 1100 1457 3025 43 32 26 0
6 0 615308 47684 4900 1369708 0 0 212 704 1457 3387 57 41 2 0
5 0 615308 50700 4904 1370044 0 0 332 596 1477 3343 55 42 3 0
6 0 615304 40700 4924 1370708 0 0 224 1344 1460 3133 43 32 24 0
5 0 615304 45720 4924 1370980 0 0 180 672 1471 3487 55 42 3 0
7 0 615304 39420 4924 1371320 0 0 208 516 1433 3316 55 43 2 0
6 0 615304 43452 4924 1372000 0 0 120 984 1464 3163 44 32 24 0
8 0 615304 38932 4924 1372272 0 0 188 660 1444 3320 55 43 3 0
7 0 615304 43468 4940 1372664 0 0 252 1072 1488 3365 58 41 1 0
6 0 615304 37876 4944 1373408 0 0 200 884 1450 3257 46 33 21 0
9 0 615304 41636 4948 1373540 0 0 168 588 1470 3312 57 42 1 0
7 0 615296 37276 4948 1373952 4 0 200 672 1457 3369 56 42 2 0
5 0 615296 45804 4948 1374768 0 0 364 964 1475 3301 42 32 26 0
8 0 615292 48988 4968 1375092 0 0 200 1112 1486 3497 55 43 3 0
10 1 615328 26180 4936 1368464 0 12 172 552 1441 3269 55 42 3 0
6 0 615324 41316 4936 1368844 32 0 180 776 1432 3168 45 33 21 0
7 0 615324 49252 4936 1369116 0 0 120 664 1473 3276 56 41 2 0
7 1 615324 37852 4936 1369524 0 0 272 616 1439 3284 55 42 2 0
2.mpstat
05:07:01 PM CPU %user %nice %system %iowait %irq %soft %idle intr/s
05:07:02 PM all 57.00 0.00 40.25 0.25 0.25 0.75 1.50 1411.76
05:07:03 PM all 56.61 0.00 40.65 0.25 0.00 1.25 1.25 1489.90
05:07:04 PM all 43.50 0.00 31.25 0.50 0.00 1.50 23.25 1453.00
05:07:05 PM all 54.61 0.00 40.65 0.50 0.25 1.25 2.74 1477.23
05:07:06 PM all 55.00 0.00 40.75 0.50 0.00 1.00 2.75 1438.61
05:07:07 PM all 43.36 0.00 29.32 0.00 0.00 1.00 26.32 1498.98
05:07:08 PM all 56.25 0.00 41.25 0.25 0.00 1.25 1.00 1413.86
05:07:09 PM all 56.00 0.00 40.50 0.25 0.25 0.75 2.25 1477.00
05:07:10 PM all 41.00 0.00 31.50 0.50 0.00 1.25 25.75 1463.00
05:07:11 PM all 55.72 0.00 40.30 0.25 0.25 1.24 2.24 1485.86
05:07:12 PM all 55.28 0.00 41.96 0.00 0.00 1.01 1.76 1416.67
05:07:13 PM all 43.92 0.00 30.52 0.25 0.00 0.99 24.32 1481.82
05:07:14 PM all 54.25 0.00 41.75 0.25 0.00 1.25 2.50 1418.63分析结果:
可以看到,在用数据库连接是调用频率对cpu性能的影响还是很明显的。这是可以直接预想到的。
事务量增加了3倍的情况下,空闲率从50%-60%降到了20%以下甚至1%-5%。
使用批量写远端数据库的方式
l 开启线程数据=100
l 每个线程执行参数 总执行次数10000次
l 1次/300毫秒
l 写远端每次写1000条,连续执行。
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 8 858672 28084 2412 988752 2346 0 5604 3188 2312 3400 12 3 46 39
0 5 853836 23348 2488 992332 2880 0 3500 2140 2105 2607 8 2 59 31
0 8 853028 24060 2532 990636 822 0 2048 3868 2401 3371 13 3 48 36
0 10 852312 23484 2576 988900 830 0 5230 3658 2382 2667 13 4 46 38
1 5 850660 25852 2624 984988 1330 0 2870 2518 2424 3228 14 3 44 39
6 7 849576 26620 2596 983292 962 0 3092 2860 2691 3745 15 3 48 34
1 6 848368 23924 2608 983332 1190 0 4636 2556 2526 3000 14 3 52 31
8 10 846904 24380 2564 979044 1254 0 3076 3006 2503 3334 13 4 45 38
0 7 845688 44948 2496 989808 822 0 6772 2072 2319 2884 11 3 49 36
1 7 844436 96764 2548 1008080 984 0 7710 2084 2268 2504 11 5 43 40
0 6 843224 157244 2616 1026568 950 0 8080 1964 2057 1931 8 4 54 34
0 5 842060 237700 2644 1040312 734 0 5322 2048 1961 1623 6 4 62 28
0 4 841052 236172 2832 1047800 916 0 3062 1568 1381 782 3 1 67 30
1 3 839688 229708 2880 1053464 1124 0 1884 1958 1347 799 4 0 68 27
1 3 838268 228948 2916 1058356 1306 0 2006 1580 1345 783 1 1 71 28
0 4 836660 223060 2928 1062820 1626 0 2114 1504 1317 661 1 1 71 28
0 4 835004 215836 2944 1068872 1432 0 1960 2194 1350 758 1 1 71 27
0 4 833776 209564 3036 1074440 946 0 1938 1754 1352 818 2 1 70 28
1 3 832816 204060 3076 1080568 762 0 1736 2130 1349 792 9 1 65 25
0 4 831192 198556 3100 1085228 1224 0 1854 1580 1329 813 5 1 65 30
这次开的线程等于之前所有测试中最大的100个,而且每个线程写数据频率也是最大的1次/300毫秒,批量写入远端。
可以看到cpu空闲率在40%-70%之间,对cpu性能的消耗减低了很多。
附件:
java代码
DBConnection 类:
package loadoracletest;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBConnection {
private final static String DB_URL = "jdbc:oracle:thin:@192.168.12.222:1521:EDU";
private final static String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
private final static String DB_USERNAME = "username";
private final static String DB_PASSWORD = "password";
public Connection getConnection() {
Connection conn = null;
try {
/** 使用Class.forName()方法自动创建这个驱动程序的实例且自动调用DriverManager来注册它*/
Class.forName(DB_DRIVER);
/** 通过DriverManager的getConnection()方法获取数据库连接*/
conn = DriverManager
.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
} catch (Exception ex) {
ex.printStackTrace();
}
return conn;
}
/**
* 关闭数据库连接
*
* @param connect
*/
public void closeConnection(Connection conn) {
try {
if (conn != null) {
/** 判断当前连接连接对象如果没有被关闭就调用关闭方法*/
if (!conn.isClosed()) {
conn.close();
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
LoadTest 类
package loadoracletest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class LoadTest extends Thread {
/**
* 多线程负载测试
*
* @param args
*/
int count = 1, number;
Connection conn = null;
public LoadTest(int num) {
number = num;
// System.out.println("创建线程 " + number);
conn = new DBConnection().getConnection();
}
public void run() {
while (count <= 10) {
// System.out.println("线程 " + number + ":计数 " + count);
db(conn);
try {
sleep(1000);
System.out.println("sleep" + number);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("sleep3 exception");
}
++count;
}
try {
if (!conn.isClosed()) {
conn.close();
System.out.println("close" + number);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void closeConn() {
try {
if (!conn.isClosed())
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void db(Connection connection) {
Connection conn = null;
// String sql = "select instance_name,status from v$instance";
String sql = "{ call edu.PROC_SMS_WRITER_test(?,?,'00','1')}";
PreparedStatement cst = null;
try {
conn = connection;
cst = conn.prepareStatement(sql);
cst.setString(1, "15981890979");
cst.setString(2, number + "-" + count + "多线程调用proc_sms_writer");
cst.execute();
/*
* ResultSet rs = st.executeQuery(sql); while (rs.next()) {
* System.out.println(rs.getString(1));
* System.out.println(rs.getString(2)); } rs.close(); st.close();
*/
conn.commit();
cst.close();
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
} finally {
try {
if (conn.isClosed()) {
conn.commit();
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int j = 100;// 设定开启的线程数
for (int i = 0; i < j; i++) {
new LoadTest(i + 1).start();
System.out.println(i);
}
System.out.println("over");
}
}