我需要测试位于我自己的数据中心的服务器和 Amazon RDS 实例之间的连接。我试过了
time telnet <dns-of-my.instance> 3306
但它会跟踪我发出命令以来的时间,直到我结束它,这是不相关的。
有什么方法可以衡量这个吗?
最佳答案
我的回答不假设允许 ICMP ping,它使用基于 TCP 的措施。但是您必须确保有安全组规则以允许从运行测试的 shell 访问 RDS 实例
首先,确保安装了一些有用的包
apt-get install netcat-openbsd traceroute
检查数据库端口的基本连接是否有效。此示例适用于 Oracle,请确保您使用控制台中的端点和端口
nc -vz dev-fulfil.cvxzodonju67.eu-west-1.rds.amazonaws.com 1521
然后看看延迟是多少。您想要的数字是最后一个(第 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
“延迟”的更好衡量标准可能是“典型事务在没有或只有很少数据传输的情况下所花费的时间”。为此,请编写一个循环执行此操作的脚本元素,可能循环 1000 次,然后使用高精度计时器对其进行计时。但具体细节会根据您的需要而有所不同
关于amazon-web-services - 测试 Amazon RDS 实例与外部服务器之间的连接延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49367467/