暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

Oracle 使用 oratcptest 测试主备库带宽

原创 尚雷 2022-12-12
1015

注:前段时间帮一前同事推荐工作,面试某一Oracle DBA 职位,面试后他昨天跟我说原厂问了他一个问题,他没有回答好,问题是如何评估Oracle主备库带宽是否满足需求,除scp,有没有其它方式。

同事说没有回答好,最后问了面试官说可以使用oratcptest来进行评估。

同事和我说后,我也挺感兴趣这个事情,于是就查了资料并做了测试。

一、oratcptest介绍

– 对于oratcptest官网有如下一段英文描述:

Oratcptest is a command line tool that runs on two hosts, one in client mode and the other in server mode, to measure network bandwidth and latency between client and server. Oratcptest establishes a TCP connection between the client host and server host and then sends network messages to Oratcptest on the server host. Oratcptest running on the server host writes, if desired, the received messages to disk before replying with the ACK message.

Oratcptest could be used as a general purpose tool for measuring network bandwidth and latency. However, oratcptest has been written specifically to help users assess network resources prior to performing Data Guard configuration, RMAN backup, migration, DG instantiation, etc.

– 翻译过来就是

Oratcptest是一个命令行工具,它在两台主机上运行,一台在客户端模式下,另一台在服务器模式下,用于测量客户端和服务器之间的网络带宽和延迟。Oratcptest在客户端主机和服务器主机之间建立TCP连接,然后向服务器主机上的Oratcptet发送网络消息。如果需要,在服务器主机上运行的Oratcptest会在回复ACK消息之前将收到的消息写入磁盘。

Oratcptest可以用作测量网络带宽和延迟的通用工具。但是,oratcptest专门用于帮助用户在执行Data Guard配置、RMAN备份、迁移、DG实例化等之前评估网络资源。

oratcptest是Oracle原厂提供的一个jar包,具体jar包里什么信息,就不太清楚了,另外,oratcptest对java版本有一定要求,要求java版本不低于 1.6

接下来我们通过测试来了解下oratcptest

二、测试过程

2.1、备库准备

首先要在备库先执行java命令

-- 如果是RAC环境,该IP为备库VIP地址
-- oratcptest.jar 文件后需要跟 -server
[root@xxx ~]# /u01/app/oracle/product/19.3.0/db_1/jdk/bin/java -jar /oratcptest.jar -server 备库VIP -port=1521  
-- 监听端口不能写当前监听使用端口,否则会报监听端口当前在使用,报如下信息:
Failed to listen a socket : Address already in use

image.png

2.2 主库准备

-- 如果是RAC环境,IP为备库VIP地址
-- duration 代表持续时间
-- interval 代表间隔时间
-- mode 代表同步方式
 
[root@xxx~]# /u01/app/oracle/product/19.3.0/db_1/jdk/bin/java -jar /root/oratcptest.jar 192.168.xxx.xxx -port=1521 -duration=30s -interval=2s
[Requesting a test]
        Message payload        = 1 Mbyte
        Payload content type   = RANDOM
        Delay between messages = NO
        Number of connections  = 1
        Socket send buffer     = (system default)
        Transport mode         = SYNC
        Disk write             = NO
        Statistics interval    = 2 seconds
        Test duration          = 30 seconds
        Test frequency         = NO
        Network Timeout        = NO
        (1 Mbyte = 1024x1024 bytes)
 
(13:53:34) The server is ready.
                    Throughput             Latency
(13:53:36)     90.170 Mbytes/s           11.090 ms
(13:53:38)     81.076 Mbytes/s           12.334 ms
(13:53:40)    102.197 Mbytes/s            9.785 ms
(13:53:42)    102.679 Mbytes/s            9.739 ms
(13:53:44)    102.920 Mbytes/s            9.716 ms
(13:53:46)    103.872 Mbytes/s            9.627 ms
(13:53:48)    102.751 Mbytes/s            9.732 ms
(13:53:50)    103.954 Mbytes/s            9.620 ms
(13:53:52)    102.315 Mbytes/s            9.774 ms
(13:53:54)    104.207 Mbytes/s            9.596 ms
(13:53:56)     93.695 Mbytes/s           10.673 ms
(13:53:58)     90.044 Mbytes/s           11.106 ms
(13:54:00)    104.193 Mbytes/s            9.598 ms
(13:54:02)    103.509 Mbytes/s            9.661 ms
(13:54:04)     91.570 Mbytes/s           10.921 ms
(13:54:04) Test finished.
               Socket send buffer = 326400 bytes
                  Avg. throughput = 98.549 Mbytes/s
                     Avg. latency = 10.147 ms

--通过输出结果,可以看到主库到备库的平均带宽是 98.549 Mbytes/s,平均延迟时间是 10.147 ms

image.png

2.3 备库信息

备库此时会收到主库发送的相应信息:

image.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论