我想知道是否可以在连接到 RDS 服务器时从 MySQL 命令行确定可用的实例类型和存储。
我有一个项目,当我从查询专用开发服务器的 MySQL 数据库切换到客户端的 AWS RDS 实例(与托管 Web 应用程序的 EC2 实例位于同一可用区)时,数据库效率急剧下降。不同之处在于 EC2 实例位于北美,开发服务器位于南非,尽管横跨大西洋,RDS 实例在密集查询上仍然慢了大约 55%。
由于基础设施由第三方托管服务提供商托管,我无法直接询问服务提供商他们部署了什么类型的实例。我拥有的唯一访问权限是基本授予、创建、选择、更新、插入。我无法访问 AWS 管理控制台。
假设这是可能的,有人可以给我一些指导,告诉我运行什么命令来确定这一点吗?
答案1
无法从 MySQL“内部”确定实例类型、可用存储或 RDS 实例的任何类似属性(之内意思是通过 SQL 接口,这是 RDS 上唯一公开的接口 —— 没有 shell/OS 访问)。
了解这些内容或检查性能指标的唯一方法是通过 AWS 控制台或 API 访问 AWS 账户。
答案2
有一个提示可能会有用。您可以使用 查询 MySQL 中的最大并行连接数SHOW VARIABLES LIKE "max_connections";
。
AWS 告诉他们文档默认的“max_connections”限制是根据实例的内存/RAM 计算的。
MySQL 的计算是{DBInstanceClassMemory/12582880}
- 因此 max_connections 乘以 12582880 可得出实例的内存量。
例如:一个实例有 639 个 max_connections - 这就需要 8,040,460,320 字节或 8GB 内存。现在您需要一个包含所有实例的表,例如来自这里由此,我们现在知道,该实例一定是以“large”结尾的实例之一,例如“db.m5.large”。
当然,这并不完全是实例,但它可以让您了解所使用的实例类型。
请注意,这max_connections
可以从 aws-user 进行更改。