测试Amazon RDS实例与外部服务器之间的连接延迟

Ale*_*lex 2 ubuntu latency amazon-web-services amazon-rds

我需要测试位于我自己的数据中心的服务器和Amazon RDS实例之间的连接.我试过了

time telnet <dns-of-my.instance> 3306
Run Code Online (Sandbox Code Playgroud)

但它追踪自我发出命令以来的时间,直到我结束它,这是不相关的.

有没有办法测量这个?

Vor*_*ung 8

我的回答并不是假设允许ICMP ping,它使用基于TCP的措施.但是您必须确保有安全组规则允许从运行测试的shell访问RDS实例

首先,确保安装了一些有用的包

apt-get install netcat-openbsd traceroute
Run Code Online (Sandbox Code Playgroud)

检查基本连接是否适用于数据库端口.此示例适用于Oracle,确保您使用控制台中的端点和端口

    nc -vz dev-fulfil.cvxzodonju67.eu-west-1.rds.amazonaws.com 1521
Run Code Online (Sandbox Code Playgroud)

然后看看延迟是什么.你想要的数字是最后一个(步骤12)

sudo tcptraceroute dev-fulfil.cvxzodonju67.eu-west-1.rds.amazonaws.com 1521

traceroute to dev-fulfil.cvxzodonju67.eu-west-1.rds.amazonaws.com (10.32.21.12), 30 hops max, 60 byte packets
 1  pc-0-3.ioppublishing.com (172.16.0.3)  0.691 ms  3.341 ms  3.400 ms
 2  10.100.101.1 (10.100.101.1)  0.839 ms  0.828 ms  0.811 ms
 3  xe-10-2-0-12265.lon-001-score-1-re1.interoute.net (194.150.1.229)  10.591 ms  10.608 ms  10.592 ms
 4  ae0-0.lon-001-score-2-re0.claranet.net (84.233.200.190)  10.575 ms  10.668 ms  10.668 ms
 5  ae2-0.lon-004-score-1-re0.claranet.net (84.233.200.186)  12.708 ms  12.734 ms  12.717 ms
 6  169.254.254.6 (169.254.254.6)  12.673 ms * *
 7  169.254.254.1 (169.254.254.1)  10.623 ms  10.642 ms  10.823 ms
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * 10.32.21.12 (10.32.21.12) <syn,ack>  20.662 ms  21.305 ms
Run Code Online (Sandbox Code Playgroud)

更好地衡量"延迟"可能是"典型事务处理没有或很少数据传输的时间".为此,编写一个脚本元素,在循环中执行此操作,可能需要1000次,然后使用高精度计时器计时.但具体细节根据您的需要而有所不同


Quo*_*ons 6

计时查询。RDS 必须托管 SQL 数据库服务器,因此向其发出简单的 SQL 查询并计算执行时间。

例如,如果您的 RDS 实例是 PostgreSQL,请使用psql并启用进行连接\timing

psql -h myhost -U myuser

postgres=> \timing
Timing is on.
postgres=> SELECT 1;
 ?column?
----------
        1
(1 row)

Time: 14.168 ms
Run Code Online (Sandbox Code Playgroud)

在此示例中,延迟为 14.168 毫秒。请参阅手册以了解特定 SQL Server 实施的计时。