我有一个RDS实例花费我很多钱。 从我在亚马逊的帐户活动中,我看到在过去7天里,该实例已经有大约8亿个IO请求。
为了给你一点点的看法,我的应用程序每天只能获得大约6000次的独特访问,并且不会创build那么多的数据库连接。
那么,IO请求究竟是什么呢?为什么这个数字会非常高呢? 如果有必要,我愿意尽我所能去降低成本,但我不确定发生了什么事情。
我会很感激你的想法。
啊,amazon web services。 可用的最大的金钱之一。 非常好,但并不总是便宜。 其实,几乎从不便宜,总是难以估计开支。
IO请求是磁盘操作。 无论是阅读还是写作,基本上都是要负责你从系统中获取多less数据。 这是疯了。
您可以通过查看iostat来估计您正在创build的IO请求。
在7天内有8亿个IO请求。这就是~1300 IOPS。 哇。 这是一些邪恶的performance。
例如,一个中型网站数据库的大小可能为100 GB,预计在一个月内平均每秒100个I / O。 存储成本(100 GB x 0.10美元/月)和每月约26美元(约260万秒/月x 100每秒I / O *每百万I / O 0.10美元)可以转化为每月10美元。
如果你真的想减less这个花费你的成本,那么可能是时候看看RDS是否真的最适合你的应用和项目预算。
如果您每天只有6k次点击,您可以使用专用服务器(最好是2个,一个用于数据库,另一个用于Web服务)在性价比和性能方面做的更好。 实际上要打这个电话有点困难,因为你没有多说你的应用程序。
我有一个RDS实例花费我很多钱。
“云服务”并不意味着这些东西会花费你的钱。 基本上,I / O请求是需要从磁盘获取的任何东西(即数据库或索引页)。 如果你有一个大型的数据库和查询使用全表扫描,这并不意外。 您可以考虑使用无索引列进行过滤,通过启用选项将“未索引”查询logging到MySQL慢日志并为相应列添加索引。 由于您没有直接编辑configuration文件的选项,请使用RDS参数组configuration来设置log-queries-not-using-indexes并在mysql.slow_log表中查询日志条目。
此外,考虑从数据库实例运行AWS实例的MySQL调优底层脚本 ,以进行一般性能分析,以查看较大的实例是否有助于解决问题,因为可用于caching的内存量较大,从而减轻磁盘负载。 该脚本将评估许多configuration参数和性能计数器,以提供有关可能的瓶颈的信息,并提供一些通用的build议。